Définir le délai avant expiration de la requête

Découvrez comment définir le délai au cours duquel une réponse à une requête doit être renvoyée par vos services Knative serving. Si une réponse n'est pas renvoyée dans le délai spécifié, la requête se termine et l'erreur 504 est renvoyée.

Délai avant expiration

Le délai avant expiration maximal varie en fonction de la version de votre cluster GKE.

Version de GKE Limite par défaut Délai avant expiration maximal
0.16.0-gke.1 et versions ultérieures 300 secondes 24 heures
0.15.0-gke.3 et versions antérieures 300 secondes 900 secondes

Outre la modification du délai avant expiration de la requête dans Knative serving, vous devez vérifier le framework de votre langage pour voir s'il possède son propre paramètre de délai avant expiration de la requête que vous devrez également mettre à jour.

Définir et mettre à jour le délai avant expiration de la requête

Toute modification de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Vous pouvez définir le délai avant expiration de la requête à l'aide de Cloud Console, de Google Cloud CLI ou d'un fichier YAML lorsque vous déployez un nouveau service ou mettez à jour un service existant et déployez une révision :

Console

  1. Accédez à Knative serving dans la console Google Cloud :

    Accéder à Knative serving

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci, puis sur Modifier et déployer la nouvelle révision.

  3. Sous Paramètres avancés, cliquez sur Conteneur.

  4. Dans le champ Délai avant expiration de la requête, saisissez la valeur du délai avant expiration que vous souhaitez utiliser. La valeur que vous spécifiez doit être inférieure au délai avant expiration indiqué pour la version GKE du cluster.

  5. Cliquez sur Suivant pour passer à la section suivante.

  6. Dans la section Configurer la manière dont ce service est déclenché, sélectionnez la connectivité que vous souhaitez utiliser pour appeler le service.

  7. Cliquez sur Créer pour déployer l'image sur Knative serving et attendez la fin du déploiement.

Ligne de commande

  • Pour les services existants, définissez le délai avant expiration de la requête en exécutant la commande gcloud run services update avec le paramètre --timeout.

    gcloud run services update SERVICE --timeout TIMEOUT
    

    Remplacez :

    • SERVICE par le nom de votre service ;
    • TIMEOUT par la durée souhaitée, en utilisant un nombre entier (en secondes) ou une valeur de durée absolue, par exemple 1m20s, soit 1 minute 20 secondes. La valeur que vous spécifiez doit être inférieure au délai avant expiration indiqué pour la version GKE du cluster. Spécifiez 0 pour définir le délai avant expiration sur la valeur par défaut.
  • Pour les nouveaux services, définissez le délai avant expiration de la requête en exécutant la commande gcloud run deploy avec le paramètre --timeout :

    gcloud run deploy SERVICE --image=IMAGE_URL --timeout TIMEOUT
    

    Remplacez :

    • SERVICE par le nom de votre service ;
    • IMAGE_URL par une référence à l'image de conteneur, par exemple gcr.io/cloudrun/hello ;
    • TIMEOUT par la durée souhaitée, en utilisant un nombre entier (en secondes) ou une valeur de durée absolue, par exemple 1m20s, soit 1 minute 20 secondes. La valeur que vous spécifiez doit être inférieure au délai avant expiration indiqué pour la version GKE du cluster. Spécifiez 0 pour définir le délai avant expiration sur la valeur par défaut.

YAML

Vous pouvez télécharger la configuration d'un service existant dans un fichier YAML avec la commande gcloud run services describe à l'aide de l'option --format=export. Vous pouvez ensuite modifier ce fichier YAML et déployer ces modifications à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les attributs spécifiés.

  1. Téléchargez la configuration de votre service dans un fichier nommé service.yaml sur l'espace de travail local :

    gcloud run services describe SERVICE --format export > service.yaml

    Remplacez SERVICE par le nom de votre service Knative serving.

  2. Dans votre fichier local, mettez à jour l'attribut timeoutSeconds :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        spec:
          containers:
          - image: IMAGE
          timeoutSeconds: TIMEOUT

    Remplacez :

    • SERVICE par le nom de votre service Knative serving ;
    • IMAGE_URL par une référence à l'image de conteneur, par exemple gcr.io/cloudrun/hello.
    • TIMEOUT par le délai avant expiration souhaité, exprimé en secondes.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml