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 chamadolive
. 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 dolive
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 valorLinear10PercentEvery2Minutes
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.