Configura il limite di timeout target in Apigee hybrid

Panoramica

Apigee hybrid supporta un valore predefinito per il target io.timeout.millis fino a 55.000 millisecondi. Consulta la Specifica di trasporto dell'endpoint di destinazione.

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

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

Puoi configurare queste impostazioni per singoli ambienti o per tutti gli ambienti della tua installazione.

Configura 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 processore di messaggi.

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 ambiente con --set envgroup=ENV_GROUP_NAME. Ripeti i seguenti comandi per ogni gruppo di ambienti menzionato nel file overrides.yaml:

    Dry run:

    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. In genere è 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 a sua volta crea ApigeeRoute (AR) una volta che il watcher di Apigee estrae i dettagli relativi al gruppo di ambienti dal control plane. Pertanto, verifica che lo stato del router AR corrispondente 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

Configura i singoli ambienti per modificare il limite di timeout della destinazione

Se i proxy con endpoint di destinazione lenti si trovano in uno o pochi ambienti della tua installazione, puoi configurare gli ambienti singolarmente per modificare il limite di timeout della destinazione. In questo modo, eviti di influire su altri ambienti.

Per configurare singoli ambienti in modo da modificare il limite di timeout della destinazione, 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. Esegui l'upgrade del grafico apigee-env per ogni ambiente che stai aggiornando:

    Dry run:

    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 monitorare l'installazione e gli upgrade del grafico apigee-env. Questo nome deve essere univoco rispetto agli altri nomi delle release Helm nell'installazione. In genere, è uguale a ENV_NAME. Tuttavia, se l'ambiente ha lo stesso nome del 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 saperne di più sulle release in Helm, consulta Three big concepts class="external" nella documentazione di Helm.
    • ENV_NAME è il nome dell'ambiente di cui 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 funzionante controllando lo stato del rispettivo ambiente:

    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 della destinazione

Le modifiche alla sezione runtime cambieranno il limite di timeout target per tutti gli ambienti della tua installazione. Puoi eseguire l'override di queste impostazioni per i 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 della tua installazione:

    Dry run:

    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