Aliases de função do Lambda - AWS Lambda

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Aliases de função do Lambda

É possível criar aliases para sua função do Lambda. Um alias do Lambda é um ponteiro para uma versão da função que pode ser atualizada. Os usuários da função podem acessar a versão da função usando o nome do recurso da Amazon (ARN) do alias. Ao implantar uma nova versão, é possível atualizar o alias para usar a nova versão ou dividir o tráfego entre duas versões.

Como criar um alias da função (console)

Você pode criar um alias da função usando o console do Lambda.

Para criar um alias
  1. Abra a página Funções do console do Lambda.

  2. Escolha uma função.

  3. Escolha Aliases e, em seguida, escolha Create alias (Criar alias).

  4. Na página Create alias (Criar alias), faça o seguinte:

    1. Insira um Name (Nome) para o alias.

    2. (Opcional) Insira uma Description (Descrição) do alias.

    3. Em Version (Versão), escolha uma versão da função para a qual você deseja que o alias indique.

    4. (Opcional) Para configurar o roteamento no alias, expanda Weighted alias (Alias ponderado). Para ter mais informações, consulte Configuração de roteamento de alias.

    5. Escolha Salvar.

Gerenciar aliases com a API do Lambda

Para criar um alias usando a AWS Command Line Interface (AWS CLI), use o comando create-alias.

aws lambda create-alias --function-name my-function --name alias-name --function-version version-number --description " "

Para alterar um alias para indicar uma nova versão da função, use o comando update-alias.

aws lambda update-alias --function-name my-function --name alias-name --function-version version-number

Para excluir um alias, use o comando delete-alias.

aws lambda delete-alias --function-name my-function --name alias-name

Os comandos da AWS CLI nas etapas anteriores correspondem às seguintes operações de API do Lambda:

Gerenciamento de aliases com o AWS SAM e o AWS CloudFormation

É possível criar e gerenciar aliases de função usando o AWS Serverless Application Model (AWS SAM) e o AWS CloudFormation.

Para saber como declarar um alias de função em um modelo do AWS SAM, consulte a página AWS::Serverless::Function no Guia do desenvolvedor do AWS SAM. Para obter informações sobre como criar e configurar aliases usando o AWS CloudFormation, consulte AWS::Lambda::Alias no Guia do usuário do AWS CloudFormation.

Usar aliases

Cada alias tem um ARN exclusivo. Um alias pode apontar somente para uma versão de função, e não para outro alias. O alias pode ser atualizado para apontar para uma nova versão da função.

Fontes de eventos como Amazon Simple Storage Service (Amazon S3) invocam sua função do Lambda. Essas origens de evento mantêm um mapeamento que identifica a função a ser invocada quando ocorrem eventos. Se você especificar um alias da função do Lambda na configuração de mapeamento, não precisará atualizar o mapeamento quando a versão da função for alterada. Para ter mais informações, consulte Mapeamentos de fonte de eventos do Lambda.

Em uma política de recursos, é possível conceder permissões para fontes de eventos para usar sua função do Lambda. Se um ARN de alias for especificado na política, não será necessário atualizar a política quando a versão da função for alterada.

Políticas de recursos

É possível usar uma política baseada em recurso para conceder acesso a um serviço, recurso ou conta à sua função. O escopo dessa permissão depende se você a aplica a um alias, uma versão ou a toda a função. Por exemplo, se você usar um nome de alias (como helloworld:PROD), a permissão permite invocar a função helloworld usando o ARN do alias (helloworld:PROD).

Se você tentar invocar a função sem um alias ou uma versão específica, receberá um erro de permissão. Esse erro de permissão ainda ocorrerá mesmo se você tentar invocar diretamente a versão da função associada ao alias.

Por exemplo, o comando da AWS CLI a seguir concede permissões do Amazon S3 para invocar o alias PROD da função helloworld quando o Amazon S3 está agindo em nome de examplebucket.

aws lambda add-permission --function-name helloworld \ --qualifier PROD --statement-id 1 --principal s3.amazonaws.com --action lambda:InvokeFunction \ --source-arn arn:aws:s3:::examplebucket --source-account 123456789012

Para obter mais informações sobre como usar nomes de recursos em políticas, consulte Recursos e condições para ações do Lambda.

Configuração de roteamento de alias

