Ejercicio: Desencadenamiento de una función de Azure Fuctions con un evento de GitHub

Completado

En este ejercicio, se deberá actualizar la función de para analizar la información de la carga del webhook de GitHub y mostrar los resultados.

Actualizar la función para analizar la carga de webhook

  1. En Azure Portal, vaya a la aplicación de funciones que ha creado antes.

  2. En el panel de la aplicación de funciones, en Funciones, seleccione Funciones. Aparece el panel Funciones de la aplicación de funciones.

  3. Seleccione la instancia de HttpTrigger1 que ha creado. Aparecerá el panel HtttpTrigger1 de la función.

  4. En el panel de menús izquierdo, en Desarrollador, seleccione Código y prueba. Aparece el panel Código y prueba de la función.

  5. En la ruta situada sobre el código, en la lista desplegable, seleccione index.js. Aparece el código de JavaScript del desencadenador.

  6. Actualice el código reemplazando las tres últimas líneas del cuerpo de la función por el siguiente código.

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

    Este código recupera el tipo de evento del encabezado de solicitud y los campos de título y acción del cuerpo del mensaje. Esta información indica que la página ha cambiado y si se ha editado o se ha creado recientemente. El código construye una respuesta que resume la acción. El archivo de JavaScript debe tener el siguiente aspecto:

    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. En la barra de menús superior, seleccione Guardar.

Desencadenamiento de la función de Azure con un evento Gollum

  1. Vuelva a su cuenta de GitHub.

  2. Seleccione el repositorio que está usando para este módulo.

  3. En la barra de menús superior, seleccione Configuración. Aparecerá el panel Configuración.

  4. En la barra lateral, seleccione Webhooks. Aparece el panel Webhooks.

  5. Seleccione la opción Editar correspondiente al webhook. Se abre el panel Webhooks/Manage webhook (Webhooks/Administrar webhook).

  6. Seleccione la pestaña Recent Deliveries (Entregas recientes).

  7. Seleccione la entrada de entrega más reciente por medio del botón de puntos suspensivos (...).

  8. Seleccione Volver a entregar.

  9. En el cuadro de diálogo Redeliver payload? (¿Volver a entregar la carga) que se abre, seleccione Yes, redeliver this payload (Sí, volver a entregar esta carga). Esta acción simula que cambia de nuevo la página de wiki.

  10. Seleccione la entrada de entrega más reciente (redelivery) por medio del botón de puntos suspensivos (...).

  11. Seleccione la pestaña Respuesta. Verá cómo el webhook ha desencadenado la función, que después ha analizado la información y ha enviado una respuesta similar al texto siguiente:

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