Versões de função do Lambda - AWS Lambda

Versões de função do Lambda

É possível usar versões para gerenciar a implantação das suas funções. Por exemplo, é possível 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 cada vez que você publicar a função. A nova versão é uma cópia da versão não publicada da função.

A versão da função inclui as seguintes informações:

  • O código da função e todas as dependências associadas.

  • O tempo de execução do Lambda que invoca a função.

  • Todas as configurações das funções, incluindo as variáveis de ambiente.

  • Um nome de recurso da Amazon (ARN) exclusivo para identificar essa versão específica da 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. Ao publicar uma versão, o código e a maioria das configurações são bloqueados, para manter uma experiência consistente para os usuários dessa versão. Para obter mais informações sobre a configuração de funções, consulte Configurar funções no console do AWS Lambda.

Para criar uma versão nova de uma função

  1. Abra a página Funções do console do Lambda.

  2. Escolha o nome da função que deseja publicar.

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

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

  5. Escolha Publish.

Depois de publicar a primeira versão de uma função, o console do Lambda exibe uma lista suspensa das versões disponíveis. O painel Designer exibe um qualificador de versões no final do nome da função.

Para exibir as versões atuais de uma função, na página de configuração da função, escolha Qualifiers (Qualificadores) e escolha a guia Versions (Versões) para ver uma lista de versões para a função. Se você não publicou uma nova versão da função, a lista exibirá apenas a versão $LATEST.

Gerenciar versões com a API do Lambda

Para publicar uma versão de uma função, use a operação de API PublishVersion.

O exemplo 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 { "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": "nodejs12.x", ... }

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 $LATENT.

O Lambda publica uma nova versão de função somente se o código nunca foi publicado ou se o código foi alterado a partir da ú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 Recursos e condições para ações do Lambda.

É 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 obter mais informações, consulte Aliases de função do Lambda.