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

Concluído

Neste exercício, você vai atualizar sua função para analisar as informações do conteúdo do webhook do GitHub e exibir os resultados.

Atualizar a sua função para analisar o conteúdo do webhook

  1. No portal do Azure, navegue até o Aplicativo de Funções que você criou anteriormente.

  2. No painel Aplicativo de Funções, no painel do menu esquerdo, em Funções, selecione Funções. O painel Funções aparece para o seu aplicativo de funções.

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

  4. No painel de menu esquerdo, em Desenvolvedor, selecione Código + Teste. O painel Codificar + Testar para sua função é exibido.

  5. No caminho acima da caixa de código, na lista suspensa, selecione index.js. O JavaScript do gatilho será 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")
        };
    }
    

    Esse código recupera o tipo de evento de cabeçalho de solicitação e dos campos de título e ação do corpo da mensagem. Essa informação indica que a página mudou e se foi editada ou criada recentemente. O código, então, constrói uma resposta que resume a ação. Esta deverá ser a aparência do JavaScript:

    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 menus superior, selecione Salvar.

Disparar sua Função do Azure com um evento do Gollum

  1. Retorne à sua conta do GitHub.

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

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

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

  5. Selecione Editar no seu webhook. O painel Webhooks/Gerenciar webhook é exibido.

  6. Selecione a guia Entregas Recentes.

  7. Selecione a entrada de entrega mais recente (superior) selecionando o respectivo botão de reticências ().

  8. Selecione Redeliver (Entregar Novamente).

  9. Na caixa de diálogo Entregar o conteúdo novamente? que aparece, selecione Sim, entregar novamente esse conteúdo. Essa ação simula você alterar sua página do Wiki novamente.

  10. Selecione a entrada de entrega (re-entrega) mais recente (superior) selecionando o respectivo botão de reticências ().

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

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