Configurar o limite de tempo limite de destino na Apigee híbrida

Visão geral

A Apigee híbrida oferece suporte a io.timeout.millis de destino de até 55.000 milissegundos por padrão. Consulte Especificação de transporte do endpoint de destino.

Para aumentar o limite de tempo limite de destino para endpoints de destino lentos, faça as seguintes mudanças na configuração de tempo de execução:

  • Configure o virtualhosts[].requestTimeout entre o Istio e o processador de mensagens(MP, na sigla em inglês). Consulte virtualhosts.
  • Configurar o conf_http_HTTPTransport.io.timeout.millis entre o MP e os destinos

É possível configurar essas opções para ambientes individuais ou para todos os ambientes na sua instalação.

Configurar o host virtual para mudar o limite de tempo limite da solicitação

O requestTimeout é o tempo máximo (em segundos) definido em um host virtual para que uma solicitação seja processada pelo MP.

Para configurar o limite de tempo limite da solicitação, use as propriedades virtualhosts[].requestTimeout. Faça as seguintes mudanças no arquivo overrides.yaml:

  1. Adicione a seguinte estrofe ao arquivo overrides.yaml:
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. É necessário fazer upgrade de um grupo de ambiente (virtualhost) por vez. Especifique o grupo de ambientes com --set envgroup=ENV_GROUP_NAME: Repita os seguintes comandos para cada grupo de ambientes mencionado no arquivo overrides.yaml:

    Simulação:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    ENV_GROUP_RELEASE_NAME é o nome com que você instalou anteriormente o gráfico apigee-virtualhost. Ele geralmente é ENV_GROUP_NAME.

    Faça upgrade do gráfico:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE
    
  3. Verifique o estado da ApigeeRoute (AR).

    A instalação de virtualhosts cria a ApigeeRouteConfig (ARC), que gera internamente a ApigeeRoute (AR) depois que o inspetor da Apigee extrai detalhes relacionados ao grupo de ambientes do plano de controle. Portanto, verifique se o estado de RA correspondente está em execução:

    kubectl -n APIGEE_NAMESPACE get arc
    
    NAME                                STATE   AGE
    apigee-org1-dev-egroup                       2d
    kubectl -n APIGEE_NAMESPACE get ar
    
    NAME                                        STATE     AGE
    apigee-org1-dev-egroup-cb9a8a                running   2d

Configurar ambientes individuais para mudar o limite de tempo limite de destino

Se os proxies com endpoints de destino lentos estiverem em apenas um ou alguns ambientes na sua instalação, configure os ambientes individualmente para mudar o limite de tempo limite de destino. Isso evita afetar outros ambientes.

Para configurar ambientes individuais e mudar o limite de tempo limite de destino, use as propriedades envs[].components.runtime. Faça as seguintes mudanças no arquivo overrides.yaml:

  1. Adicione a seguinte estrofe ao arquivo overrides.yaml:
    envs:
    - name: ENV_NAME
      components.
        runtime:
          cwcAppend:
            conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. É necessário fazer upgrade de um ambiente por vez. Faça upgrade do gráfico apigee-env para cada ambiente que você está atualizando:

    Simulação:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ENV_RELEASE_NAME é um nome usado para acompanhar a instalação e os upgrades do gráfico apigee-env. Ele precisa ser diferente dos outros nomes de versão do Helm na sua instalação. Normalmente, é o mesmo que ENV_NAME. No entanto, se o ambiente tiver o mesmo nome do grupo de ambientes, use nomes de lançamento diferentes para o ambiente e o grupo de ambientes, por exemplo, dev-env-release e dev-envgroup-release. Para mais informações sobre versões no Helm, consulte Três grandes conceitos class="external" na documentação do Helm.
    • ENV_NAME é o nome do ambiente que você está fazendo upgrade.
    • OVERRIDES_FILE é o arquivo overrides.yaml editado.
  3. Faça upgrade do gráfico:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. Para saber se ele está funcionando, confira o estado do respectivo ambiente:

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    my-org-my-env-123abc          running     2d

Configurar todos os ambientes para mudar o limite de tempo limite de destino

As mudanças na seção runtime vão alterar o limite de tempo limite de destino para todos os ambientes na sua instalação. É possível substituir essas configurações em ambientes individuais com as propriedades runtime.

  1. Adicione a seguinte estrofe ao arquivo overrides.yaml:
    runtime:
      cwcAppend:
        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Faça upgrade do gráfico apigee-env para cada ambiente na instalação:

    Simulação:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Faça upgrade do gráfico:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE