Configura il limite di timeout target in Apigee hybrid

Panoramica

Apigee hybrid supporta io.timeout.millis di destinazione fino a 55.000 millisecondi per impostazione predefinita. Consulta la specifica di trasporto dell'endpoint di destinazione.

Per aumentare il limite di timeout del target per gli endpoint di destinazione lenti, apporta le seguenti modifiche alla configurazione di runtime:

  • Configura virtualhosts[].requestTimeout tra Istio e processore di messaggi(MP). Vedi virtualhosts
  • Configura la conf_http_HTTPTransport.io.timeout.millis tra MP e target

Puoi configurare queste impostazioni per singoli ambienti o per tutti gli ambienti dell'installazione.

Configurare virtualhost per modificare il limite di timeout della richiesta

requestTimeout è il tempo massimo (in secondi) impostato su un host virtuale per l'elaborazione di una richiesta da parte del MP.

Per configurare il limite di timeout della richiesta, puoi utilizzare le proprietà virtualhosts[].requestTimeout. Apporta le seguenti modifiche al file overrides.yaml:

  1. Aggiungi la seguente stanza al file overrides.yaml:
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. Devi eseguire l'upgrade di un gruppo di ambienti (virtualhost) alla volta. Specifica il gruppo di ambienti con --set envgroup=ENV_GROUP_NAME. Ripeti i seguenti comandi per ogni gruppo di ambienti menzionato nel file overrides.yaml:

    Prova:

    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 è il nome con cui hai installato in precedenza il grafico apigee-virtualhost. Di solito è ENV_GROUP_NAME.

    Esegui l'upgrade del grafico:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE
    
  3. Controlla lo stato di ApigeeRoute (AR).

    L'installazione di virtualhosts crea ApigeeRouteConfig (ARC) che crea internamente ApigeeRoute (AR) una volta che il watcher Apigee estrae i dettagli relativi al gruppo di ambienti dal control plane. Pertanto, verifica che lo stato del rispettivo AR sia in esecuzione:

    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

Configurare i singoli ambienti per modificare il limite di timeout del target

Se i proxy con endpoint di destinazione lenti si trovano solo in uno o pochi ambienti dell'installazione, puoi configurare gli ambienti singolarmente per modificare il limite di timeout della destinazione. In questo modo si evita di aggiungere impatto ad altri ambienti.

Per configurare singoli ambienti in modo da modificare il limite di timeout target, puoi utilizzare le proprietà envs[].components.runtime. Apporta le seguenti modifiche al file overrides.yaml:

  1. Aggiungi la seguente stanza al file overrides.yaml:
    envs:
    - name: ENV_NAME
      components.
        runtime:
          cwcAppend:
            conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Devi eseguire l'upgrade di un ambiente alla volta. Aggiorna il grafico apigee-env per ogni ambiente che stai aggiornando:

    Prova:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ENV_RELEASE_NAME è un nome utilizzato per tenere traccia dell'installazione e degli upgrade del grafico apigee-env. Questo nome deve essere univoco rispetto agli altri nomi delle release Helm nell'installazione. Di solito è uguale a ENV_NAME. Tuttavia, se il tuo ambiente ha lo stesso nome del tuo gruppo di ambienti, devi utilizzare nomi di release diversi per l'ambiente e il gruppo di ambienti, ad esempio dev-env-release e dev-envgroup-release. Per ulteriori informazioni sulle release in Helm, consulta Three big concepts class="external" nella documentazione di Helm.
    • ENV_NAME è il nome dell'ambiente che stai eseguendo l'upgrade.
    • OVERRIDES_FILE è il file overrides.yaml modificato.
  3. Esegui l'upgrade del grafico:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. Verifica che sia attivo e in esecuzione controllando lo stato dell'ambiente corrispondente:

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

Configura tutti gli ambienti per modificare il limite di timeout del target

Le modifiche alla sezione runtime cambieranno il limite di timeout target per tutti gli ambienti dell'installazione. Puoi eseguire l'override di queste impostazioni per singoli ambienti con le proprietà runtime.

  1. Aggiungi la seguente stanza al file overrides.yaml:
    runtime:
      cwcAppend:
        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Esegui l'upgrade del grafico apigee-env per ogni ambiente dell'installazione:

    Prova:

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

    Esegui l'upgrade del grafico:

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