Proxy de Requests local à tarefa no Google Cloud Composer
Crie uma Session de Requests local à tarefa com uma rota explícita em vez de alterar o ambiente de proxy do processo worker partilhado.
Para uma tarefa do Cloud Composer que precisa de um pedido HTTP de saída através de um proxy, configure o cliente HTTP dentro do callable da tarefa:
def fetch_status():
import requests
with requests.Session() as session:
session.trust_env = False
with session.get(
'https://api.example/health',
proxies={'https': 'http://proxy.example:8080'},
timeout=(5, 30),
) as response:
response.raise_for_status()
return response.status_code
Use este callable através da disposição de tarefas existente da DAG. O proxy tem de estar acessível a partir do worker que executa a tarefa. Para chamadas de API públicas permitidas sem autenticação de proxy, a lista de proxies HTTP fornece candidatos para o URL de proxy HTTP da sessão. Guarde um URL autenticado ou outra configuração de conta na fonte de segredos prevista da implementação.
A Session e a resposta fecham quando a função termina. trust_env=False desativa a integração de ambiente do Requests, impedindo que definições de proxy herdadas substituam o comportamento pretendido deste cliente, e também desativa a seleção de pacote CA baseada no ambiente do Requests. Forneça o pacote CA pretendido através da opção verify deste cliente, se necessário.
As variáveis de ambiente configuradas para um ambiente Airflow gerido têm um âmbito mais amplo e restrições definidas pela plataforma. Passar a rota a esta Session mantém a decisão ligada à operação HTTP desta tarefa sem alterar os.environ para outro código no processo worker.