Use a configuração de roteamento em um alias para enviar uma parte do tráfego para uma segunda versão de função. Por exemplo, você pode reduzir o risco de implantar uma nova versão configurando o alias para enviar a maior parte do tráfego para a versão existente e apenas uma pequena porcentagem de tráfego para a nova versão.

Observe que o Lambda usa um modelo probabilístico simples para distribuir o tráfego entre as duas versões de função. Em níveis de tráfego baixos, você pode ver uma alta variação entre a porcentagem configurada e real de tráfego em cada versão. Se sua função usa simultaneidade provisionada, você pode evitarInvocações de transbordamentoconfigurando um número maior de instâncias de simultaneidade provisionadas durante o tempo em que o roteamento de alias está ativo.

Você pode apontar um alias para um máximo de duas versões de função do Lambda. As versões devem atender aos seguintes critérios:

  • As duas versões devem ter a mesma função de execução.

  • Ambas as versões devem ter a mesma configuração de fila de mensagens mortas ou configuração de nenhuma fila de mensagens mortas.

  • Ambas as versões devem ser publicadas. O alias não pode apontar para $LATEST.

Para configurar o roteamento em um alias
nota

Verifique se a função tem pelo menos duas versões publicadas. Para criar versões adicionais, siga as instruções em Versões da função do Lambda.

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

  2. Escolha uma função.

  3. Escolha Aliases e, em seguida, escolha Create alias (Criar alias).

  4. Na página Create alias (Criar alias), faça o seguinte:

    1. Insira um Name (Nome) para o alias.

    2. (Opcional) Insira uma Description (Descrição) do alias.

    3. Em Version (Versão), escolha a primeira versão da função para a qual você deseja que o alias aponte.

    4. Expanda Weighted alias (Alias ponderado).

    5. Em Additional version (Versão adicional), escolha a segunda versão da função para a qual você deseja que o alias aponte.

    6. Em Weight (%) (Peso (%)), insira um valor de peso para a função. Peso é a porcentagem do tráfego atribuído a essa versão quando o alias é invocado. A primeira versão recebe o peso residual. Por exemplo, se você especificar 10% para Additional version (Versão adicional), a primeira versão receberá automaticamente a atribuição de 90 por cento.

    7. Escolha Salvar.

Configurar o roteamento de alias usando a CLI

Use os comandos create-alias e update-alias da AWS CLI para configurar os pesos de tráfego entre duas versões de uma função. Ao criar ou atualizar o alias, o peso do tráfego é especificado no parâmetro routing-config.

O exemplo a seguir cria um alias de função do Lambda chamado routing-alias que aponta para a versão 1 da função. A versão 2 da função recebe 3 por cento do tráfego. Os 97 por cento do tráfego restantes são roteados para a versão 1.

aws lambda create-alias --name routing-alias --function-name my-function --function-version 1 \ --routing-config AdditionalVersionWeights={"2"=0.03}

Use o comando update-alias para aumentar a porcentagem de tráfego de entrada para a versão 2. No exemplo a seguir, o tráfego é aumentado para 5%.

aws lambda update-alias --name routing-alias --function-name my-function \ --routing-config AdditionalVersionWeights={"2"=0.05}

Para rotear todo o tráfego para a versão 2, use o comando update-alias para alterar a propriedade function-version para apontar o alias para a versão 2. O comando também redefine a configuração de roteamento.

aws lambda update-alias --name routing-alias --function-name my-function \ --function-version 2 --routing-config AdditionalVersionWeights={}

Os comandos da AWS CLI nas etapas anteriores correspondem às seguintes operações de API do Lambda:

Determinar qual versão foi invocada

Ao configurar pesos de tráfego entre duas versões da função, há duas maneiras de determinar a versão da função do Lambda que foi chamada:

  • CloudWatch Logs — O Lambda emite automaticamente uma entrada de START registro que contém o ID da versão invocada para o Amazon CloudWatch Logs para cada invocação de função. Veja um exemplo a seguir:

    19:44:37 START RequestId: request id Version: $version

    Para invocações de alias, o Lambda usa a dimensão Executed Version para filtrar os dados de métrica pela versão invocada. Para ter mais informações, consulte Trabalhar com métricas de funções Lambda.

  • Carga de resposta (invocações síncronas) – As respostas às invocações de função síncrona incluem um cabeçalho x-amz-executed-version para indicar qual versão de função foi invocada.