Configura il limite di timeout target in Apigee hybrid

Panoramica

A partire dalla versione 1.14.2, Apigee hybrid supporta un limite di timeout di destinazione fino a 10 minuti.

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 consentire agli ambienti della tua installazione ibrida di aumentare il limite di timeout di destinazione per più endpoint di destinazione lenti, apporta le seguenti modifiche alla configurazione di runtime:

  • Configura virtualhosts[].requestTimeout tra Istio e 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 dell'installazione.

Configura l'host virtuale 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 strofa 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:

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

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

Le modifiche alla stanza runtime modificheranno 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 strofa 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