AWS Lambda
Guia do desenvolvedor

Usar o AWS Lambda com outros serviços

O AWS Lambda se integra a outros serviços da AWS para invocar funções. Você pode configurar gatilhos para invocar uma função em resposta a eventos de ciclo de vida de recursos, responder a solicitações HTTP de entrada, consumir eventos de uma fila ou serem executados em uma programação.

Cada serviço que se integra ao Lambda envia dados para sua função no JSON como um evento. A estrutura do documento do evento é diferente para cada tipo de evento e contém dados sobre o recurso ou a solicitação que acionou a função. Os tempos de execução do Lambda convertem o evento em um objeto e o transmitem à sua função.

O exemplo a seguir mostra um evento de teste de um Balanceador de carga de aplicações que representa uma solicitação GET para /lambda?query=1234ABCD.

exemplo Evento de um Balanceador de carga de aplicações

{ "requestContext": { "elb": { "targetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/lambda-279XGJDqGZ5rsrHC2Fjr/49e9d65c45c6791a" } }, "httpMethod": "GET", "path": "/lambda", "queryStringParameters": { "query": "1234ABCD" }, "headers": { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "accept-encoding": "gzip", "accept-language": "en-US,en;q=0.9", "connection": "keep-alive", "host": "lambda-alb-123578498.us-east-2.elb.amazonaws.com", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36", "x-amzn-trace-id": "Root=1-5c536348-3d683b8b04734faae651f476", "x-forwarded-for": "72.12.164.125", "x-forwarded-port": "80", "x-forwarded-proto": "http", "x-imforwards": "20" }, "body": "", "isBase64Encoded": false }

nota

O tempo de execução do Lambda converte o documento do evento em um objeto e o transmite ao manipulador da função. Para linguagens compiladas, o Lambda fornece definições para tipos de evento em uma biblioteca. Consulte os tópicos a seguir para obter mais informações.

Para serviços que geram uma fila ou um stream de dados, você cria um mapeamento da fonte do evento no Lambda e concede ao Lambda permissão para acessar o outro serviço na função de execução. O Lambda lê dados de outro serviço, cria um evento e invoca a função.

Serviços dos quais o Lambda lê eventos

Outros serviços invocam a função diretamente. Você concede permissão ao outro serviço na política baseada em recursos da função e configura o outro serviço para gerar eventos e invocar a função. Dependendo do serviço, a invocação pode ser síncrona ou assíncrona. Para a invocação síncrona, o outro serviço aguarda a resposta da sua função e pode tentar novamente quando houver erros.

Para a invocação assíncrona, o Lambda coloca o evento em filas antes de transmiti-lo para a função. O outro serviço obtém uma resposta de êxito assim que o evento é colocado em fila e não tem conhecimento do que acontece posteriormente. Se ocorrer um erro, o Lambda processará novas tentativas, e poderá enviar eventos com falha a uma dead letter queue que você configurar.

Consulte os tópicos deste capítulo para obter mais detalhes sobre cada serviço e eventos de exemplo que você pode usar para testar a função.