

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 invocar referência de ação
<a name="action-reference-Lambda"></a>

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](#action-reference-Lambda-event). Como parte da implementação da função Lambda, deve haver uma chamada para a `[PutJobSuccessResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)` ou `[PutJobFailureResult API](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobFailureResult.html)`. 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](actions-invoke-lambda-function.md#actions-invoke-lambda-function-json-event-example).

## Tipo de ação
<a name="action-reference-Lambda-type"></a>
+ Categoria: `Invoke`
+ Proprietário: `AWS`
+ Fornecedor: `Lambda`
+ Versão: `1`

## Parâmetros de configuração
<a name="action-reference-Lambda-config"></a>

**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)
<a name="action-reference-Lambda-input"></a>
+ **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
<a name="action-reference-Lambda-output"></a>
+ **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
<a name="action-reference-Lambda-variables"></a>

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](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html).

Para obter mais informações sobre variáveis em CodePipeline, consulte[Referência de variáveis](reference-variables.md).

## Exemplo de configuração da ação
<a name="action-reference-Lambda-example"></a>

------
#### [ 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 name="action-reference-Lambda-event"></a>

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](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_JobDetails.html). 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](#action-reference-Lambda-config).
  + `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](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html).
    + `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](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ArtifactRevision.html).
    + `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 .

## Consulte também
<a name="action-reference-Lambda-links"></a>

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.
+ [AWS CloudFormation Guia do usuário](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/) [— Para obter mais informações sobre ações e CloudFormation artefatos do Lambda para pipelines, consulte [Usando funções de substituição de parâmetros com CodePipeline pipelines](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html), [automatizando](https://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html) a implantação de aplicativos baseados em Lambda e artefatos.AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html)
+ [Invoque uma AWS Lambda função em um pipeline em CodePipeline](actions-invoke-lambda-function.md): este procedimento fornece um exemplo de função do Lambda e mostra como usar o console para criar um pipeline com uma ação de invocação Lambda.