Exercício – acionar uma Função do Azure com um evento do GitHub

Concluído

Neste exercício, irá atualizar a sua função para analisar informações do payload de webhook do GitHub e apresentar os resultados.

Atualize sua função para analisar a carga útil do webhook

  1. No portal do Azure, vá para o Aplicativo de Função que você criou anteriormente.

  2. No painel Aplicativo de Função, no painel de menu esquerdo, em Funções, selecione Funções. O painel Funções é apresentado para a Aplicação de Funções.

  3. Selecione o HttpTrigger1 que você criou. O painel HtttpTrigger1 é exibido para sua função.

  4. No painel de menu esquerdo, em Desenvolvedor, selecione Código + Teste. O painel Código + Teste da sua Função é exibido.

  5. No caminho acima do código, na lista suspensa, selecione index.js. O JavaScript do gatilho é exibido.

  6. Atualize o código substituindo as três últimas linhas de código no corpo da função pelo código a seguir.

    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 obtém o campo event type (tipo de evento) a partir do cabeçalho do pedido e os campos title (título) e action (ação) a partir do corpo da mensagem. Estas informações indicam que a página foi alterada e se foi editada ou criada recentemente. Em seguida, o código constrói uma resposta que resume a ação. Veja como o JavaScript deve parecer:

    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. Na barra de menu superior, selecione Salvar.

Acionar a sua Função do Azure com um evento Gollum

  1. Regresse à sua conta do GitHub.

  2. Selecione o repositório que você está usando para este módulo.

  3. Na barra de menu superior, selecione Configurações. O painel Configurações é exibido.

  4. Na barra lateral, selecione Webhooks. O painel Webhooks é exibido.

  5. Selecione Editar para o seu webhook. O painel Webhooks/Manage webhook é exibido.

  6. Selecione a guia Entregas recentes .

  7. Selecione a última entrada de entrega (superior) selecionando o botão de reticências (...).

  8. Selecione Redeliver (Enviar novamente).

  9. Na caixa de diálogo Reentregar carga útil? exibida, selecione Sim, reentregar esta carga. Esta ação simula uma nova alteração à sua página do Wiki.

  10. Selecione a última entrada de entrega (superior) (reentrega) selecionando o botão de reticências (...).

  11. Selecione a guia Resposta . Você verá como o webhook acionou sua função, que então analisou as informações e enviou uma resposta semelhante ao seguinte texto:

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