Übung: Auslösen einer Azure-Funktion mit einem GitHub-Ereignis

Abgeschlossen

In dieser Übung aktualisieren Sie Ihre Funktion, um Informationen aus der GitHub-Webhooknutzlast zu analysieren und die Ergebnisse anzuzeigen.

Aktualisieren Sie Ihre Funktion, um die Webhooknutzdaten zu analysieren

  1. Navigieren Sie im Azure-Portal zu der Funktions-App, die Sie zuvor erstellt haben.

  2. Wählen Sie im Bereich Funktions-App unter Funktionen die Option Funktionen aus. Der Bereich Funktionen wird für Ihre Funktions-App angezeigt.

  3. Wählen Sie die erstellte Funktion „HttpTrigger1“ aus. Der Bereich HttpTrigger1 wird für Ihre Funktion angezeigt.

  4. Klicken Sie auf der linken Seite des Menübereichs unter Developer (Entwickler) auf Programmieren und testen. Der Bereich Programmieren und testen wird für Ihre Funktion angezeigt.

  5. Wählen Sie im Pfad über dem Code index.js aus der Dropdownliste aus. Der JavaScript-Code für Ihren Trigger wird angezeigt.

  6. Aktualisieren Sie den Code, indem Sie die letzten drei Codezeilen im Funktionstext durch den folgenden Code ersetzen:

    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")
        };
    }
    

    Dieser Code ruft den Ereignistyp aus dem Anforderungsheader und den Titel und die Aktionsfelder aus dem Nachrichtentext ab. Diese Informationen geben an, ob die Seite geändert bzw. bearbeitet oder neu erstellt wurde. Der Code erstellt daraufhin eine Antwort, die die Aktion zusammenfasst. Der JavaScript-Code sollte wie folgt aussehen:

    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")
            };
        }
    }
    
  7. Klicken Sie in der oberen Menüleiste auf Speichern.

Auslösen Ihrer Azure-Funktion mit einem Gollum-Ereignis

  1. Kehren Sie zu Ihrem GitHub-Konto zurück.

  2. Wählen Sie das Repository aus, das Sie für dieses Modul verwenden.

  3. Wählen Sie in der oberen Menüleiste Einstellungen aus. Der Bereich Einstellungen wird angezeigt.

  4. Klicken Sie in der Randleiste auf die Option Webhooks. Der Bereich Webhooks wird angezeigt.

  5. Wählen Sie Bearbeiten für Ihren Webhook aus. Der Bereich Webhooks > Webhook verwalten wird angezeigt.

  6. Wählen Sie die Registerkarte Aktuelle Lieferungen aus.

  7. Wählen Sie den neuesten (obersten) Übermittlungseintrag aus, indem Sie dessen Schaltfläche mit den Auslassungspunkten (...) auswählen.

  8. Wählen Sieerneut übermitteln aus.

  9. Wählen Sie im angezeigten Dialogfeld Redeliver payload? (Nutzdaten erneut übermitteln?) die Option Yes, redeliver this payload (Ja, Nutzdaten übermitteln) aus. Dadurch wird simuliert, dass Sie Ihre Wikiseite erneut ändern.

  10. Wählen Sie den neuesten (obersten) Übermittlungseintrag (redelivery) aus, indem Sie dessen Schaltfläche mit den Auslassungspunkten (...) auswählen.

  11. Wählen Sie die Registerkarte Response (Antwort) aus. Dort sehen Sie, wie der Webhook Ihre Funktion ausgelöst hat, die dann die Informationen analysiert und in etwa folgende Antwort zurückgesendet hat:

    Page is Home, Action is edited, Event Type is gollum