Referencia de la acción de implementación de AWS Lambda - AWS CodePipeline

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Referencia de la acción de implementación de AWS Lambda

Utiliza una acción de AWS Lambda despliegue para gestionar la implementación del código de la aplicación para la implementación sin servidor. Puede implementar una función y utilizar estrategias de implementación para la implementación del tráfico de la siguiente manera:

  • Implementaciones lineales y canarias para el cambio del tráfico

  • Implementaciones Todo a la vez

nota

Esta acción solo se admite para canalizaciones de tipo V2.

Tipo de acción

  • Categoría: Deploy

  • Propietario: AWS

  • Proveedor: Lambda

  • Versión: 1

Parámetros de configuración

FunctionName

Obligatorio: sí

En nombre de la función que creó en Lambda, como MyLambdaFunction.

Ya debe haber creado una versión.

FunctionAlias

Obligatorio: no

El alias de la función que creó en Lambda y es la función en la que se va a implementar, por ejemplo live. El alias debe existir y tener una versión subyacente cuando se inicie la ejecución de la acción. (Será la versión de destino de la reversión).

Si no se proporciona, la acción implementa el artefacto de origen en $LATEST y crea una nueva versión. En este caso de uso, las opciones de estrategia de implementación y versión de destino no están disponibles.

PublishedTargetVersion

Obligatorio: no

La versión de la función Lambda deseada en la que se va a implementar. FunctionAlias Pueden ser variables de canalización o de nivel de acción, como #{variables.lambdaTargetVersion}. La versión debe publicarse cuando comience la ejecución de la acción.

Obligatorio si no se proporciona ningún artefacto de entrada.

DeployStrategy

Obligatorio: no (el valor predeterminado es AllAtOnce)

Determina la velocidad que adopta la acción de despliegue de Lambda para cambiar el tráfico de la versión original de la función Lambda a la nueva versión. FunctionAlias Las estrategias de implementación disponibles son canaria o lineal. Formatos aceptados:

  • AllAtOnce -

    Desvía todo el tráfico a las funciones Lambda actualizadas a la vez.

    Si no se especifica, el valor predeterminado es) AllAtOnce

  • Canary10Percent5Minutes: cambia el 10 por ciento del tráfico en el primer incremento. El 90 por ciento restante se implementa cinco minutos más tarde.

    Se pueden cambiar los valores tanto del porcentaje como de los minutos.

  • Linear10PercentEvery1Minute: cambia el 10 por ciento del tráfico cada minuto hasta que se cambia todo el tráfico.

    Se pueden cambiar los valores tanto del porcentaje como de los minutos.

Se deben tener en cuenta las siguientes consideraciones para este campo:

  • El tiempo de espera total máximo es de dos días.

  • Solo está disponible cuando FunctionAliasse proporciona.

Alarmas

Obligatorio: no

Una lista separada por comas con los nombres de las alarmas configuradas para la implementación de Lambda. Se puede agregar un máximo de 10 alarmas. La acción falla cuando las alarmas monitorizadas pasan al estado de ALARMA.

En la siguiente imagen, se muestra un ejemplo de la página Editar de la acción.

La página Editar acción para una nueva canalización con la acción de implementación de Lambda

Artefactos de entrada

  • Número de artefactos: 1

  • Descripción: los archivos proporcionados (en caso de haberlos) para respaldar las acciones del script durante la implementación.

Artefactos de salida

  • Número de artefactos: 0

  • Descripción: los artefactos de salida no se aplican a este tipo de acción.

Variables de salida

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Esta acción produce variables que se pueden ver como variables de salida, incluso si la acción no tiene un espacio de nombres. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

Para obtener más información, consulte Referencia de variables.

FunctionVersion

La nueva versión de la función de Lambda que se implementó.

Permisos de la política de rol de servicio para la acción de implementación de Lambda

Cuando CodePipeline se ejecuta la acción, la función de CodePipeline servicio requiere los siguientes permisos, con el alcance adecuado para el acceso con los mínimos privilegios.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "StatementForLambda", "Effect": "Allow", "Action": [ "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode" ], "Resource": [ "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}", "arn:aws:lambda:us-east-1:111122223333:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:us-east-1:111122223333:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}", "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/us-east-1/codepipeline/{{pipelineName}}:log-stream:*" ] } ] }

Declaración de acciones

YAML
name: Deploy actionTypeId: category: Deploy owner: AWS provider: Lambda version: '1' runOrder: 1 configuration: DeployStrategy: Canary10Percent5Minutes FunctionAlias: aliasV1 FunctionName: MyLambdaFunction outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables
JSON
{ "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "Lambda", "version": "1" }, "runOrder": 1, "configuration": { "DeployStrategy": "Canary10Percent5Minutes", "FunctionAlias": "aliasV1", "FunctionName": "MyLambdaFunction" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" },

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.