Définir le délai avant expiration des requêtes (services)

Pour les services Cloud Run, le paramètre de délai avant expiration d'une requête spécifie le délai au cours duquel une réponse doit être renvoyée par les services déployés sur Cloud Run. 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. Notez que l'instance de conteneur qui a diffusé la requête n'est pas arrêtée.

Le délai avant expiration est défini par défaut sur 5 minutes (300 secondes) et peut être prolongé jusqu'à 60 minutes (3 600 secondes).

Vous pouvez modifier ce paramètre lorsque vous déployez une image de conteneur ou en mettant à jour la configuration du service.

Outre la modification du délai avant expiration de la requête dans Cloud Run, vous devez également 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. Certains clients du service Cloud Run peuvent également imposer un délai avant expiration plus restrictif.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer et déployer des services Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre service Cloud Run communique avec les API Google Cloud, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les sections Autorisations de déploiement et Gérer les accès.

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 Google Cloud Console, de la ligne de commande gcloud ou d'un fichier YAML lorsque vous créez un service ou déployez une nouvelle révision.

Console

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur Déployer un conteneur et sélectionnez Service pour configurer un nouveau service. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service, puis cliquez sur Conteneur(s), volumes, mise en réseau et sécurité pour développer la page de configuration du service.

  4. Cliquez sur l'onglet Conteneur.

    image

    • Dans le champ Délai avant expiration de la requête, saisissez la valeur du délai avant expiration que vous souhaitez utiliser en secondes. Utilisez des valeurs comprises entre 1 et 3600 secondes, ou entre 1 et 60 minutes.
  5. Cliquez sur Créer ou Déployer.

gcloud

Vous pouvez mettre à jour le délai avant expiration de la requête pour une révision donnée à tout moment à l'aide de la commande suivante :

gcloud run services update [SERVICE] --timeout=[TIMEOUT]

Remplacer

  • [SERVICE] par le nom de votre service ;
  • [TIMEOUT] par la durée souhaitée, en utilisant un nombre entier ou une valeur de durée absolue, par exemple 1m20s, soit 1 minute 20 secondes. Si vous utilisez un nombre entier, l'unité est censée être en secondes. La valeur que vous spécifiez doit être inférieure à 60 minutes.

Lors du déploiement, vous pouvez également définir le délai avant expiration de la requête à l'aide de la commande suivante :

gcloud run deploy --image IMAGE_URL --timeout=[TIMEOUT]

Remplacer

  • IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • [TIMEOUT] par la durée souhaitée, en utilisant un nombre entier ou une valeur de durée, par exemple 1m20s, soit 1 minute 20 secondes. Si vous utilisez un nombre entier, l'unité est censée être en secondes. La valeur que vous spécifiez doit être inférieure à 60 minutes.

YAML

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Mettez à jour l'attribut timeoutSeconds :

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

    Remplacer

    • SERVICE par le nom de votre service Cloud Run
    • IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • VALUE par le délai avant expiration souhaité, exprimé en secondes.
    • REVISION par un nouveau nom de révision ou supprimez-le (le cas échéant). Si vous indiquez un nouveau nom de révision, il doit répondre aux critères suivants :
      • Commencer par SERVICE-
      • Ne contenir que des lettres minuscules, des chiffres et -
      • Ne pas se terminer par -
      • Ne pas dépasser 63 caractères
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :

    gcloud run services replace service.yaml

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Ajoutez les éléments suivants à une ressource google_cloud_run_v2_service dans votre configuration Terraform, sous template. Remplacez 300s par le délai avant expiration de requête souhaité pour le service.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-request-timeout"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    # Timeout
    timeout = "300s"
  }
}

Afficher les paramètres de délai avant expiration d'une requête

Pour afficher les paramètres de délai avant expiration actuels de votre service Cloud Run, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Révisions.

  4. Dans le panneau de détails sur la droite, le paramètre de délai avant expiration de la requête est répertorié sous l'onglet Conteneur.

gcloud

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez le paramètre de délai avant expiration de la requête dans la configuration renvoyée.