Délai avant expiration de la fonction

La durée d'exécution d'une fonction est limitée par le délai avant expiration, que vous pouvez spécifier lorsque vous déployez une fonction. Par défaut, une fonction expire après une minute (60 secondes), mais vous pouvez prolonger cette période :

  • Dans Cloud Functions (1st gen), la durée maximale avant expiration est de neuf minutes (540 secondes).
  • Dans Cloud Functions (2nd gen), 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 dépasse ce délai, un état d'erreur est immédiatement renvoyé à l'appelant. Les ressources du processeur utilisées par l'instance de la fonction dont le délai a expiré sont limitées, et le traitement des requêtes est mis en veille.

Dans certains cas, les tâches mises en veille peuvent continuer en arrière-plan ou reprendre en cas de requête ultérieure, ce qui peut entraîner des effets secondaires inattendus. L'un des symptômes courants de ce comportement est que les tâches et les journaux d'une requête donnent l'impression d'être transmis à une requête ultérieure. Évitez de dépendre de ce comportement, car vous ne pouvez pas compter sur la reprise des tâches qui ont été mises en veille. Votre fonction devrait plutôt éviter les dépassements de délai avant expiration en combinant les 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, et effectuez une sortie ou un nettoyage anticipé.

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 un délai avant expiration existant avec Google Cloud CLI, redéployez simplement la fonction avec une nouvelle valeur de délai avant expiration.

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 de Cloud Functions dans la console Google Cloud.
  2. Cliquez sur Create function.
  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 souhaitée 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.