Referência da ação de implantação do AWS Lambda - AWS CodePipeline

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Referência da ação de implantação do AWS Lambda

Você usa uma ação de AWS Lambda implantação para gerenciar a implantação do código do aplicativo para sua implantação sem servidor. Você pode implantar uma função e usar estratégias de implantação para implantação de tráfego assim:

  • Implantações canário e linear para mudança de tráfego

  • Implantações todas de uma vez

nota

Essa ação só é compatível para pipelines tipo V2.

Tipo de ação

  • Categoria: Deploy

  • Proprietário: AWS

  • Fornecedor: Lambda

  • Versão: 1

Parâmetros de configuração

FunctionName

Obrigatório: sim

O nome da função criado por você no Lambda, como MyLambdaFunction.

Você já deve ter criado uma versão.

FunctionAlias

Obrigatório: não

O alias da função criada por você no Lambda e é a função a ser implantada, como live. O alias deverá existir e ter uma versão por trás quando a execução da ação for iniciada. (Será a versão de destino da reversão.)

Se não for fornecida, a ação vai implantar o artefato de origem em $LATEST e criar uma nova versão. Nesse caso de uso, as opções da estratégia de implantação e da versão de destino não estão disponíveis.

PublishedTargetVersion

Obrigatório: não

A versão desejada da Função Lambda para ser implantada. FunctionAlias Podem ser variáveis do pipeline ou do nível de ação, como #{variables.lambdaTargetVersion}. A versão deverá ser publicada quando a execução da ação for iniciada.

Obrigatório se nenhum artefato de entrada for fornecido.

DeployStrategy

Obrigatório: não (o padrão é AllAtOnce)

Determina a taxa que a ação de implantação do Lambda adota para transferir o tráfego da versão original da função do Lambda para a nova versão. FunctionAlias As estratégias de implantação disponíveis são canário ou linear. Formatos aceitos:

  • AllAtOnce -

    Desloca todo o tráfego para as funções do Lambda atualizadas de uma única vez.

    Se não for especificado, o padrão éAllAtOnce)

  • Canary10Percent5Minutes: muda 10 por cento do tráfego no primeiro incremento. Os 90 por cento restantes serão implantados cinco minutos depois.

    Os valores de porcentagem e minutos podem ser alterados.

  • Linear10PercentEvery1Minute: muda 10 por cento do tráfego a cada minuto até que todo o tráfego seja deslocado.

    Os valores de porcentagem e minutos podem ser alterados.

As seguintes considerações se aplicam para este campo:

  • O tempo de espera total máximo é de 2 dias.

  • Disponível somente quando FunctionAliasfornecido.

Alarmes

Obrigatório: não

Uma lista separada por vírgulas dos nomes de alarme configurados para a implantação do Lambda. No máximo, dez alarmes podem ser adicionados. A ação falha quando alarmes monitorados vão para o estado ALARME.

A imagem a seguir mostra um exemplo da página Editar da ação.

A página Editar ação de um novo pipeline com a ação de implantação do Lambda.

Input artifacts (Artefatos de entrada)

  • Número de artefatos: 1

  • Descrição: os arquivos fornecidos, se houver, para dar suporte às ações de script durante a implantação.

Artefatos de saída

  • Número de artefatos: 0

  • Descrição: os artefatos de saída não se aplicam a esse tipo de ação.

Variáveis de saída

Quando configurada, essa ação produz variáveis que podem ser referenciadas pela configuração de ação de uma ação downstream no pipeline. Esta ação produz variáveis que podem ser visualizadas como variáveis de saída, mesmo que a ação não tenha um namespace. Configure uma ação com um namespace a fim de disponibilizar as variáveis para a configuração de ações downstream.

Para obter mais informações, consulte Referência de variáveis.

FunctionVersion

A nova versão da função do Lambda que foi implantada.

Permissões de política do perfil de serviço para a ação de implantação do Lambda

Quando CodePipeline executa a ação, a função de CodePipeline serviço exige as seguintes permissões, com escopo adequado para acesso com menos privilégios.

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:*" ] } ] }

Declaração de ação

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" },

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.