Ricezione di eventi SaaS dalla AWS Lambda funzione URLs in Amazon EventBridge - Amazon EventBridge

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricezione di eventi SaaS dalla AWS Lambda funzione URLs in Amazon EventBridge

Nota

Affinché l'Inbound Webhook sia accessibile ai nostri partner, stiamo creando un Open Lambda nel tuo AWS account che è protetto a livello di applicazione Lambda verificando la firma di autenticazione inviata dal partner terzo. Esamina questa configurazione con il tuo team di sicurezza. Per ulteriori informazioni, consulta Modello di sicurezza e autenticazione per la funzione URLs Lambda.

Il tuo bus di EventBridge eventi Amazon può utilizzare una AWS Lambda funzione URL creata da un AWS CloudFormation modello per ricevere eventi dai provider SaaS supportati. Con functionURLs, i dati dell'evento vengono inviati a una funzione Lambda. La funzione converte quindi questi dati in un evento che può essere acquisito EventBridge e inviato a un bus di eventi per l'elaborazione. Una volta che l'evento è in un router di eventi, è possibile utilizzare le regole per filtrare gli eventi, applicare eventuali trasformazioni di input configurate e quindi instradarlo alla destinazione corretta.

Nota

La creazione della funzione Lambda URLs aumenterà i costi mensili. Per ulteriori informazioni, consulta Prezzi di AWS Lambda.

Per configurare una connessione EventBridge, devi prima selezionare il provider SaaS con cui desideri configurare una connessione. Quindi, fornisci un segreto di firma che hai creato con quel provider e seleziona il bus degli EventBridge eventi a cui inviare gli eventi. Infine, usi un AWS CloudFormation modello e crei le risorse necessarie per completare la connessione.

I seguenti provider SaaS sono attualmente disponibili per l'uso con la funzione EventBridge Lambda: URLs

  • GitHub

  • Twilio

Fase 1: Creare lo stack AWS CloudFormation

Innanzitutto, usa la EventBridge console Amazon per creare uno CloudFormation stack:

  1. Apri la EventBridge console Amazon all'indirizzo https://console.aws.amazon.com/events/.

  2. Nel riquadro di navigazione scegli Avviamenti rapidi.

  3. In Webhook in entrata che utilizzano Lambda fURLs, scegli Inizia.

  4. In GitHub, scegli Configura.

  5. In Passaggio 1: selezionare un router di eventi, seleziona un router di eventi dall'elenco a discesa. Questo bus di eventi riceve i dati dalla funzione Lambda URL fornita a. GitHub Puoi anche creare un router di eventi selezionando Nuovo bus di eventi.

  6. Nel Passaggio 2: Configurazione tramite CloudFormation, scegli Nuovo GitHub webhook.

  7. Seleziona Riconosco che il webhook in entrata che creo sarà accessibile pubblicamente. e scegli Conferma.

  8. Immettere un nome per lo stack.

  9. In Parametri, verifica che sia elencato il router di eventi corretto, quindi specifica un token sicuro per GitHubWebhookSecret. Per ulteriori informazioni sulla creazione di un token sicuro, consulta Setting your secret token nella documentazione GitHub.

  10. In Funzionalità e trasformazioni, seleziona le seguenti opzioni:

    • Riconosco che ciò AWS CloudFormation potrebbe creare IAM risorse.

    • Riconosco che AWS CloudFormation potrebbe creare IAM risorse con nomi personalizzati.

    • Riconosco che AWS CloudFormation potrebbe richiedere la seguente funzionalità: CAPABILITY_AUTO_EXPAND

  11. Seleziona Crea stack.

Passaggio 2: creare un webhook GitHub

A questo punto, devi creare il webhook in GitHub. Per completare questo passaggio sono necessari sia il token sicuro URL che la funzione Lambda creata nel passaggio 2. Per ulteriori informazioni, consulta Creating webhooks nella documentazione GitHub.

Configurazione di una connessione a Twilio

Passaggio 1: trovare il token di autenticazione Twilio

Per configurare una connessione tra Twilio e EventBridge, configura innanzitutto la connessione Twilio con il token di autenticazione, o segreto, per il tuo Twilio account. Per ulteriori informazioni, consulta Auth Tokens e How To Change Them nella documentazione Twilio.

