Invocar uma função do Lambda de modo assíncrono - AWS Lambda

Invocar uma função do Lambda de modo assíncrono

Vários Serviços da AWS, como o Amazon Simple Storage Service (Amazon S3) e o Amazon Simple Notification Service (Amazon SNS), invocam funções de forma assíncrona para processar eventos. Você também pode invocar uma função do Lambda de modo assíncrono usando a AWS Command Line Interface (AWS CLI) ou um dos AWS SDKs. Ao invocar uma função de forma assíncrona, não aguarde uma resposta do código da função. Você entrega o evento para o Lambda e ele cuida do resto. Você pode configurar como o Lambda processa os erros e pode enviar registros de invocação para um recurso downstream, como o Amazon Simple Queue Service (Amazon SQS) ou o Amazon EventBridge (EventBridge), para encadear componentes da aplicação.

O diagrama a seguir mostra clientes invocando uma função do Lambda de forma assíncrona. O Lambda coloca os eventos em fila antes de enviá-los para a função.

Os clientes chamam uma função de forma assíncrona. O Lambda coloca os eventos em fila antes de enviá-los para a função

Para invocação de forma assíncrona, o Lambda coloca o evento em uma fila e retorna uma resposta bem-sucedida sem informações adicionais. Um processo separado lê os eventos na fila e os envia para sua função.

Para invocar uma função do Lambda de forma assíncrona usando a AWS Command Line Interface (AWS CLI) ou um dos AWS SDKs, defina o parâmetro InvocationType como Event. O exemplo a seguir mostra um comando AWS CLI para invocar uma função.

aws lambda invoke \ --function-name my-function \ --invocation-type Event \ --cli-binary-format raw-in-base64-out \ --payload '{ "key": "value" }' response.json

A seguinte saída deverá ser mostrada:

{
    "StatusCode": 202
}

A opção cli-binary-format será necessária se você estiver usando a AWS CLI versão 2. Para que essa seja a configuração padrão, execute aws configure set cli-binary-format raw-in-base64-out. Para obter mais informações, consulte A AWS CLI comporta opções de linha de comando globais no Guia do usuário da AWS Command Line Interface versão 2.

O arquivo de saída (response.json) não contém informações, mas continuará sendo criado quando esse comando for executado. Se o Lambda não conseguir adicionar o evento a uma fila, a mensagem de erro será exibida na saída do comando.