Gerenciar versões da função do Lambda - AWS Lambda

Gerenciar versões da função do Lambda

É possível usar versões para gerenciar a implantação das suas funções. Por exemplo, você pode publicar uma nova versão de uma função para testes beta sem afetar os usuários da versão de produção estável. O Lambda cria uma nova versão da sua função sempre que você publicá-la. A nova versão é uma cópia da versão não publicada da função. A versão não publicada é denominada $LATEST.

nota

Para criar uma nova versão da função, você de primeiro fazer alterações na versão não publicada ($LATEST). Essas alterações podem incluir atualizar o código ou modificar as configurações. Se a $LATEST for idêntica a uma versão publicada anterior, você não poderá criar uma nova versão até implantar alterações na $LATEST.

Depois de publicar uma versão da função, o código, o runtime, a arquitetura, a memória, as camadas e a maioria das outras definições de configuração da função são imutáveis. Isso significa que você não pode alterar essas configurações sem publicar uma nova versão $LATEST. Você pode configurar os seguintes itens para uma versão de função publicada:

nota

Ao usar os controles de gerenciamento de runtime com o modo Automático, a versão do runtime usada pela versão da função é atualizada automaticamente. Ao usar Function update (Atualização de função) ou o modo Manual, a versão de runtime não será atualizada. Para ter mais informações, consulte Entender como o Lambda gerencia as atualizações de versão do runtime.

Como criar versões de função

O código e as configurações das funções somente podem ser alterados na versão não publicada de uma função. Quando você publica uma versão, o Lambda bloqueia o código e a maioria das configurações para manter uma experiência consistente para os usuários dessa versão.

Você pode criar uma versão de função usando o console do Lambda.

Para criar uma nova versão de função
  1. Abra a página Funções do console do Lambda.

  2. Escolha uma função e, em seguida, selecione a guia Versões.

  3. Na página de configuração de versões, escolha Publish new version (Publicar nova versão).

  4. (Opcional) Insira uma descrição de versão.

  5. Selecione Publish.

Como alternativa, é possível publicar uma versão de uma função usando a operação de API PublishVersion.

O comando da AWS CLI a seguir publica uma nova versão de uma função. A resposta retorna as informações de configuração sobe a versão da função, incluindo o número da versão e o ARN da função com o sufixo da versão.

aws lambda publish-version --function-name my-function

A seguinte saída deverá ser mostrada:

{
  "FunctionName": "my-function",
  "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:1",
  "Version": "1",
  "Role": "arn:aws:iam::123456789012:role/lambda-role",
  "Handler": "function.handler",
  "Runtime": "nodejs22.x",
  ...
}
nota

O Lambda atribui números de sequência monotônicos crescentes para o controle de versionamento. O Lambda nunca reutiliza números de versão, mesmo após você excluir e recriar uma função.

Usar versões

É possível fazer referência à sua função do Lambda usando um ARN qualificado ou um ARN não qualificado.

  • ARN qualificado: o ARN da função com um sufixo da versão. O exemplo a seguir faz referência à versão 42 da função helloworld.

    arn:aws:lambda:aws-region:acct-id:function:helloworld:42
  • ARN não qualificado: o ARN da função sem um sufixo da versão.

    arn:aws:lambda:aws-region:acct-id:function:helloworld

É possível usar um ARN qualificado ou não qualificado em todas as operações de API relevantes. No entanto, não é possível usar um ARN não qualificado para criar um alias.

Se você decidir não publicar versões de funções, será possível invocar a função usando o ARN qualificado ou não qualificado no mapeamento da origem do evento. Quando você invoca uma função usando um ARN não qualificado, o Lambda invoca implicitamente a $LATEST.

O Lambda só publica uma nova versão da função se o código nunca tiver sido publicado ou se o código foi alterado em relação à última versão publicada. Se não houver nenhuma alteração, a versão da função permanecerá na última versão publicada.

O ARN qualificado para cada versão de função do Lambda é exclusivo. Depois de publicar uma versão, não é possível alterar o ARN ou o código da função.

Conceder permissões

É possível usar uma política baseada em recurso ou uma política baseada em identidade para conceder acesso à sua função. O escopo da permissão depende se você aplicar a política a uma função ou a uma versão de uma função. Para obter mais informações sobre nomes de recursos de função em políticas, consulte Ajustar as seções de Recursos e Condições das políticas.

É possível simplificar o gerenciamento de fontes de eventos e políticas do AWS Identity and Access Management (IAM) utilizando aliases de funções. Para ter mais informações, consulte Criar um alias para uma função do Lambda.