Migrer des fonctions Cloud Functions vers les environnements d'exécution Node.js plus récents

L'environnement d'exécution Node.js 6 est désormais obsolète. Pour vous assurer que vos fonctions s'exécutent sur une version compatible de Node.js, migrez-les vers Node.js 8 ou Node.js 10. À compter du 22 avril 2020, les déploiements de fonctions utilisant Node.js 6 seront bloqués. Les fonctions Cloud Functions qui continueront à utiliser Node.js 6 après cette date pourront être désactivées.

Node.js 8 et Node.js 10 introduisent des modifications pouvant vous obliger à modifier le code source de votre fonction afin d'utiliser les derniers environnements d'exécution. Cette page décrit ces modifications et explique comment migrer des fonctions existantes vers des environnements d'exécution plus récents.

Modifications apportées à l'environnement d'exécution Node.js 8

Le processus de signature des fonctions d'arrière-plan diffère entre Node.js 6 et Node.js 8.

Prenons un exemple de fonction d'arrière-plan Node.js 6 :

exports.nodejs6BackgroundFunction = (event, callback) => {
  let data = event.data;
  let context = event.context;
  // ... the rest of your function
};

Notez que l'argument event contient les propriétés data et context. Depuis Node.js 8, les propriétés data et context sont extraites de l'objet event et incluses dans la signature de la fonction :

exports.nodejs8AndAboveBackgroundFunction = (data, context, callback) => {
  // ... the rest of your function is unchanged
};

Cette modification simplifie les références aux objets data et context, précédemment contenus dans l'argument event. Pour plus d'informations, consultez la section Paramètres de fonction.

Si vous utilisez le processus de signature des fonctions d'arrière-plan de Node.js 6, apportez les modifications suivantes pour exécuter votre fonction dans un environnement d'exécution Node.js plus récent :

  1. Remplacez la signature de la fonction (event, callback) par (data, context, callback).

  2. Remplacez les références à event.data et à event.context par data et context, respectivement.

Modifications apportées à l'environnement d'exécution Node.js 10

En plus des modifications apportées à l'environnement d'exécution Node.js 8, Node.js 10 introduit des changements au niveau des variables d'environnement prédéfinies par l'environnement d'exécution. Consultez la section Variables d'environnement définies automatiquement pour connaître les différences entre les variables d'environnement définies par Node.js 10 et celles des précédents environnements d'exécution.

Pour exécuter vos anciennes fonctions Node.js dans Node.js 10, vous devrez peut-être modifier vos variables d'environnement prédéfinies. Mettez à jour votre code de sorte qu'il utilise les variables de remplacement lorsque c'est possible, ou définissez-les vous-même lors du déploiement de votre fonction. Il est déconseillé de dépendre de variables d'environnement que vous n'avez pas définies explicitement.

Les variables d'environnement suivantes ne sont plus automatiquement définies dans l'environnement d'exécution Node.js 10 :

Variable d'environnement Migration
CODE_LOCATION Définissez-la lors du déploiement de la fonction. Votre code se situe à l'emplacement suivant : /srv.
ENTRY_POINT Utilisez plutôt la variable d'environnement FUNCTION_TARGET.
GOOGLE_CLOUD_PROJECT Définissez-la lors du déploiement de la fonction.
GCP_PROJECT Définissez-la lors du déploiement de la fonction.
GCLOUD_PROJECT Définissez-la lors du déploiement de la fonction.
GOOGLE_CLOUD_REGION Définissez-la lors du déploiement de la fonction.
FUNCTION_REGION Définissez-la lors du déploiement de la fonction.
FUNCTION_NAME Utilisez plutôt la variable d'environnement K_SERVICE.
FUNCTION_IDENTITY Définissez-la lors du déploiement de la fonction.
FUNCTION_MEMORY_MB Définissez-la lors du déploiement de la fonction.
FUNCTION_TIMEOUT_SEC Définissez-la lors du déploiement de la fonction.
FUNCTION_TRIGGER_TYPE Utilisez plutôt la variable d'environnement FUNCTION_SIGNATURE_TYPE. Consultez la page Utiliser des variables d'environnement pour en savoir plus.
OLDPWD Indisponible
SHLVL Indisponible
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Cloud Functions Documentation