Creación de implementaciones continuas para las funciones de Lambda - AWS Lambda

Creación de implementaciones continuas para las funciones de Lambda

Utilice implementaciones continuas para controlar los riesgos asociados a la introducción de nuevas versiones de su función de Lambda. En una implementación continua, el sistema implementa automáticamente la nueva versión de la función y envía gradualmente una cantidad creciente de tráfico a la nueva versión. La cantidad de tráfico y la tasa de aumento son parámetros que puede configurar.

Puede configurar una implementación sucesiva mediante el uso de AWS CodeDeploy y AWS SAM. CodeDeploy es un servicio que automatiza las implementaciones de aplicaciones en plataformas informáticas de Amazon como Amazon EC2 y AWS Lambda. Para obtener más información, consulte ¿Qué es CodeDeploy?. Al utilizar CodeDeploy para implementar la función de Lambda, puede monitorizar fácilmente el estado de la implementación e iniciar una restauración si detecta algún problema.

AWS SAM es un marco de código abierto para crear aplicaciones sin servidor. Cree una plantilla de AWS SAM (en formato YAML) para especificar la configuración de los componentes necesarios para la implementación continua. AWS SAM utiliza la plantilla para crear y configurar los componentes. Para obtener más información, consulte ¿Qué es AWS SAM?

En una implementación continua, AWS SAM realiza las siguientes tareas:

  • Configura su función de Lambda y crea un alias.

    La configuración de direccionamiento de alias es la capacidad subyacente que implementa la implementación continua.

  • Crea una aplicación CodeDeploy y un grupo de implementación.

    El grupo de implementación administra la implementación continua y la restauración (si es necesario).

  • Detecta cuando crea una nueva versión de su función de Lambda.

  • Activa CodeDeploy para iniciar la implementación de la nueva versión.

Ejemplo AWS SAM de la plantilla Lambda

En el siguiente ejemplo se muestra una plantilla de AWS SAM para una implementación continua simple.

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

Esta plantilla define una función de Lambda denominada myDateTimeFunction con las siguientes propiedades.

AutoPublishAlias

La propiedad AutoPublishAlias crea un alias denominado live. Además, el marco de AWS SAM detecta automáticamente cuando guarda código nuevo para la función. A continuación, el marco publica una nueva versión de función y actualiza el alias live para que apunte a la nueva versión.

DeploymentPreference

La propiedad DeploymentPreference determina la velocidad a la que la aplicación CodeDeploy cambia el tráfico de la versión original de la función de Lambda a la nueva versión. El valor Linear10PercentEvery2Minutes desplaza un diez por ciento adicional del tráfico a la nueva versión cada dos minutos.

Para obtener una lista de las configuraciones de implementación predefinidas, consulte Configuraciones de implementación.

Para obtener un tutorial detallado sobre cómo utilizar CodeDeploy con funciones de Lambda, consulte Implementación de una función de Lambda actualizada con CodeDeploy.