Recebendo eventos SaaS de uma AWS Lambda função URLs na 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á.

Recebendo eventos SaaS de uma AWS Lambda função URLs na Amazon EventBridge

nota

Para que o Inbound Webhook possa ser acessado por nossos parceiros, estamos criando um Open Lambda em sua AWS conta que é protegido no nível do aplicativo Lambda, verificando 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 a função URLs Lambda.

Seu barramento de EventBridge eventos da Amazon pode usar uma AWS Lambda função URL criada por um AWS CloudFormation modelo para receber eventos de provedores de SaaS compatíveis. Com a funçãoURLs, os dados do evento são enviados para uma função Lambda. Em seguida, a função converte esses dados em um evento que pode ser ingerido 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 da função Lambda URLs aumentará seus custos mensais. Para obter mais informações, consulte Definição de preço do AWS Lambda.

Para configurar uma conexão EventBridge, primeiro você seleciona o provedor de SaaS com o qual deseja configurar uma conexão. Em seguida, você fornece um segredo de assinatura que você criou com esse provedor e seleciona o ônibus de EventBridge eventos para o qual enviar eventos. Por fim, você usa um AWS CloudFormation modelo 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 uso da função EventBridge Lambda: URLs

  • GitHub

  • Twilio

Etapa 1: criar a AWS CloudFormation pilha

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

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

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

  3. Em Webhooks de entrada usando Lambda fURLs, escolha Começar.

  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 da função Lambda URL que você fornece para. GitHub Também é possível criar um barramento de eventos selecionando Novo barramento de eventos.

  6. Em Etapa 2: Configurar usando CloudFormation, escolha Novo GitHub webhook.

  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 reconheço que isso AWS CloudFormation pode criar IAM recursos.

    • Eu reconheço que isso AWS CloudFormation pode criar IAM recursos com nomes personalizados.

    • Eu reconheço que isso 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. Você precisará do token seguro e da função Lambda URL que você criou na etapa 2 para concluir essa 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 EventBridge, primeiro configure a conexão Twilio com o token de autenticação, ou segredo, da sua Twilio conta. Para obter mais informações, consulte Tokens de autenticação e como alterá-los na documentação do Twilio.

Etapa 2: criar a AWS CloudFormation pilha

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

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

  3. Em Webhooks de entrada usando Lambda fURLs, escolha Começar.

  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 da função Lambda URL que você fornece para. Twilio Também é possível criar um barramento de eventos selecionando Novo barramento de eventos.

  6. Em Etapa 2: Configurar usando CloudFormation, escolha Novo Twilio webhook.

  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 reconheço que isso AWS CloudFormation pode criar IAM recursos.

    • Eu reconheço que isso AWS CloudFormation pode criar IAM recursos com nomes personalizados.

    • Eu reconheço que isso 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 função LambdaURL, você precisa entregá-la ao Twilio para que os dados do evento possam ser enviados. Para obter mais informações, consulte Configurar seu público URL Twilio na Twilio documentação.

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. Você pode passar por um tempo de inatividade dos recursos enquanto o GitHub segredo e o segredo na AWS CloudFormation pilha estão fora de sincronia. GitHubas mensagens enviadas enquanto os segredos estiverem fora de sincronia falharão devido a assinaturas incorretas. GitHubEspere até que os CloudFormation segredos e 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 AWS CloudFormation console 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 GitHub segredo que você criou 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. Você pode passar por um tempo de inatividade dos recursos enquanto o Twilio segredo e o segredo na AWS CloudFormation pilha estão fora de sincronia. Twilioas mensagens enviadas enquanto os segredos estiverem fora de sincronia falharão devido a assinaturas incorretas. TwilioEspere até que os CloudFormation segredos e 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 AWS CloudFormation console 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 Twilio segredo que você criou 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 função do Lambda

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

Acesse a função do Lambda
  1. Abra o AWS CloudFormation console 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 CloudFormation barramentos de eventos:

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 subjacentes. AWS 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 PutEvents ações.

EventBridge impõe cotas tarifárias baseadas na região. Para obter mais informações, consulte EventBridge cotas.

Códigos de erro

Cada AWS serviço 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 os GitHub webhooks API 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 (HTTPcallbacks): Connection Overrides na documentação. Twilio