Migra funciones de Cloud Functions a entornos de ejecución de Node.js más recientes

El entorno de ejecución de Node.js 6 es obsoleto. Para asegurarte de que tus funciones estén en una versión compatible de Node.js, mígralas a Node.js 8 o Node.js 10. Después del 22/04/2020, se bloquearán las implementaciones de funciones que utilizan Node.js 6. Luego de esta fecha, es posible que se inhabiliten las Cloud Functions que continúen usando Node.js 6.

Los entornos de ejecución de Node.js 8 y Node.js 10 introdujeron cambios que pueden requerir que modifiques el código fuente de tu función para usar los entornos de ejecución más recientes. En esta página, se describen los cambios y se proporcionan pautas para migrar funciones existentes a entornos de ejecución más nuevos.

Cambios introducidos en el entorno de ejecución de Node.js 8

La firma para las funciones en segundo plano cambió entre los entornos de ejecución Node.js 6 y Node.js 8.

Una función en segundo plano de ejemplo en Node.js 6 puede tener un aspecto similar al siguiente:

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

Ten en cuenta que el argumento event contiene propiedades de data y context. A partir del entorno de ejecución de Node.js 8, las propiedades data y context se extrajeron del objeto event y ahora se incluyen como parte de la firma de la función:

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

Este cambio simplifica las referencias a los objetos data y context que antes se encontraban dentro del argumento event. Para obtener más información, consulta Parámetros de funciones en segundo plano.

Si usas la firma de la función en segundo plano de Node.js 6, realiza los siguientes cambios para ejecutar tu función en un entorno de ejecución de Node.js más reciente:

  1. Cambia la firma de la función de (event, callback) a (data, context, callback).

  2. Cambia las referencias de event.data y event.context a data y context, respectivamente.

Cambios introducidos en el entorno de ejecución de Node.js 10

Además de los cambios introducidos en el entorno de ejecución de Node.js 8, el entorno de ejecución de Node.js 10 introdujo cambios en las variables de entorno que predefine el entorno de ejecución. Consulta Variables de entorno que se configuran automáticamente para obtener una descripción completa de las diferencias entre las variables de entorno que configura el entorno de ejecución de Node.js 10 y las que configuran los entornos de ejecución anteriores.

Para ejecutar tus funciones de Node.js anteriores en el entorno de ejecución de Node.js 10, es posible que debas realizar cambios en las variables de entorno predefinidas que usas. Actualiza tu código para usar las variables de reemplazo cuando sea posible o configúralas tú mismo en el momento de implementar tu función. Como recomendación, te sugerimos que no dependas de variables de entorno que no hayas establecido explícitamente.

El entorno de ejecución de Node.js 10 ya no configura las siguientes variables de entorno:

Variable de entorno Migración
CODE_LOCATION Configúrala cuando implementes tu función. La ubicación de tu código es /srv.
ENTRY_POINT En su lugar, usa la variable de entorno FUNCTION_TARGET.
GOOGLE_CLOUD_PROJECT Configúrala cuando implementes tu función.
GCP_PROJECT Configúrala cuando implementes tu función.
GCLOUD_PROJECT Configúrala cuando implementes tu función.
GOOGLE_CLOUD_REGION Configúrala cuando implementes tu función.
FUNCTION_REGION Configúrala cuando implementes tu función.
FUNCTION_NAME En su lugar, usa la variable de entorno K_SERVICE.
FUNCTION_IDENTITY Configúrala cuando implementes tu función.
FUNCTION_MEMORY_MB Configúrala cuando implementes tu función.
FUNCTION_TIMEOUT_SEC Configúrala cuando implementes tu función.
FUNCTION_TRIGGER_TYPE En su lugar, usa la variable de entorno FUNCTION_SIGNATURE_TYPE. Consulta Usa variables de entorno para obtener detalles de uso.
OLDPWD Ya no está disponible.
SHLVL Ya no está disponible.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Functions