Receber eventos de SaaS de URLs da função do AWS Lambda no Amazon EventBridge - Amazon EventBridge

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á.

Receber eventos de SaaS de URLs da função do AWS Lambda no Amazon EventBridge

nota

Para que o Inbound Webhook possa ser acessado por nossos parceiros, criamos um Open Lambda em sua conta da AWS protegido no nível da aplicação do Lambda ao verificar a assinatura de autenticação enviada pelo parceiro terceirizado. Revise esta configuração com sua equipe de segurança. Para obter mais informações, consulte Modelo de segurança e autenticação para URLs de função do Lambda.

Seu barramento de eventos do Amazon EventBridge pode usar um URL da função do AWS Lambda criado por um modelo do AWS CloudFormation para receber eventos de provedores de SaaS compatíveis. Com URLs da função, os dados do evento são enviados para uma função do Lambda. A função converte esses dados em um evento que pode ser ingerido pelo EventBridge e enviado para um barramento de eventos para processamento. Quando o evento estiver em um barramento de eventos, será possível usar regras para filtrar os eventos, aplicar qualquer transformação de entrada configurada e, em seguida, roteá-lo para o destino correto.

nota

A criação de URLs de função do Lambda aumentará seus custos mensais. Para obter mais informações, consulte Definição de preços do AWS Lambda.

Para configurar uma conexão com o EventBridge, primeiro selecione o provedor de SaaS com o qual deseja configurar uma conexão. Em seguida, é fornecido um segredo de assinatura criado com esse provedor e seleciona o barramento de eventos do EventBridge para o qual enviar eventos. Por fim, você usa um modelo do AWS CloudFormation e cria os recursos necessários para concluir a conexão.

Atualmente, os seguintes provedores de SaaS estão disponíveis para uso com o EventBridge usando URLs da função do Lambda:

  • GitHub

  • Twilio

Etapa 1: criar a pilha do AWS CloudFormation

Primeiro, use o console do Amazon EventBridge para criar uma pilha do CloudFormation:

  1. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  2. Do painel de navegação, escolha Quick starts.

  3. Em Webhooks de entrada usando fURLs do Lambda, escolha Conceitos básicos.

  4. Em GitHub, escolha Configurar.

  5. Em Etapa 1: selecionar um barramento de eventos, selecione um barramento de eventos na lista suspensa. Esse barramento de eventos recebe dados do URL da função do Lambda fornecida para o GitHub. Também é possível criar um barramento de eventos selecionando Novo barramento de eventos.

  6. Em Etapa 2: configurar usando o CloudFormation, escolha Novo webhook do GitHub.

  7. Selecione Eu confirmo que o Webhook de entrada que criei estará acessível ao público e escolha Confirmar.

  8. Insira um nome para a pilha.

  9. Em parâmetros, verifique se o barramento de eventos correto está listado e, em seguida, especifique um token seguro para o GitHubWebhookSecret. Para obter mais informações sobre como criar um token seguro, consulte Como configurar seu token secreto na documentação do GitHub.

  10. Em Capacidades e transformações, selecione cada uma das seguintes opções:

    • Eu confirmo que o AWS CloudFormation pode criar recursos do IAM.

    • Eu confirmo que o AWS CloudFormation pode criar recursos do IAM com nomes personalizados.

    • Eu confirmo que o AWS CloudFormation pode exigir a seguinte capacidade: CAPABILITY_AUTO_EXPAND

  11. Selecione Criar pilha.

Etapa 2: criar um webhook do GitHub

Em seguida, crie o webhook no GitHub. Será necessário o token seguro e da URL da função do Lambda criados na etapa 2 para concluir esta etapa. Para obter mais informações, consulte Como criar webhooks na documentação do GitHub.

Configure uma conexão para um Twilio:

Etapa 1: encontrar seu token de autenticação Twilio

Para configurar uma conexão entre Twilio e o EventBridge, primeiro configure a conexão Twilio com o token de autenticação, ou segredo, da sua conta da Twilio. Para obter mais informações, consulte Tokens de autenticação e como alterá-los na documentação do Twilio.

