Criar implantações contínuas para funções do Lambda - AWS Lambda

Criar implantações contínuas para funções do Lambda

Use implantações contínuas para controlar os riscos associados à introdução de novas versões da sua função do Lambda. Em uma implantação contínua, o sistema implanta automaticamente a nova versão da função e envia gradualmente uma quantidade crescente de tráfego para a nova versão. A quantidade de tráfego e a taxa de aumento são parâmetros que você pode configurar.

Configurar uma implementação sem interrupções usando o AWS CodeDeploy e o AWS SAM. CodeDeploy é um serviço que automatiza implantações de aplicativos para plataformas de computação da Amazon, como o Amazon EC2 eAWS Lambda. Para obter mais informações, consulte O que é o CodeDeploy?. Usando o CodeDeploy para implantar sua função do Lambda, é possível monitorar com facilidade o status da implantação e iniciar uma reversão se detectar algum problema.

O AWS SAM é um framework de código aberto para a criação de aplicações sem servidor. Crie um modelo de AWS SAM (no formato YAML) para especificar a configuração dos componentes necessários para a implantação contínua. O AWS SAM usa o modelo para criar e configurar os componentes. Para obter mais informações, consulte O que é o AWS SAM?.

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 de alias é 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 do Lambda do 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 um tutorial detalhado sobre como usar o CodeDeploy com funções do Lambda, consulte Implantar uma função do Lambda atualizada com o CodeDeploy.