Настройка прокси-сервера при использовании пакета SDK Azure для .NET
Если вашей организации требуется использовать прокси-сервер для доступа к интернет-ресурсам, для использования пакета SDK Azure для клиентских библиотек .NET требуется определенная конфигурация. После настройки прокси-сервер применяется к базовому HttpClient
экземпляру, используемому для операций HTTP.
Прокси-сервер можно настроить с помощью кода или переменной среды. Выбор подхода зависит от требуемого поведения. Задайте соответствующую переменную среды, если вы хотите, чтобы прокси-сервер применял глобально ко всем клиентам служб, созданным в текущем процессе. Кроме того, настройте прокси-сервер через код для выборочного применения параметров к клиентам служб.
Внимание
Следующие инструкции применяются только к библиотекам с зависимостью от Azure.Core.
Настройка использования кода
Чтобы программно настроить прокси-сервер, выполните следующие действия.
- HttpClientHandler Создайте объект, свойство которого
Proxy
задано. - Создайте объект параметров клиента службы, свойство которого Transport задано
HttpClientTransport
для объекта, принимаюющегоHttpClientHandler
экземпляр. - Передайте объект параметров клиента службы конструктору клиента службы.
Используя библиотеку секретов Azure Key Vault в качестве примера, у вас будет следующий код:
using System.Net;
using Azure.Core.Pipeline;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
using HttpClientHandler handler = new()
{
Proxy = new WebProxy(new Uri("<proxy-url>")),
};
SecretClientOptions options = new()
{
Transport = new HttpClientTransport(handler),
};
SecretClient client = new(
new Uri("https://<key-vault-name>.vault.azure.net/"),
new DefaultAzureCredential(),
options);
Настройка с использованием переменных среды
В следующей таблице представлен список переменных среды, которые можно настроить для настройки прокси-сервера для использования.
Переменная среды | Характер использования |
---|---|
HTTP_PROXY или http_proxy |
Прокси-сервер, используемый в HTTP-запросах. |
HTTPS_PROXY или https_proxy |
Прокси-сервер, используемый в HTTPS-запросах. |
ALL_PROXY или all_proxy |
Прокси-сервер, используемый для HTTP-запросов и HTTPS. |
NO_PROXY или no_proxy |
Список имен узлов с разделителями-запятыми для исключения из прокси-сервера. |
GATEWAY_INTERFACE |
Индикатор выполнения приложения в среде Common Gateway Interface (CGI). Пример значения: CGI/1.1 . |
Подробные сведения об обработке этих переменных среды см . в коде. Помните о следующем поведении:
- Каждая переменная среды в предыдущей таблице, кроме того
GATEWAY_INTERFACE
, может быть определена как строчная. Строчная форма имеет приоритет над прописной формой. http_proxy
Если оба иGATEWAY_INTERFACE
не определены,HTTP_PROXY
используется.ALL_PROXY
считается только в том случае, если http-сервер или прокси-сервер HTTPS не определен.- Переменные среды, относящиеся к протоколу, имеют приоритет над
ALL_PROXY
.
URL-адрес прокси-сервера принимает форму http[s]://[username:password@]<ip_address_or_hostname>:<port>/
, где username:password
сочетание является необязательным. Чтобы получить IP-адрес или имя узла, порт и учетные данные прокси-сервера, обратитесь к администратору сети.
В следующих примерах показано, как задать соответствующие переменные среды в средах командной оболочки (Windows) и bash (Linux/macOS). Установка соответствующей переменной среды приводит к использованию прокси-сервера в среде выполнения пакета SDK Azure для библиотек .NET.
rem Non-authenticated HTTP server:
set HTTP_PROXY=http://10.10.1.10:1180
rem Authenticated HTTP server:
set HTTP_PROXY=http://username:password@10.10.1.10:1180
rem Non-authenticated HTTPS server:
set HTTPS_PROXY=https://10.10.1.10:1180
rem Authenticated HTTPS server:
set HTTPS_PROXY=https://username:password@10.10.1.10:1180