Etapa 2: criar a pilha do AWS CloudFormation

  1. Abra o console do Amazon EventBridge em https://console.aws.amazon.com/events/.

  2. No painel de navegação, escolha Quick starts.

  3. Em Webhooks de entrada usando fURLs do Lambda, escolha Conceitos básicos.

  4. Em Twilio, escolha Configurar.

  5. Em Etapa 1: selecionar um barramento de eventos, selecione um barramento de eventos na lista suspensa. Esse barramento de eventos recebe dados do URL da função do Lambda fornecida para o Twilio. Também é possível criar um barramento de eventos selecionando Novo barramento de eventos.

  6. Em Etapa 2: configurar usando o CloudFormation, escolha Novo webhook do Twilio.

  7. Selecione Eu confirmo que o Webhook de entrada que criei estará acessível ao público e escolha Confirmar.

  8. Insira um nome para a pilha.

  9. Em parâmetros, verifique se o barramento de eventos correto está listado e, em seguida, insira o TwilioWebhookSecret criado na etapa 1.

  10. Em Capacidades e transformações, selecione cada uma das seguintes opções:

    • Eu confirmo que o AWS CloudFormation pode criar recursos do IAM.

    • Eu confirmo que o AWS CloudFormation pode criar recursos do IAM com nomes personalizados.

    • Eu confirmo que o AWS CloudFormation pode exigir a seguinte capacidade: CAPABILITY_AUTO_EXPAND

  11. Selecione Criar pilha.

Etapa 3: criar um webhook do Twilio

Depois de configurar a URL da função do Lambda, é preciso fornecê-la ao Twilio para que os dados do evento possam ser enviados. Para obter mais informações, consulte Configurar seu URL público com o Twilio na documentação do Twilio.

Atualizar o segredo do webhook ou o token de autenticação

Atualizar segredo do GitHub

nota

O GitHub não é compatível com dois segredos ao mesmo tempo. É possível passar por um tempo de inatividade dos recursos enquanto o segredo do GitHub e o segredo na pilha do AWS CloudFormation estiverem fora de sincronia. As mensagens do GitHub enviadas enquanto os segredos estiverem fora de sincronia falharão devido a assinaturas incorretas. Espere até que os segredos do GitHub e do CloudFormation estejam sincronizados e tente novamente.

  1. Criar um novo segredo do GitHub. Para obter mais informações, consulte Segredos criptografados na documentação do GitHub.

  2. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  3. Do painel de navegação, escolha Pilhas.

  4. Escolha a pilha do webhook que inclui o segredo que deseja atualizar.

  5. Selecione Atualizar.

  6. Verifique se a opção Usar modelo atual está selecionada e escolha Avançar.

  7. Em GitHubWebhookSecret, desmarque Usar valor existente, insira o novo segredo do GitHub criado na etapa 1 e escolha Avançar.

  8. Escolha Próximo.

  9. Escolha Atualizar pilha.

Pode levar até uma hora para que o segredo seja propagado. Para reduzir esse tempo de inatividade, é possível atualizar o contexto de execução do Lambda.

Atualizar segredo do Twilio

nota

O Twilio não é compatível com dois segredos ao mesmo tempo. É possível passar por um tempo de inatividade dos recursos enquanto o segredo do Twilio e o segredo na pilha do AWS CloudFormation estiverem fora de sincronia. As mensagens do Twilio enviadas enquanto os segredos estiverem fora de sincronia falharão devido a assinaturas incorretas. Espere até que os segredos do Twilio e do CloudFormation estejam sincronizados e tente novamente.

  1. Criar um novo segredo do Twilio. Para obter mais informações, consulte Tokens de autenticação e como alterá-los na documentação do Twilio.

  2. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  3. Do painel de navegação, escolha Pilhas.

  4. Escolha a pilha do webhook que inclui o segredo que deseja atualizar.

  5. Selecione Atualizar.

  6. Verifique se a opção Usar modelo atual está selecionada e escolha Avançar.

  7. Em TwilioWebhookSecret, desmarque Usar valor existente, insira o novo segredo do Twilio criado na etapa 1 e escolha Próximo.

  8. Escolha Próximo.

  9. Escolha Atualizar pilha.

