Övning – Utlösa en Azure-funktion med en GitHub-händelse

Slutförd

I den här övningen ska du uppdatera din funktion för att parsa information från GitHub-webhookens nyttolast och visa resultatet.

Uppdatera funktionen för att parsa webhook-nyttolasten

  1. I Azure-portalen går du till funktionsappen som du skapade tidigare.

  2. I fönstret Funktionsapp går du till den vänstra menyfönstret och väljer Funktioner under Funktioner. Fönstret Funktioner visas för funktionsappen.

  3. Välj den HttpTrigger1 som du skapade. Fönstret HtttpTrigger1 visas för funktionen.

  4. I det vänstra menyfönstret, under Utvecklare, väljer du Kod + Test. Fönstret Kod + test för funktionen visas.

  5. I sökvägen ovanför koden går du till listrutan och väljer index.js. JavaScript för utlösaren visas.

  6. Uppdatera koden genom att ersätta de tre sista kodraderna i funktionstexten med följande kod.

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

    Koden hämtar händelsetypen från begärandehuvudet, samt rubrik och åtgärdsfält från meddelandetexten. Den här informationen visar att sidan har ändrats, samt om den har redigerats eller nyligen skapats. Koden konstruerar sedan ett svar som sammanfattar åtgärden. Så här bör JavaScript se ut:

    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. I den översta menyraden väljer du Spara.

Utlös din Azure-funktion med en Gollum-händelse

  1. Gå tillbaka till ditt GitHub-konto.

  2. Välj den lagringsplats som du använder för den här modulen.

  3. I den översta menyraden väljer du Inställningar. Fönstret Inställningar visas.

  4. I sidofältet väljer du Webhooks. Fönstret Webhooks visas.

  5. Välj Redigera för din webhook. Webhooks /Manage webhook-fönstret visas.

  6. Välj fliken Senaste leveranser .

  7. Välj den senaste (översta) leveransposten genom att välja dess ellipsknapp (...).

  8. Välj Skicka igen.

  9. I dialogrutan Skicka nyttolast? som visas väljer du Ja, skicka nyttolasten igen. Den här åtgärden simulerar att du ändrar Wiki-sida igen.

  10. Välj den senaste (översta) leveransposten (omleverans) genom att välja dess ellipsknapp (...).

  11. Välj fliken Svar . Du ser hur webhooken har utlöst din funktion, som sedan parsade informationen och skickade ett svar som liknar följande text:

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