Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Implemente implantações canárias do Lambda usando um alias ponderado

Modo de foco
Implemente implantações canárias do Lambda usando um alias ponderado - AWS Lambda

É possível usar um alias ponderado para dividir o tráfego entre duas diferentes versões da mesma função. Com essa abordagem, você pode testar novas versões de funções com uma pequena porcentagem de tráfego e reverter rapidamente, caso necessário. Esse processo é conhecido como implantação canária. Implantações canárias diferem de implantações azul/verde por exporem a nova versão a apenas uma parte das solicitações, em vez de alternar todo o tráfego de uma só vez.

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.

nota

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.

Criar um alias ponderado

Console
Para configurar o roteamento em um alias usando o console
nota

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

  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.

AWS CLI

Use os comandos create-alias e update-alias AWS CLI para configurar os pesos do 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:

Para configurar o roteamento em um alias usando o console
nota

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

  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.

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 log START que contém o ID da versão invocada em cada invocação da função. Exemplo: .

    START RequestId: 1dh194d3759ed-4v8b-a7b4-1e541f60235f Version: 2

    Para invocações de alias, o Lambda usa a dimensão ExecutedVersion para filtrar os dados de métrica pela versão invocada. Para ter mais informações, consulte Exibição de métricas de funções do 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.

Criar uma implantação contínua com aliases ponderados

Use o AWS CodeDeploy e o AWS Serverless Application Model (AWS SAM) para criar uma implantação contínua que detecta automaticamente alterações no código da função, implanta uma nova versão da função e aumenta gradualmente a quantidade de tráfego que flui para essa nova versão. A quantidade de tráfego e a taxa de aumento são parâmetros que você pode configurar.

Em uma implantação contínua, o AWS SAM executa estas tarefas:

  • Configura sua função do Lambda e cria um alias. A configuração de roteamento do alias ponderado é o recurso subjacente que implementa a implantação contínua.

  • Cria um aplicativo CodeDeploy e um grupo de implantação. O grupo de implantação gerencia a implantação contínua e a reversão, se necessário.

  • Detecta quando você cria uma nova versão da sua função do Lambda.

  • Aciona o CodeDeploy para iniciar a implantação da nova versão.

Exemplo de modelo AWS SAM

O exemplo a seguir mostra um Modelo do AWS SAM para uma implantação contínua simples.

AWSTemplateFormatVersion : '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: A sample SAM template for deploying Lambda functions Resources: # Details about the myDateTimeFunction Lambda function myDateTimeFunction: Type: AWS::Serverless::Function Properties: Handler: myDateTimeFunction.handler Runtime: nodejs18.x # Creates an alias named "live" for the function, and automatically publishes when you update the function. AutoPublishAlias: live DeploymentPreference: # Specifies the deployment configuration Type: Linear10PercentEvery2Minutes

Este modelo define uma função do Lambda denominada myDateTimeFunction com as propriedades a seguir.

AutoPublishAlias

A propriedade AutoPublishAlias cria um alias chamado live. Além disso, o framework AWS SAM detecta automaticamente quando você salva um código novo para a função. O framework publica uma nova versão da função e atualiza o alias do live para apontar para a nova versão.

DeploymentPreference

A propriedade DeploymentPreference determina a taxa na qual a aplicação do CodeDeploy muda o tráfego da versão original da função do Lambda para a nova versão. O valor Linear10PercentEvery2Minutes muda dez por cento adicionais do tráfego para a nova versão a cada dois minutos.

Para obter uma lista das configurações de implantação predefinidas, consulte Configurações de implantação.

Para obter mais informações sobre como criar implantações contínuas com o CodeDeploy e o AWS SAM, consulte o seguinte:

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.