Invocando o Lambda com eventos de outros serviços da AWS
Alguns Serviços da AWS podem invocar diretamente as funções do Lambda usando gatilhos. Esses serviços enviam eventos para o Lambda, e a função é invocada imediatamente quando o evento especificado ocorre. Os acionadores são adequados para eventos discretos e processamento em tempo real. Quando você cria um acionador usando o console do Lambda, o console interage com o serviço da AWS correspondente para configurar a notificação de eventos nesse serviço. Na verdade, o acionador é armazenado e gerenciado pelo serviço que gera os eventos, não pelo Lambda.
Os eventos são dados estruturados em formato JSON. A estrutura JSON varia dependendo do serviço que a gera e do tipo de evento, mas todos eles contêm os dados que a função precisa para processar o evento.
Uma função pode ter vários gatilhos. Cada acionador atua como um cliente ao invocar a função de forma independente, e cada evento que o Lambda transmite para a função tem dados de somente um acionador. O Lambda converte o documento do evento em um objeto e o transmite ao manipulador da função.
Dependendo do serviço, a invocação conduzida por eventos pode ser síncrona ou assíncrona.
-
Para a invocação síncrona, o serviço que gera o evento aguarda a resposta da sua função. Esse serviço define os dados que a função precisa retornar na resposta. O serviço controla a estratégia de erro, como se deve tentar novamente em erros.
-
Para a invocação assíncrona, o Lambda coloca o evento em filas antes de transmiti-lo para a função. Quando o Lambda coloca o evento em fila, ele envia imediatamente uma resposta bem-sucedida para o serviço que gerou o evento. Depois que a função processa o evento, o Lambda não retorna uma resposta ao serviço de geração de eventos.
Criar um acionador
A maneira mais fácil de criar um acionador é usar o console do Lambda. Quando você cria um acionador usando o console, o Lambda adiciona automaticamente as permissões necessárias à política baseada em recursos da função.
Para criar um acionador usando o console do Lambda
-
Abra a página Funções
do console do Lambda. -
Selecione a função para a qual deseja criar um acionador.
-
No painel Visão geral da função, escolha Adicionar gatilho.
-
Selecione o serviço da AWS no qual deseja invocar a função.
-
Preencha as opções no painel Configuração de acionador e escolha Adicionar. Dependendo do AWS service (Serviço da AWS) que você escolher para invocar a função, as opções de configuração do acionador serão diferentes.
Serviços que podem invocar funções do Lambda
A tabela a seguir lista os serviços que podem invocar funções do Lambda.
Serviço | Método de invocação |
---|---|
Conduzido por eventos; invocação síncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação síncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação síncrona |
|
Integração especial |
|
Conduzido por eventos; invocação síncrona |
|
Acionado por evento; invocação assíncrona (barramentos de eventos), invocação síncrona ou assíncrona (canais e agendas) |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação síncrona |
|
Conduzido por eventos; invocação síncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação assíncrona |
|
Conduzido por eventos; invocação síncrona |
|
Integração especial |
|
Invocação síncrona ou assíncrona, acionada por evento |
|
Conduzido por eventos; invocação síncrona |
|
Integração especial |