AWS Lambda
Guia do desenvolvedor

Mapeamento de origens de eventos do AWS Lambda

Um mapeamento da origem do evento é um recurso do AWS Lambda que lê a partir de uma origem de evento e invoca uma função do Lambda. Você pode usar os mapeamentos de origem do evento para processar itens de um stream ou fila em serviços que não invocam funções do Lambda diretamente. O Lambda fornece os mapeamentos de origem do evento para os serviços a seguir.

Serviços dos quais o Lambda lê eventos

Um mapeamento da origem do evento usa permissões na função de execução para ler e gerenciar itens na origem do evento. Permissões, estrutura do evento, configurações e comportamento de sondagem variam de acordo com a origem do evento. Para obter mais informações, consulte o tópico vinculado para o serviço que você usa como origem de evento.

Para gerenciar os mapeamentos de origem de eventos com a AWS CLI ou o AWS SDK, use as seguintes APIs.

O exemplo a seguir usa a AWS Command Line Interface para mapear uma função chamada my-function para um fluxo do DynamoDB Streams especificado pelo nome de recurso da Amazon (ARN), com um tamanho de lote de 500

$ aws lambda create-event-source-mapping --function-name my-function --batch-size 500 --starting-position LATEST \ --event-source-arn arn:aws:dynamodb:us-east-2:123456789012:table/my-table/stream/2019-06-10T19:26:16.525 { "UUID": "14e0db71-5d35-4eb5-b481-8945cf9d10c2", "BatchSize": 500, "MaximumBatchingWindowInSeconds": 0, "EventSourceArn": "arn:aws:dynamodb:us-east-2:123456789012:table/my-table/stream/2019-06-10T19:26:16.525", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "LastModified": 1560209851.963, "LastProcessingResult": "No records processed", "State": "Creating", "StateTransitionReason": "User action" }

Os mapeamentos da origem do evento leem itens de um stream ou fila em lotes e incluem vários itens no evento que sua função recebe. Você pode configurar o tamanho do lote que o mapeamento da origem do evento lê, até um máximo que varia de acordo com o serviço. O número de itens no evento poderá ser menor que o tamanho do lote se não houver itens suficientes disponíveis, ou se o lote for muito grande para enviar em um evento e deve ser dividido.

Para streams, um mapeamento da origem do evento cria um iterador para cada fragmento no stream e processa itens em cada fragmento na ordem. Você pode configurar o mapeamento da origem do evento para ler apenas novos itens que aparecem no stream ou para iniciar com os itens mais antigos. Se a função retorna um erro, o lote inteiro é reprocessado até que a função seja bem-sucedida ou os itens no lote expirem. Para garantir o processamento na ordem, o processamento do fragmento afetado é pausado até o erro ser resolvido. Os itens processados não são removidos do stream e podem ser processados por outras funções ou consumidores.

Para filas, os itens não são necessariamente processados na ordem. Lotes com falha são retornados para a fila como itens individuais e podem ser processados em um agrupamento diferente do que o lote original. Ocasionalmente, o mapeamento da origem do evento pode receber o mesmo item da fila duas vezes, mesmo que não tenha ocorrido nenhum erro de função. O Lambda exclui itens da fila depois que eles são processados com êxito.

Para obter informações sobre serviços que invocam funções do Lambda diretamente, consulte Usar o AWS Lambda com outros serviços.