Configurer le nombre minimal d'instances

Vous pouvez éviter les démarrages à froid de votre application et en réduire la latence en définissant un nombre minimal d'instances.

Dans Cloud Functions, le scaling s'effectue via la création d'instances de votre fonction. Comme chacune de ces instances ne peut traiter qu'une requête à la fois, des pics de requêtes importants entraînent souvent des temps d'attente plus longs à mesure que des instances sont créées pour gérer la demande.

Les fonctions étant sans état, votre fonction initialise parfois l'environnement d'exécution à partir de zéro : c'est ce que l'on appelle un démarrage à froid. Les démarrages à froid peuvent prendre beaucoup de temps. Par conséquent, si votre application est sensible à la latence, nous vous recommandons de définir un nombre minimal d'instances Cloud Functions.

Instances inactives et démarrages à froid

Pour minimiser l'impact des démarrages à froid, Cloud Functions tente de maintenir les instances de fonction inactives pendant une durée non spécifiée après le traitement d'une requête. Pendant cette période d'inactivité, les ressources telles que les connexions de base de données ouvertes peuvent être conservées au cas où une autre requête doive être traitée. Les instances qui sont maintenues inactives de cette manière sont comptabilisées dans la limite maximale d'instances définie pour votre fonction, mais ce temps d'inactivité ne vous est pas facturé.

Ce comportement intégré peut être insuffisant pour votre application, en particulier si elle est sensible à la latence. Définir explicitement un nombre minimal d'instances peut vous aider à éviter les démarrages à froid et à réduire la latence des applications.

Notez que lorsque des instances restent inactives parce qu'un nombre minimal d'instances a été défini, elles ne sont pas considérées comme actives, sauf si elles ont diffusé du trafic récemment. Cela signifie par exemple que si une fonction n'a pas diffusé de trafic récemment, la métrique "Instances actives" peut indiquer qu'aucune instance n'est active, même si une valeur a été définie pour le nombre minimal d'instances.

Notez également que lorsque vous définissez un nombre minimal d'instances, vous êtes facturé pour le temps d'inactivité de ces instances. Consultez la page des Tarifs.

Définir et supprimer les limites minimales d'instances

Vous pouvez définir un nombre minimal d'instances pour une fonction lors du déploiement. Chaque fonction possède son propre paramètre minimal d'instances.

Définir des limites minimales d'instances

Vous pouvez définir une limite minimale d'instances à l'aide de Google Cloud CLI ou de Google Cloud Console.

Console

Pour définir une limite minimale d'instances pour une nouvelle fonction, procédez comme suit :

  1. Pour créer une fonction, accédez à la page Cloud Functions dans Google Cloud Console :
    Accéder à la page Cloud Functions.

  2. Cliquez sur Create function (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 Nombre minimal d'instances de la section Autoscaling, saisissez un nombre supérieur ou égal à 1.

  6. Cliquez sur Suivant.

  7. Cliquez sur Déployer.

Pour définir une limite minimale d'instances pour une fonction existante, procédez comme suit :

  1. Accédez à la page Cloud Functions dans Google Cloud Console :
    Accéder à la page Cloud Functions

  2. Cliquez sur le nom d'une fonction existante pour accéder à la page Informations sur la fonction correspondante.

  3. Cliquez sur Modifier.

  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 Nombre minimal d'instances de la section Autoscaling, saisissez un nombre supérieur ou égal à 1.

  6. Cliquez sur Suivant.

  7. Cliquez sur Déployer.

gcloud

Pour définir une limite minimale d'instances, exécutez la commande suivante :

gcloud functions deploy FUNCTION_NAME \
--min-instances MIN_INSTANCE_LIMIT

Remplacez les éléments suivants :

  • FUNCTION_NAME : nom de votre fonction.

  • MIN_INSTANCE_LIMIT : nombre à définir comme limite minimale d'instances. Ne peut pas dépasser 1 000.

La limite minimale d'instances de la fonction est définie.

Supprimer des limites minimales d'instances

Vous pouvez effacer ou supprimer une limite minimale d'instances à l'aide de Google Cloud CLI ou de la console Google Cloud.

Console

Pour effacer la limite minimale d'instances d'une fonction, procédez comme suit :

  1. Accédez à la page Cloud Functions dans Google Cloud Console :
    Accéder à la page Cloud Functions

  2. Cliquez sur le nom d'une fonction existante pour accéder à la page Informations sur la fonction correspondante.

  3. Cliquez sur Modifier.

  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 Nombre minimal d'instances de la section Autoscaling, saisissez 0.

  6. Cliquez sur Suivant.

  7. Cliquez sur Déployer.

gcloud

Utilisez l'option --clear-min-instances au moment du déploiement :

gcloud functions deploy FUNCTION_NAME --clear-min-instances

La limite minimale d'instances de la fonction est effacée.

Obtenir des recommandations pour définir un nombre minimal d'instances

L'outil de recommandation fournit automatiquement des recommandations pour les fonctions déployées qui pourraient bénéficier d'un nombre minimal d'instances défini.