Migrar funções do Cloud Functions para ambientes de execução mais recentes do Node.js

O ambiente de execução do Node.js 6 teve seu uso suspenso. Para garantir que as funções sejam aceitas em uma versão compatível do Node.js, migre-as para Node.js 8 ou Node.js 10. Após 22/04/2020, as implantações de função que usam o Node.js 6 serão bloqueadas. As funções do Cloud Functions que continuarem a usar o Node.js 6 após esse período serão desabilitadas.

Foram implantadas atualizações no Node.js 8 e Node.js 10 que podem exigir modificações no código-fonte da função para usar os ambientes de execução mais recentes. Nesta página, descrevemos essas alterações e fornecemos diretrizes para migrar as funções existentes para ambientes mais recentes.

Alterações introduzidas no ambiente de execução do Node.js 8

A assinatura das funções de segundo plano foi alterada entre os ambientes de execução do Node.js 6 e do Node.js 8.

Uma função em segundo plano do Node.js 6 pode ter a seguinte aparência:

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

Observe que o argumento event contém propriedades data e context. A partir do ambiente de execução do Node.js 8, as propriedades data e context foram extraídas do objeto event e agora estão incluídas como parte da assinatura da função:

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

Essa alteração simplifica as referências aos objetos data e context anteriormente contidos no argumento event. Para mais informações, consulte Parâmetros da função em segundo plano.

Se você estiver usando a assinatura da função em segundo plano do Node.js 6, faça as seguintes alterações para executar sua função em um ambiente de execução Node.js mais recente:

  1. Altere a assinatura da função de (event, callback) para (data, context, callback).

  2. Altere as referências a event.data e event.context para data e context, respectivamente.

Alterações introduzidas no ambiente de execução do Node.js 10

Além das alterações introduzidas no Node.js 8, as variáveis de ambiente predefinidas pelo ambiente de execução foram alteradas no Node.js 10. Consulte Variáveis de ambiente definidas automaticamente para uma descrição completa das diferenças entre as variáveis de ambiente definidas pelo Node.js 10 e pelos ambientes de execução anteriores.

Para executar funções mais antigas do Node.js no Node.js 10, talvez seja necessário fazer alterações em quaisquer variáveis de ambiente predefinidas que estejam em uso. Atualize o código para usar as variáveis de substituição sempre que possível ou defina-as ao implantar a função. Como prática recomendada, indicamos que você não use variáveis de ambiente que não foram definidas explicitamente.

As variáveis de ambiente a seguir não são mais configuradas pelo ambiente de execução do Node.js 10:

Variável de ambiente Migração
CODE_LOCATION Defina-a ao implantar a função. A localização do código é /srv.
ENTRY_POINT Em vez dela, use a variável de ambiente FUNCTION_TARGET.
GOOGLE_CLOUD_PROJECT Defina-a ao implantar a função.
GCP_PROJECT Defina-a ao implantar a função.
GCLOUD_PROJECT Defina-a ao implantar a função.
GOOGLE_CLOUD_REGION Defina-a ao implantar a função.
FUNCTION_REGION Defina-a ao implantar a função.
FUNCTION_NAME Em vez dela, use a variável de ambiente K_SERVICE.
FUNCTION_IDENTITY Defina-a ao implantar a função.
FUNCTION_MEMORY_MB Defina-a ao implantar a função.
FUNCTION_TIMEOUT_SEC Defina-a ao implantar a função.
FUNCTION_TRIGGER_TYPE Em vez dela, use a variável de ambiente FUNCTION_SIGNATURE_TYPE. Consulte Como usar variáveis de ambiente para mais detalhes.
OLDPWD Não está mais disponível.
SHLVL Não está mais disponível.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud Functions Documentation