

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
<a name="eb-saas-furls"></a>

**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](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html#urls-auth-none).

Il tuo [bus di EventBridge eventi](eb-event-bus.md) Amazon può utilizzare un [URL di AWS Lambda funzione](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) creato da un CloudFormation modello per ricevere [eventi](eb-events.md) dai provider SaaS supportati. Con function URLs, 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, consultare [Prezzi di AWS Lambda](https://aws.amazon.com/lambda/pricing).

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

**Topics**
+ [Fase 1: Creare lo stack CloudFormation](#create-gh-cfn-stack)
+ [Passaggio 2: creare un webhook GitHub](#create-gh-webhook)
+ [Configurazione di una connessione a Twilio](#furls-connection-twilio)
+ [Aggiornamento del segreto o del token di autenticazione del webhook](#furls-update-secret)
+ [Aggiornamento della funzione Lambda](#furls-update-function)
+ [Tipi di eventi disponibili](#furls-event-types)
+ [Quote, codici di errore e nuovi tentativi di distribuzione](#furls-quotas-errors)

## Fase 1: Creare lo stack CloudFormation
<a name="create-gh-cfn-stack"></a>

 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/](https://console.aws.amazon.com/events/).

1. Nel riquadro di navigazione scegli **Avviamenti rapidi**.

1. **In **Webhook in entrata che utilizzano Lambda f URLs**, scegli Inizia.**

1. In **GitHub**, scegli **Configura**.

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

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

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

1. Immettere un nome per lo stack.

1. 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](https://docs.github.com/en/developers/webhooks-and-events/webhooks/securing-your-webhooks#setting-your-secret-token) nella documentazione GitHub.

1. In **Funzionalità e trasformazioni**, seleziona le seguenti opzioni:
   + **Riconosco che ciò CloudFormation potrebbe creare risorse IAM.**
   + **Riconosco che CloudFormation potrebbe creare risorse IAM con nomi personalizzati.**
   + **Riconosco che CloudFormation potrebbe richiedere la seguente funzionalità: `CAPABILITY_AUTO_EXPAND`**

1. Seleziona **Crea stack**.

## Passaggio 2: creare un webhook GitHub
<a name="create-gh-webhook"></a>

A questo punto, devi creare il webhook in GitHub. Per completare questo passaggio sono necessari sia il token sicuro che l'URL della funzione Lambda creato nel passaggio 2. Per ulteriori informazioni, consulta [Creating webhooks](https://docs.github.com/en/developers/webhooks-and-events/webhooks/creating-webhooks) nella documentazione GitHub.

## Configurazione di una connessione a Twilio
<a name="furls-connection-twilio"></a>

### Passaggio 1: trovare il token di autenticazione Twilio
<a name="create-twilio-secret"></a>

Per configurare una connessione tra Twilio e EventBridge, configura prima 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](https://support.twilio.com/hc/en-us/articles/223136027-Auth-Tokens-and-How-to-Change-Them) nella documentazione Twilio.

### Passaggio 2: crea lo stack CloudFormation
<a name="create-twilio-cfn-stack"></a>

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

1. Nel riquadro di navigazione, scegli **Avviamenti rapidi**.

1. **In **Webhook in entrata che utilizzano Lambda f URLs**, scegli Inizia.**

1. In **Twilio**, scegli **Configura**.

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

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

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

1. Immettere un nome per lo stack.

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

1. In **Funzionalità e trasformazioni**, seleziona le seguenti opzioni:
   + **Riconosco che ciò CloudFormation potrebbe creare risorse IAM.**
   + **Riconosco che CloudFormation potrebbe creare risorse IAM con nomi personalizzati.**
   + **Riconosco che CloudFormation potrebbe richiedere la seguente funzionalità: CAPABILITY\$1AUTO\$1EXPAND**

1. Seleziona **Crea stack**.

### Passaggio 3: creare un webhook Twilio
<a name="create-twilio-webhook"></a>

Dopo aver impostato l'URL della funzione Lambda, devi fornirlo a Twilio in modo che i dati dell'evento possano essere inviati. Per ulteriori informazioni, consulta [Configure your public URL with Twilio](https://www.twilio.com/docs/usage/webhooks/getting-started-twilio-webhooks#configure-your-public-url-with-twilio) nella documentazione Twilio.

## Aggiornamento del segreto o del token di autenticazione del webhook
<a name="furls-update-secret"></a>

### Aggiornamento del segreto GitHub
<a name="update-gh-secret"></a>

**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 stack non sono sincronizzati. CloudFormation 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](https://docs.github.com/en/actions/security-guides/encrypted-secrets) nella documentazione GitHub.

1. Apri la CloudFormation console in [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Stack** nel riquadro di navigazione.

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

1. Scegliere **Aggiorna**.

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

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

1. Scegli **Next (Successivo)**.

1. 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
<a name="update-twilio-secret"></a>

**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 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](https://support.twilio.com/hc/en-us/articles/223136027-Auth-Tokens-and-How-to-Change-Them) nella documentazione Twilio.

1. Apri la CloudFormation console in [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Stack** nel riquadro di navigazione.

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

1. Scegliere **Aggiorna**.

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

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

1. Scegli **Next (Successivo)**.

1. 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
<a name="furls-update-function"></a>

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 CloudFormation /cloudformation. https://console.aws.amazon.com](https://console.aws.amazon.com/cloudformation/)

1. Scegli **Stack** nel riquadro di navigazione.

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

1. Scegli la scheda **Risorse**.

1. 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**.

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

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

1. Nella console Lambda, scegli la scheda **Codice**.

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

1. Scegli **.zip file**, quindi scegli **Upload (Carica)**. 

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

1. In **Azioni**, scegli **Pubblica nuova versione**.

## Tipi di eventi disponibili
<a name="furls-event-types"></a>

I seguenti tipi di eventi sono attualmente supportati dai CloudFormation bus degli eventi:
+ **GitHub**— [Tutti i tipi di eventi](https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads) sono supportati.
+ **Twilio**: sono supportati [webhook post-evento](https://www.twilio.com/docs/chat/webhook-events).

## Quote, codici di errore e nuovi tentativi di distribuzione
<a name="furls-quotas-errors"></a>

### Quote
<a name="furls-quotas"></a>

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](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).  | 
|  Gestione dei segreti AWS  |  Valore predefinito: 5.000 richieste al secondo Per ulteriori informazioni sulle quote, inclusa la richiesta di aumento delle stesse, consulta [Quote di Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_limits.html). Il numero di richieste al secondo viene ridotto al minimo utilizzando il [client di caching Python di Gestione dei segreti AWS](https://github.com/aws/aws-secretsmanager-caching-python#cache-configuration).  | 
|  Amazon EventBridge  |  Dimensione massima di 1 MB di immissione per PutEvents le azioni.  EventBridge applica quote tariffarie basate sulla regione. Per ulteriori informazioni, consulta [EventBridge quote del bus di eventi](eb-quota.md#eb-limits).  | 

### Codici di errore
<a name="furls-errors"></a>

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 | Description | 
| --- | --- | --- | 
|  AWS Lambda  |  429 «» TooManyRequestsExption  |  La quota di esecuzioni simultanee è stata superata.  | 
|  Gestione dei segreti AWS  |  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
<a name="furls-redelivery"></a>

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

#### GitHub
<a name="furls-redelivery-github"></a>

Utilizza l'API webhooks GitHub per verificare lo stato di distribuzione di ogni chiamata webhook e ridistribuire l'evento, se necessario. Per ulteriori informazioni, consulta la seguente documentazione GitHub:
+ **Organizzazione**: [Redeliver a delivery for an organization webhook](https://docs.github.com/en/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook)
+ **Repository**: [Redeliver a delivery for a repository webhook](https://docs.github.com/en/rest/webhooks/repo-deliveries#redeliver-a-delivery-for-a-repository-webhook)
+ **App**: [Redeliver a delivery for an app webhook](https://docs.github.com/en/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook)

#### Twilio
<a name="furls-redelivery-twilio"></a>

Gli utenti Twilio possono personalizzare le opzioni di ripetizione degli eventi utilizzando sostituzioni di connessioni. Per ulteriori informazioni, consulta [Webhooks (HTTP callbacks): Connection Overrides ](https://www.twilio.com/docs/usage/webhooks/webhooks-connection-overrides) nella documentazione Twilio.