Passaggio 2: crea lo stack AWS CloudFormation

  1. Apri la EventBridge console Amazon all'indirizzo https://console.aws.amazon.com/events/.

  2. Nel riquadro di navigazione, scegli Avviamenti rapidi.

  3. In Webhook in entrata che utilizzano Lambda fURLs, scegli Inizia.

  4. In Twilio, scegli Configura.

  5. In Passaggio 1: selezionare un router di eventi, seleziona un router di eventi dall'elenco a discesa. Questo bus di eventi riceve i dati dalla funzione Lambda URL fornita a. Twilio Puoi anche creare un router di eventi selezionando Nuovo bus di eventi.

  6. Nel Passaggio 2: Configurazione tramite CloudFormation, scegli Nuovo Twilio webhook.

  7. Seleziona Riconosco che il webhook in entrata che creo sarà accessibile pubblicamente. e scegli Conferma.

  8. Immettere un nome per lo stack.

  9. In Parametri, verifica che sia elencato il router di eventi corretto, quindi immetti TwilioWebhookSecret creato in Passaggio 1.

  10. In Funzionalità e trasformazioni, seleziona le seguenti opzioni:

    • Riconosco che ciò AWS CloudFormation potrebbe creare IAM risorse.

    • Riconosco che AWS CloudFormation potrebbe creare IAM risorse con nomi personalizzati.

    • Riconosco che AWS CloudFormation potrebbe richiedere la seguente funzionalità: CAPABILITY _ AUTO _ EXPAND

  11. Seleziona Crea stack.

Passaggio 3: creare un webhook Twilio

Dopo aver impostato la funzione LambdaURL, devi darla a Twilio in modo che i dati degli eventi possano essere inviati. Per ulteriori informazioni, consulta Configure your public URL with Twilio nella Twilio documentazione.

Aggiornamento del segreto o del token di autenticazione del webhook

Aggiornamento del segreto GitHub

Nota

GitHub non supporta due segreti nello stesso momento. È possibile che si verifichino tempi di inattività delle risorse quando il GitHub segreto e il segreto nello AWS CloudFormation stack non sono sincronizzati. GitHubi messaggi inviati mentre i segreti non sono sincronizzati falliranno a causa di firme errate. Attendi che i CloudFormation segreti GitHub e i segreti siano sincronizzati, quindi riprova.

  1. Crea un nuovo segreto GitHub. Per ulteriori informazioni, consulta Encryptes secrets nella documentazione GitHub.

  2. Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformation.

  3. Scegli Stack nel riquadro di navigazione.

  4. Scegli lo stack per il webhook che include il segreto da aggiornare.

  5. Scegli Aggiorna.

  6. Assicurati che l'opzione Utilizza modello corrente sia selezionata e scegli Successivo.

  7. In GitHubWebhookSecret, deseleziona Usa il valore esistente, inserisci il nuovo GitHub segreto che hai creato nel passaggio 1 e scegli Avanti.

  8. Scegli Next (Successivo).

  9. Scegli Aggiorna stack.

La propagazione del segreto può richiedere fino a un'ora. Per ridurre questo periodo di inattività, puoi aggiornare il contesto di esecuzione Lambda.

Aggiornamento del segreto Twilio

Nota

Twilio non supporta due segreti nello stesso momento. È possibile che si verifichino tempi di inattività delle risorse quando il Twilio segreto e il segreto nello AWS CloudFormation stack non sono sincronizzati. Twilioi messaggi inviati mentre i segreti non sono sincronizzati falliranno a causa di firme errate. Attendi che CloudFormation i segreti Twilio e i segreti siano sincronizzati, quindi riprova.

  1. Crea un nuovo segreto Twilio. Per ulteriori informazioni, consulta Auth Tokens e How To Change Them nella documentazione Twilio.

  2. Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformation.

  3. Scegli Stack nel riquadro di navigazione.

  4. Scegli lo stack per il webhook che include il segreto da aggiornare.

  5. Scegli Aggiorna.

  6. Assicurati che l'opzione Utilizza modello corrente sia selezionata e scegli Successivo.

  7. In TwilioWebhookSecret, deseleziona Usa il valore esistente, inserisci il nuovo Twilio segreto che hai creato nel passaggio 1 e scegli Avanti.

  8. Scegli Next (Successivo).

  9. Scegli Aggiorna stack.