Pode levar até uma hora para que o segredo seja propagado. Para reduzir esse tempo de inatividade, é possível atualizar o contexto de execução do Lambda.

Atualizar função do Lambda

A função do Lambda criada pela pilha do CloudFormation cria o webhook básico. Se quiser personalizar a função do Lambda para um caso de uso específico, como registro em log personalizado, use o console do CloudFormation para acessar a função. Em seguida, use o console do Lambda para atualizar o código da função do Lambda.

Acesse a função do Lambda
  1. Abra o console do AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Do painel de navegação, escolha Pilhas.

  3. Escolha a pilha do webhook que inclui a função do Lambda que deseja atualizar.

  4. Escolha a guia Recursos.

  5. Para abrir a função do Lambda no console Lambda, em Physical ID, escolha a ID da função do Lambda.

Agora que acessou a função do Lambda, use o console do Lambda para atualizar o código da função.

Atualizar o código de função do Lambda
  1. Em Ações, escolha Exportar função.

  2. Escolha Baixar pacote de implantação e salve o arquivo no computador.

  3. Descompacte o arquivo.zip do pacote de implantação, atualize o arquivo app.py e compacte o pacote de implantação atualizado, certificando-se de que todos os arquivos no arquivo.zip original estejam incluídos.

  4. No console do Lambda, escolha a guia Código.

  5. Em Fonte de código), escolha Fazer upload de.

  6. Escolha Arquivo .zip e Fazer upload.

    1. No seletor de arquivos, selecione a nova versão da imagem e escolha Abrir e Salvar.

  7. Em Ações, escolha Publicar nova versão.

Tipos de eventos disponíveis

Atualmente, os seguintes tipos de eventos são compatíveis com os barramentos de eventos do CloudFormation:

Cotas, códigos de erro e novas tentativas de entrega

Cotas

O número de solicitações recebidas para o webhook é limitado pelos serviços da AWS subjacentes. A tabela a seguir inclui as cotas relevantes.

Serviço Quota

AWS Lambda

Padrão: 10 execuções simultâneas

Para obter mais informações sobre cotas, incluindo a solicitação de aumentos de cotas, consulte Cotas do Lambda.

AWS Secrets Manager

Padrão: cinco mil solicitações por segundo

Para obter mais informações sobre cotas, incluindo a solicitação de aumentos de cota, consulte Cotas de serviço do AWS Secrets Manager.

nota

O número de solicitações por segundo é minimizado usando o cliente de cache em Python do AWS Secrets Manager.

Amazon EventBridge

Tamanho máximo de entrada de 256 KB para ações de PutEvents.

O EventBridge impõe cotas tarifárias com base na região. Para ter mais informações, consulte Cotas do EventBridge.

Códigos de erro

Cada serviço da AWS retorna códigos de erro específicos quando ocorrem erros. A tabela a seguir inclui os códigos de erro relevantes.

Serviço Código de erro Descrição

AWS Lambda

429 "TooManyRequestsExption"

A cota de execução simultânea foi excedida.

AWS Secrets Manager

500 "Erro interno do servidor"

A cota de solicitações por segundo foi excedida.

Amazon EventBridge

500 "Erro interno do servidor"

A cota tarifária é excedida para a região.

Reentrega do evento

Quando ocorrem erros, é possível tentar novamente a entrega dos eventos afetados. Cada provedor de SaaS tem procedimentos de repetição diferentes.

GitHub

Use a API de webhooks GitHub para verificar o status de entrega de qualquer chamada de webhook e reenviar o evento, se necessário. Para obter mais informações, consulte a seguinte documentação do GitHub:

Twilio

Os usuários do Twilio podem personalizar as opções de repetição de eventos usando substituições de conexão. Para obter mais informações, consulte Webhooks (retornos de chamada HTTP): substituições de conexão na documentação do Twilio.