Compartilhar via


Como configurar proxies para o SDK do Azure para Python

Um proxy geralmente é necessário se:

  • Você está usando um firewall corporativo
  • O tráfego de rede precisa passar por um dispositivo de segurança
  • Recomendamos usar um proxy personalizado para depuração ou roteamento

Se sua organização exigir o uso de um servidor proxy para acessar recursos da Internet, você precisará definir uma variável de ambiente com as informações do servidor proxy para usar o SDK do Azure para Python. Definir as variáveis de ambiente (HTTP_PROXY e HTTPS_PROXY) faz com que o SDK do Azure para Python use o servidor proxy em tempo de execução.

Uma URL do servidor proxy tem o formulário http[s]://[username:password@]<ip_address_or_domain>:<port>/ em que o nome de usuário e a combinação de senha são opcionais.

Você pode obter suas informações de proxy de sua equipe de TI/rede, do navegador ou de utilitários de rede.

Em seguida, você pode configurar um proxy globalmente usando variáveis de ambiente ou especificar um proxy passando um argumento nomeado proxies para um construtor de cliente individual ou método de operação.

Configuração global

Para configurar um proxy globalmente para seu script ou aplicativo, defina HTTP_PROXY ou HTTPS_PROXY variáveis de ambiente com a URL do servidor. Essas variáveis funcionam com qualquer versão das bibliotecas do Azure. Observe que HTTPS_PROXY não significa o proxy HTTPS, mas sim o proxy para solicitações https://.

Essas variáveis de ambiente serão ignoradas se você passar o parâmetro use_env_settings=False para um construtor de objeto cliente ou método de operação.

Definir a partir da linha de comando

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=http://10.10.1.10:1180

rem Authenticated HTTPS server:
set HTTPS_PROXY=http://username:password@10.10.1.10:1180

Codificado em Python

Você pode definir configurações de proxy usando variáveis de ambiente, sem nenhuma configuração personalizada necessária.

import os
os.environ["HTTP_PROXY"] = "http://10.10.1.10:1180"

# Alternate URL and variable forms:
# os.environ["HTTP_PROXY"] = "http://username:password@10.10.1.10:1180"
# os.environ["HTTPS_PROXY"] = "http://10.10.1.10:1180"
# os.environ["HTTPS_PROXY"] = "http://username:password@10.10.1.10:1180"

Configuração personalizada

Definir no código Python por cliente ou por método

Para configuração personalizada, você pode especificar um proxy para um objeto ou método de operação de cliente específico. Especifique um servidor proxy com um argumento chamado proxies.

Por exemplo, o seguinte código do artigo Exemplo: usar o armazenamento do Azure especifica um proxy HTTPS com credenciais de usuário pelo construtor BlobClient. Nesse caso, o objeto vem da biblioteca azure.storage.blob, que é baseada em azure.core.

from azure.identity import DefaultAzureCredential

# Import the client object from the SDK library
from azure.storage.blob import BlobClient

credential = DefaultAzureCredential()

storage_url = "https://<storageaccountname>.blob.core.windows.net"

blob_client = BlobClient(storage_url, container_name="blob-container-01",
    blob_name="sample-blob.txt", credential=credential,
    proxies={ "https": "https://username:password@10.10.1.10:1180" }
)

# Other forms that the proxy URL might take:
# proxies={ "http": "http://10.10.1.10:1180" }
# proxies={ "http": "http://username:password@10.10.1.10:1180" }
# proxies={ "https": "https://10.10.1.10:1180" }