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á.

AWS Lambda

Permite executar uma função do Lambda como uma ação no pipeline. Usando o objeto de evento que é uma entrada para essa função, a função tem acesso à configuração da ação, aos locais dos artefatos de entrada, aos locais dos artefatos de saída e a outras informações necessárias para acessar os artefatos. Para obter um exemplo de evento enviado para uma função de invocação do Lambda, consulteExemplo de evento JSON. Como parte da implementação da função Lambda, deve haver uma chamada para a PutJobSuccessResult API ou PutJobFailureResult API. Caso contrário, a execução dessa ação trava até que a ação atinja o tempo limite. Se você especificar artefatos de saída para a ação, será necessário fazer upload deles no bucket do S3 como parte da implementação da função.

Importante

Não registre o evento JSON que o CodePipeline envia ao Lambda porque isso pode resultar no registro de credenciais do usuário no CloudWatch Logs. A função CodePipeline usa um evento JSON para passar credenciais temporárias para o Lambda noartifactCredentialsfield. Para obter um evento de exemplo, consulte Exemplo de evento JSON.

Tipo de ação

  • Categoria: Invoke

  • Proprietário: AWS

  • Fornecedor: Lambda

  • Versão: 1

Parâmetros de configuração

FunctionName

: obrigatório Sim

FunctionNameé o nome da função criada no Lambda.

UserParameters

: obrigatório Não

Uma string que pode ser processada como entrada pela função Lambda.

Input artifacts (Artefatos de entrada)

  • Número de artefatos: 0 to 5

  • Descrição: O conjunto de artefatos a ser disponibilizado para a função Lambda.

Artefatos de saída

  • Número de artefatos: 0 to 5

  • Descrição: O conjunto de artefatos produzidos como saída pela função Lambda.

Variáveis de saída

Esta ação produzirá como variáveis todos os pares de chave-valor incluídos na seção outputVariables da solicitação da API PutJobSuccessResult.

Para obter mais informações sobre variáveis no CodePipeline, consulteVariables.

Exemplo de configuração da ação

YAML
Name: Lambda Actions: - Name: Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' RunOrder: 1 Configuration: FunctionName: myLambdaFunction UserParameters: 'http://192.0.2.4' OutputArtifacts: [] InputArtifacts: [] Region: us-west-2
JSON
{ "Name": "Lambda", "Actions": [ { "Name": "Lambda", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Provider": "Lambda", "Version": "1" }, "RunOrder": 1, "Configuration": { "FunctionName": "myLambdaFunction", "UserParameters": "http://192.0.2.4" }, "OutputArtifacts": [], "InputArtifacts": [], "Region": "us-west-2" } ] },

Exemplo de evento JSON

A ação do Lambda envia um evento JSON que contém o ID do trabalho, a configuração da ação do pipeline, os locais dos artefatos de entrada e saída e todas as informações de criptografia dos artefatos. O operador do trabalho acessa esses detalhes para concluir a ação do Lambda. Para obter mais informações, consulte detalhes do trabalho. O comando a seguir é um exemplo de evento.

{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "MyLambdaFunction", "UserParameters": "input_parameter" } }, "inputArtifacts": [ { "location": { "s3Location": { "bucketName": "bucket_name", "objectKey": "filename" }, "type": "S3" }, "revision": null, "name": "ArtifactName" } ], "outputArtifacts": [], "artifactCredentials": { "secretAccessKey": "secret_key", "sessionToken": "session_token", "accessKeyId": "access_key_ID" }, "continuationToken": "token_ID", "encryptionKey": { "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "type": "KMS" } } } }

O evento JSON fornece os seguintes detalhes do trabalho para a ação do Lambda no CodePipeline:

  • id: o ID exclusivo do trabalho gerado pelo sistema.

  • accountId: OAWSID da conta da associado ao trabalho.

  • data: outras informações necessárias para que um operador de trabalho conclua o trabalho.

    • actionConfiguration: os parâmetros de ação para a ação Lambda. Para obter definições, consulte Parâmetros de configuração .

    • inputArtifacts: o artefato fornecido à ação.

      • location: o local de armazenamento do artefato.

        • s3Location: as informações do local do artefato de entrada para a ação.

          • bucketName: o nome do armazenamento de artefatos do pipeline para a ação (por exemplo, um bucket do Amazon S3 chamado codepipeline-us-east-2-1234567890).

          • objectKey: o nome do aplicativo (por exemplo, CodePipelineDemoApplication.zip).

        • type: o tipo de artefato no local. Atualmente, S3 é o único tipo de artefato válido.

      • revision: o ID de revisão do artefato. Dependendo do tipo de objeto, pode ser um ID de confirmação (GitHub) ou um ID de revisão (Amazon Simple Storage Service). Para obter mais informações, consulte ArtifactRevision.

      • name: o nome do artefato a ser trabalhado, como MyApp.

    • outputArtifacts: a saída da ação.

      • location: o local de armazenamento do artefato.

        • s3Location: as informações do local do artefato de saída para a ação.

          • bucketName: o nome do armazenamento de artefatos do pipeline para a ação (por exemplo, um bucket do Amazon S3 chamado codepipeline-us-east-2-1234567890).

          • objectKey: o nome do aplicativo (por exemplo, CodePipelineDemoApplication.zip).

        • type: o tipo de artefato no local. Atualmente, S3 é o único tipo de artefato válido.

      • revision: o ID de revisão do artefato. Dependendo do tipo de objeto, pode ser um ID de confirmação (GitHub) ou um ID de revisão (Amazon Simple Storage Service). Para obter mais informações, consulte ArtifactRevision.

      • name: o nome da saída de um artefato, como MyApp.

    • artifactCredentials: OAWSCredenciais de sessão usadas para acessar artefatos de entrada e saída no bucket do Amazon S3. Essas credenciais são credenciais temporárias emitidas pelo AWS Security Token Service (AWS STS).

      • secretAccessKey: a chave de acesso secreta da sessão.

      • sessionToken: o token da sessão.

      • accessKeyId: a chave de acesso secreta da sessão.

    • continuationToken: um token gerado pela ação. Ações futuras usarão esse token para identificar a instância em execução da ação. Quando a ação for concluída, nenhum token de continuação deverá ser fornecido.

    • encryptionKey: a chave de criptografia usada para criptografar os dados no armazenamento de artefatos, como uma chave do AWS KMS. Se isso não for definido, a chave padrão do Amazon Simple Storage Service será usada.

      • id: o ID usado para identificar a chave. Para uma chave do AWS KMS, você pode usar o ID da chave, o ARN da chave ou o ARN do alias.

      • type: o tipo de chave de criptografia, como uma chave do AWS KMS.

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