Uma equipe coloca uma única string de desvio num arquivo de ambiente compartilhado. O curl vai direto, outra aplicação usa o proxy e um contêiner se comporta de modo diferente outra vez. O arquivo compartilhado distribuiu os mesmos caracteres. Não distribuiu um parser compartilhado.

O objeto durável é a política: quais destinos devem ser diretos e sob quais condições? Mantenha isso separado da string de que cada programa precisa.

Escreva primeiro as rotas esperadas

Use endereços representativos, incluindo casos de fronteira e não apenas sucessos fáceis:

Forma do destinoPergunta para o dono da política
Domínio paiEle deve ser desviado, ou apenas os filhos?
Um subdomínioEle herda a mesma rota?
Um IP privado literalEsse endereço é acessível diretamente a partir deste cliente?
O mesmo serviço sob um nome de hostAs requisições por nome e por endereço devem concordar?
Outra porta do serviçoA exceção cobre o host ou um único listener?

Em seguida, identifique os consumidores: o daemon que baixa uma imagem, o programa dentro do contêiner, uma biblioteca HTTP de uma linguagem e um navegador interativo podem ser entradas separadas. Uma configuração de proxy do cliente Docker pode preencher os valores de ambiente do contêiner sem obrigar cada cliente interno a implementar as mesmas regras de correspondência.

Traduza em vez de copiar às cegas

Um exemplo documentado de diferença real é a fronteira do domínio pai. A exclusão de domínio do curl abrange o domínio nomeado e os filhos correspondentes. A política de ambiente do .NET distingue o nome puro da forma de subdomínio com ponto inicial. Uma regra universal de „sempre adicionar um ponto inicial“ não consegue expressar as duas políticas de forma confiável.

O suporte a faixas de IP também depende do consumidor e da sua versão. Uma máquina com um curl autônomo novo ainda pode executar uma aplicação ligada a uma libcurl mais antiga, ou um cliente que usa outra biblioteca por completo. A versão do sistema operacional não é um inventário completo de clientes.

Para cada consumidor, registre a interface de configuração suportada e a menor expressão das rotas pretendidas. Uma lista curta e explícita de hosts pode ser melhor do que um padrão esperto cujo significado ninguém consegue explicar.

Mantenha a evidência de configuração separada da evidência de conexão

Uma configuração analisada ou uma API de decisão de roteamento pode mostrar o que o programa selecionou. O resultado de uma requisição mostra então se essa rota era utilizável. No .NET, HttpClient.DefaultProxy.IsBypassed fornece essa verificação do lado da configuração quando o proxy padrão é a política em uso. Não diagnostique um serviço direto inacessível como falha do parser de desvio só porque a requisição atingiu o tempo limite.

Mantenha os destinos de fronteira ao atualizar um cliente ou uma imagem base. Eles tornam visíveis futuras mudanças de compatibilidade sem exigir que toda a equipe redescubra por que o arquivo contém duas entradas de domínio parecidas.

Artigos relacionados