La propagazione del segreto può richiedere fino a un'ora. Per ridurre questo periodo di inattività, puoi aggiornare il contesto di esecuzione Lambda.

Aggiornamento della funzione Lambda

La funzione Lambda creata dallo CloudFormation stack crea il webhook di base. Se desideri personalizzare la funzione Lambda per un caso d'uso specifico, come la registrazione personalizzata, usa la console per accedere alla funzione e poi usa la CloudFormation console Lambda per aggiornare il codice della funzione Lambda.

Aggiornamento della funzione Lambda
  1. Apri la console in AWS CloudFormation /cloudformation. https://console.aws.amazon.com

  2. Scegli Stack nel riquadro di navigazione.

  3. Scegli lo stack del webhook che include la funzione Lambda da aggiornare.

  4. Scegli la scheda Risorse.

  5. Per aprire la funzione Lambda nella console Lambda, in ID fisico, scegli l'ID della funzione Lambda.

Ora che hai effettuato l'accesso alla funzione Lambda, utilizza la console Lambda per aggiornare il codice della funzione.

Aggiornamento della funzione Lambda
  1. In Azioni, scegli Esporta funzione.

  2. Scegli Scarica pacchetto di distribuzione e salva il file nel tuo computer.

  3. Decomprimi il file .zip del pacchetto di implementazione, aggiorna il file app.py e comprimi il pacchetto di implementazione aggiornato, assicurandoti che siano inclusi tutti i file nel file .zip originale.

  4. Nella console Lambda, scegli la scheda Codice.

  5. In Code source (Origine codice), scegli Upload from (Carica da).

  6. Scegli .zip file, quindi scegli Upload (Carica).

    1. Nel selettore di file, seleziona il file aggiornato, scegli Apri, quindi scegli Salva.

  7. In Azioni, scegli Pubblica nuova versione.

Tipi di eventi disponibili

I seguenti tipi di eventi sono attualmente supportati dai CloudFormation bus degli eventi:

Quote, codici di errore e nuovi tentativi di distribuzione

Quote

Il numero di richieste in entrata al webhook è limitato dai servizi sottostanti. AWS La tabella seguente include le quote pertinenti.

Servizio Quota

AWS Lambda

Impostazione predefinita: 10 esecuzioni simultanee

Per ulteriori informazioni sulle quote, inclusa la richiesta di aumento delle stesse, consulta Quote di Lambda.

AWS Secrets Manager

Valore predefinito: 5.000 richieste al secondo

Per ulteriori informazioni sulle quote, inclusa la richiesta di aumento delle stesse, consulta Quote di AWS Secrets Manager.

Nota

Il numero di richieste al secondo viene ridotto al minimo utilizzando il client di caching Python di AWS Secrets Manager.

Amazon EventBridge

Dimensione massima di 256 KB di ingresso per PutEvents le azioni.

EventBridge applica quote tariffarie basate sulla regione. Per ulteriori informazioni, consulta EventBridge quote.

Codici di errore

Ogni AWS servizio restituisce codici di errore specifici quando si verificano errori. La tabella seguente include i codici di errore pertinenti.

Servizio Codice di errore Descrizione

AWS Lambda

429 «» TooManyRequestsExption

La quota di esecuzioni simultanee è stata superata.

AWS Secrets Manager

500 "Errore interno del server"

La quota di richieste al secondo è stata superata.

Amazon EventBridge

500 "Errore interno del server"

La quota tariffaria è stata superata per la Regione.

Ridistribuzione degli eventi

In caso di errori, puoi riprovare a distribuire gli eventi interessati. Ogni provider SaaS ha procedure di ripetizione differenti.

GitHub

Usa i GitHub webhook API per verificare lo stato di consegna di ogni chiamata tramite webhook e reinviare l'evento, se necessario. Per ulteriori informazioni, consulta la seguente documentazione GitHub:

Twilio

Gli utenti Twilio possono personalizzare le opzioni di ripetizione degli eventi utilizzando sostituzioni di connessioni. Per ulteriori informazioni, consulta Webhook (HTTPcallback): Connection Overrides nella documentazione. Twilio