Délai avant expiration de la fonction

Si une fonction s'exécute trop longtemps, le système prend des mesures pour l'arrêter ou la limiter. Par défaut, ce délai avant expiration est défini sur 60 secondes, mais vous pouvez l'étendre ou le réduire lorsque vous déployez la fonction : La durée maximale avant expiration est de 60 minutes (3 600 secondes) pour les fonctions HTTP et de 9 minutes (540 secondes) pour les fonctions basées sur des événements.

Lorsque l'exécution de la fonction atteint son délai avant expiration, un message de réponse avec un état d'erreur HTTP 504 est immédiatement renvoyé à l'appelant. L'instance de fonction peut être limitée, mais elle continue de fonctionner jusqu'à ce qu'elle se ferme d'elle-même. Tout message de réponse généré par la fonction est supprimé et non renvoyé à l'appelant.

Ce comportement peut entraîner des effets secondaires inattendus. L'un des symptômes courants est la "fuite" du travail et des journaux d'une requête dans une requête ultérieure. Pour éviter cela, évitez les délais avant expiration dans vos fonctions à l'aide des techniques suivantes :

  1. Définissez un délai avant expiration supérieur au temps d'exécution attendu de la fonction.
  2. Effectuez le suivi du temps restant pendant l'exécution. Ensuite, effectuez un nettoyage et renvoyez une réponse plus tôt.

Définir un délai avant expiration

Vous pouvez définir la durée du délai d'expiration d'une fonction au moment du déploiement à l'aide de Google Cloud CLI ou de la console Google Cloud.

gcloud

Si vous déployez l'application à l'aide de gcloud CLI, utilisez l'option --timeout :

gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...

Pour modifier la durée d'un délai avant expiration existant avec Google Cloud CLI, redéployez la fonction en lui attribuant une nouvelle valeur.

Console

Pour définir le délai avant expiration lors de la création de la fonction dans la console Google Cloud, procédez comme suit :

  1. Accédez à la page de présentation des fonctions Cloud Run dans la console Google Cloud.
  2. Cliquez sur Créer une fonction.
  3. Renseignez les champs obligatoires de votre fonction.
  4. Développez la section Environnement d'exécution, compilation… à la fin de la page, puis cliquez sur l'onglet Environnement d'exécution.
  5. Dans le champ Délai avant expiration, saisissez un nombre de secondes.

    Pour modifier la durée d'un délai existant dans la console Google Cloud, sur la page de présentation des fonctions, cliquez sur le nom de la fonction pour accéder à sa page d'informations. Sur la page d'informations, cliquez sur Modifier, développez la section Environnement d'exécution, compilation..., puis cliquez sur l'onglet Environnement d'exécution, qui vous permet de modifier directement la valeur dans le champ Délai avant expiration.