Como configurar proxies para o SDK do Azure para Python

Muitas vezes precisa de um proxy se:

  • Estás atrás de um firewall corporativo.
  • O tráfego da sua rede tem de passar por um dispositivo de segurança.
  • Deves usar um proxy personalizado para depuração ou encaminhamento.

Se a sua organização precisar de um servidor proxy para aceder a recursos da internet, defina uma variável de ambiente com a informação do servidor proxy antes de usar o SDK do Azure para Python. Quando defines as variáveis de ambiente HTTP_PROXY e HTTPS_PROXY, o SDK do Azure para Python usa o servidor proxy em tempo de execução.

A URL de um servidor proxy tem o formulário http[s]://[username:password@]<ip_address_or_domain>:<port>/, onde a combinação de nome de utilizador e palavra-passe é opcional.

Pode obter a sua informação de proxy junto da sua equipa de TI ou rede, do seu navegador ou das utilidades de rede.

Pode configurar um proxy globalmente usando variáveis de ambiente. Também pode configurar um proxy para um construtor cliente individual ou método de operação, passando um argumento chamado proxies.

Configuração global

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

Se passar o parâmetro use_env_settings=False para um construtor de objeto cliente ou método de operação, o SDK ignora estas variáveis de ambiente.

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

Definido em código Python

Define as definições do proxy usando variáveis de ambiente. Não precisas de nenhuma configuração personalizada.

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 um proxy em código Python para um cliente ou método

Para configuração personalizada, especifique um proxy para um objeto cliente específico ou método de operação. Use um argumento chamado proxies.

Por exemplo, o seguinte código do artigo Exemplo: use Azure storage especifica um proxy HTTPS com credenciais de utilizador no construtor BlobClient. Neste caso, o objeto vem da azure.storage.blob biblioteca, que se baseia 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" }