AWS Lambda referência de ação de implantação - 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á.

AWS Lambda referência de ação de implantação

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 da seguinte forma:

  • Implantações canárias e lineares para mudança de tráfego

  • Implantações de uma só vez

nota

Essa ação só é compatível com pipelines do 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 que você criou no Lambda, como. MyLambdaFunction

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

FunctionAlias

Obrigatório: Não

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

Se não for fornecida, a ação implanta o artefato de origem $LATEST e cria uma nova versão. Nesse caso de uso, as opções de estratégia de implantação e 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 de pipeline ou de nível de ação, como#{variables.lambdaTargetVersion}. A versão deve 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árias ou lineares. 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- Desloca 10 por cento do tráfego no primeiro incremento. Os 90 por cento restantes são implantados cinco minutos depois.

    Os valores de porcentagem e minutos podem ser alterados.

  • Linear10PercentEvery1Minute- Desloca 10% 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 a esse campo:

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

  • Disponível somente quando FunctionAliasfornecido.

Alarmes

Obrigatório: Não

Uma lista separada por vírgulas de nomes de alarmes configurada para a implantação do Lambda. No máximo, dez alarmes podem ser adicionados. A ação falha quando os 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 de ação Editar para 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 do 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 Lambda que foi implantada.

Permissões da política de função 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.

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

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.