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

Slutförd

I den här övningen uppdaterar du funktionen för att parsa information från GitHub webhook-nyttolasten och visa resultatet.

Uppdatera funktionen för att parsa webhook-nyttolasten

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

  2. I fönstret Funktionsapp väljer du funktionsappen under Funktioner i mittenfönstret.

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

  4. Välj Kod + Test överst på skärmen. 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 anger att sidan har ändrats och 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 om.

  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 bör se 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