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 passado para uma função de invocação do Lambda, consulte Exemplo 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 é CodePipeline enviado para o Lambda, pois isso pode fazer com que as credenciais do usuário sejam registradas no Logs. CloudWatch A CodePipeline função usa um evento JSON para passar credenciais temporárias para o Lambda no campo. artifactCredentials 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 do 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 do 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 do Lambda.

Variáveis de saída

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

Para obter mais informações sobre variáveis em CodePipeline, consulteVariáveis.

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 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 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 Lambda em: CodePipeline

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

  • accountId: a ID da AWS conta associada 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 codepipeline-us-east chamado -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, isso 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 codepipeline-us-east chamado -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, isso 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: as credenciais da AWS 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 AWS KMS chave. 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.