Configurar o encaminhamento de proxy para proxies de API

Os proxies de encaminhamento fornecem um único ponto em que várias máquinas enviam solicitações para um servidor externo. Eles podem aplicar políticas de segurança, registrar e analisar solicitações, e executar outras ações para que as solicitações sigam as regras comerciais.

Usando um proxy de encaminhamento na Apigee híbrida, é possível interceptar e gerenciar todo o tráfego de saída do cluster do Kubernetes. Isso inclui solicitações de proxy de API para endpoints de destino e comunicação com *.googleapis.com que o ambiente de execução híbrido faz para o pipeline de depuração e análise e para políticas como MessageLogging e as políticas de IA (como SanitizeUserPrompt e SemanticCacheLookup).

Para usar um proxy de encaminhamento HTTP entre híbrido e o TargetEndpoint, é preciso definir as configurações de proxy de saída no arquivo de modificação. Essas propriedades com escopo do ambiente roteiam as solicitações de destino do híbrido para o proxy de encaminhamento HTTP. Você também precisa garantir que use.proxy esteja definido como "true" para qualquer TargetEndpoint que queira passar por um proxy de encaminhamento HTTP. Veja instruções na parte inferior da página.

Para configurar um ambiente híbrido para usar encaminhamento por proxy, adicione a propriedade envs.httpProxy (em inglês) ao arquivo de modificação e aplique-a ao cluster. Exemplo:

envs:
  - name: test
    httpProxy:
      scheme: HTTP
      host: 10.12.0.47
      port: 3128
      ...

Para detalhes sobre cada uma das propriedades de configuração do envs.httpProxy, consulte a Referência da propriedade de configuração.

O encaminhamento por proxy está configurado em um ambiente. Todo o tráfego que flui dos proxies de API nesse ambiente para os destinos de back-end passa pelo proxy de encaminhamento HTTP especificado. Se o tráfego para um destino específico de um proxy de API precisa ir diretamente para o destino do back-end, ignorando o proxy de encaminhamento, defina a seguinte propriedade no TargetEndpoint para modificar o proxy de encaminhamento HTTP:

<Property name="use.proxy">false</Property>

Para mais informações sobre como configurar as propriedades do TargetEndpoint, incluindo como configurar a conexão com o endpoint de destino, consulte Referência de propriedades do endpoint.

Defina use.proxy como "true" para qualquer TargetEndpoint que você queira passar por um proxy de encaminhamento HTTP:

<Property name="use.proxy">true</Property>

Se você tiver um firewall no back-end configurado para esperar que o cabeçalho do host sempre inclua o nome do host do servidor backend, enquanto o processador de mensagens estiver enviando o nome do host do servidor proxy, faça o seguinte para configurar essa opção:

Defina a propriedade use.proxy.host.header.with.target.uri como "true" no TargetEndpoint, conforme mostrado no exemplo a seguir:

Exemplo de configuração do TargetEndpoint:

  <TargetEndpoint name="default">
    <HTTPTargetConnection>
      <URL>https://mocktarget.apigee.net/json</URL>
      <Properties>
        <Property name="use.proxy.host.header.with.target.uri">true</Property>
      </Properties>
    </HTTPTargetConnection>
  </TargetEndpoint>

Para detalhes sobre a propriedade use.proxy.host.header.with.target.uri, consulte Referência de propriedades do endpoint.

Políticas de IA e proxy de encaminhamento

As políticas do Model Armor (SanitizeUserPrompt e SanitizeModelResponse) e as políticas de cache semântico (SemanticCacheLookup e SemanticCachePopulate) fazem chamadas de saída ao processar solicitações e respostas. Isso inclui as chamadas de higienização do Model Armor e os embeddings de texto do Agent Platform, a busca vetorial findNeighbors e as chamadas upsertDatapoints.

Quando um proxy de encaminhamento é configurado para o ambiente com envs.httpProxy, todas as chamadas acima são encaminhadas pelo proxy de encaminhamento por padrão, sem necessidade de configuração no nível da política. Esse comportamento é verdadeiro mesmo para endpoints que não estão em *.googleapis.com, como o endpoint público da Pesquisa vetorial que o SemanticCacheLookup chama.

Essas chamadas de política para serviços externos são tratadas da mesma forma que o tráfego de rastreamento e análise do tempo de execução: definir envs[].managementCallsSkipProxy como true faz com que elas pulem o proxy de encaminhamento e saiam diretamente. Ignorar o proxy de encaminhamento se aplica a todas as chamadas listadas acima (ou seja, limpeza, incorporações de texto, findNeighbors e upsertDatapoints). Esse comportamento de proxy de encaminhamento no nível do proxy é separado de um TargetEndpoint, cujo comportamento de proxy de encaminhamento é controlado pela própria propriedade use.proxy.