Creare una funzione attivata da un webhook

Completato

Si è deciso di usare Funzioni di Azure per monitorare il wiki di GitHub aziendale per gli aggiornamenti. Ogni volta che il wiki viene aggiornato, si vuole poter attivare una funzione in grado di elaborare i dettagli dell'aggiornamento, come la data dell'aggiornamento, il nome del collaboratore e così via. Il primo passaggio consiste nel creare un'app per le funzioni di Azure contenente una funzione attivata da un webhook.

In questa unità si scopriranno i vantaggi dell'uso dei webhook e come attivare una funzione di Azure tramite i webhook.

Che cos'è un webhook?

I webhook sono callback HTTP definiti dall'utente. Sono attivati da alcuni eventi, come il push del codice in un repository o l'aggiornamento di una pagina Wiki. Quando si verifica l'evento, il sito di origine invia una richiesta HTTP all'URL configurato per il webhook. Con Funzioni di Azure, è possibile definire la logica in una funzione che viene eseguita quando viene ricevuto un messaggio webhook.

Un uso comune dei webhook in un ambiente DevOps è quello di notificare a una funzione di Azure che il codice o la configurazione di un'applicazione è stata modificata in GitHub. Il payload del messaggio inviato attraverso il webhook contiene i dettagli dell'evento. È possibile usare il webhook con una funzione per eseguire un'attività come la distribuzione della versione aggiornata dell'applicazione.

Che cos'è Funzioni di Azure?

Funzioni di Azure è un servizio di calcolo serverless. Consente di eseguire codice senza dover effettuare il provisioning o la gestione di un'infrastruttura in modo esplicito. È possibile usare Funzioni di Azure per eseguire script o codice in risposta a diversi eventi.

Un trigger consente l'esecuzione di una funzione. Un trigger definisce la modalità di chiamata di una funzione. Una funzione deve avere esattamente un trigger. Ai trigger sono associati dati, che spesso vengono forniti come payload della funzione.

Un binding viene usato per connettere una risorsa a una funzione. È possibile definire binding di input e binding di output. I dati di un binding vengono forniti alla funzione come parametri. Ad esempio, è possibile connettere un database al codice di Funzioni di Azure usando un binding. A questo punto non è necessario collegare il database alla funzione con un codice di connessione. I binding sono facoltativi e una funzione potrebbe avere uno o più binding di input e/o di output.