Exercício – acionar uma Função do Azure com um evento do GitHub
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
No portal do Azure, vá para o Aplicativo de Função que você criou anteriormente.
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.
Selecione o HttpTrigger1 que você criou. O painel HtttpTrigger1 é exibido para sua função.
No painel de menu esquerdo, em Desenvolvedor, selecione Código + Teste. O painel Código + Teste da sua Função é exibido.
No caminho acima do código, na lista suspensa, selecione index.js. O JavaScript do gatilho é exibido.
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") }; } }
Na barra de menu superior, selecione Salvar.
Acionar a sua Função do Azure com um evento Gollum
Regresse à sua conta do GitHub.
Selecione o repositório que você está usando para este módulo.
Na barra de menu superior, selecione Configurações. O painel Configurações é exibido.
Na barra lateral, selecione Webhooks. O painel Webhooks é exibido.
Selecione Editar para o seu webhook. O painel Webhooks/Manage webhook é exibido.
Selecione a guia Entregas recentes .
Selecione a última entrada de entrega (superior) selecionando o botão de reticências (...).
Selecione Redeliver (Enviar novamente).
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.
Selecione a última entrada de entrega (superior) (reentrega) selecionando o botão de reticências (...).
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