AWS Lambda implementar referencia de acción - 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.

AWS Lambda implementar referencia de acción

Se 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 despliegue para el despliegue del tráfico de la siguiente manera:

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

  • Despliegues todos a la vez

nota

Esta acción solo se admite en 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í

El nombre de la función que creó en Lambda, por ejemplo. MyLambdaFunction

Debe haber creado ya 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 detrás de él cuando se inicie la ejecución de la acción. (Será la versión objetivo de la reversión).

Si no se proporciona, la acción despliega el artefacto de origen $LATEST y crea una nueva versión. En este caso de uso, las opciones de estrategia de despliegue 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, por ejemplo#{variables.lambdaTargetVersion}. La versión debe publicarse cuando se inicie la ejecución de la acción.

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

DeployStrategy

Obligatorio: No (el valor predeterminado esAllAtOnce)

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 despliegue disponibles son canarias o lineales. Formatos aceptados:

  • AllAtOnce -

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

    Si no se especifica, el valor predeterminado esAllAtOnce)

  • Canary10Percent5Minutes- Desplaza 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 todo el tráfico se desplace.

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

Las siguientes consideraciones se aplican a este campo:

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

  • Solo está disponible cuando FunctionAliasse proporciona.

Alarmas

Obligatorio: no

Lista de nombres de alarmas separados por comas configurados 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.

La siguiente imagen muestra un ejemplo de la página de edición de la acción.

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

Artefactos de entrada

  • Número de artefactos: 1

  • Descripción: Los archivos proporcionados, si los hay, 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 Lambda que se implementó.

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

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

{ "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:aws:{{customerAccountId}}:function:{{FunctionName}}", "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:aws:{{customerAccountId}}:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}", "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/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.