Esercizio - Attivare una funzione di Azure con un evento GitHub
In questo esercizio si aggiornerà la funzione in modo da consentire l'analisi delle informazioni provenienti dal payload del webhook GitHub e la visualizzazione dei risultati.
Aggiornare la funzione per analizzare il payload del webhook
Nel portale di Azure passare all'app per le funzioni creata in precedenza.
Nel riquadro App per le funzioni, nel riquadro del menu a sinistra, in Funzioni selezionare Funzioni. Verrà visualizzato il riquadro Funzioni relativo all'app per le funzioni.
Selezionare l'elemento HttpTrigger1 creato. Viene visualizzato il riquadro HtttpTrigger1 relativo alla funzione.
Nel riquadro del menu a sinistra, in Developer selezionare Codice + Test. Viene visualizzato il riquadro Codice e test relativo alla funzione.
Nel percorso sopra il codice, selezionare index.js nell'elenco a discesa. Viene visualizzato lo script JavaScript per il trigger.
Aggiornare il codice sostituendo le ultime tre righe di codice nel corpo della funzione con il codice seguente.
if (req.body.pages[0].title){ context.res = { body: "Page is " + req.body.pages[0].title + ", Action is " + req.body.pages[0].action + ", Event Type is " + req.headers['x-github-event'] }; } else { context.res = { status: 400, body: ("Invalid payload for Wiki event") }; }
Questo codice recupera il tipo di evento dall'intestazione della richiesta e i campi del titolo e dell'azione dal corpo del messaggio. Queste informazioni indicano che la pagina è cambiata e se è stata modificata o appena creata. Il codice crea quindi una risposta che riepiloga l'azione. Di seguito viene mostrato l'aspetto dello script JavaScript:
module.exports = async function (context, req) { context.log('JavaScript HTTP trigger function processed a request.'); const name = (req.query.name || (req.body && req.body.name)); const responseMessage = name ? "Hello, " + name + ". This HTTP triggered function executed successfully." : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."; if (req.body.pages[0].title){ context.res = { body: "Page is " + req.body.pages[0].title + ", Action is " + req.body.pages[0].action + ", Event Type is " + req.headers['x-github-event'] }; } else { context.res = { status: 400, body: ("Invalid payload for Wiki event") }; } }
Nella barra dei menu in alto selezionare Salva.
Attivare la funzione di Azure con un evento Gollum
Tornare all'account GitHub.
Selezionare il repository usato per questo modulo.
Nella barra dei menu in alto selezionare Settings (Impostazioni). Viene visualizzato il riquadro Impostazioni.
Nella barra laterale selezionare Webhooks. Viene visualizzato il riquadro Webhook.
Selezionare Edit (Modifica) per il webhook. Viene visualizzato il riquadro Webhook/Gestisci webhook.
Selezionare la scheda Recent Deliveries (Recapiti recenti).
Selezionare la voce del recapito (in alto) più recente selezionando il pulsante con i puntini di sospensione (...).
Selezionare Redeliver (Recapita nuovamente).
Nella finestra di dialogo Recapitare nuovamente il payload? visualizzata, selezionare Sì, recapita nuovamente questo payload. Questa azione consente di simulare la nuova modifica della pagina Wiki.
Selezionare la voce del recapito (in alto) (redelivery) più recente selezionando il pulsante con i puntini di sospensione (...).
Selezionare la scheda Risposta. Si noterà che il webhook ha attivato la funzione, che ha quindi analizzato le informazioni e restituito una risposta simile al testo seguente:
Page is Home, Action is edited, Event Type is gollum