연습 - GitHub 이벤트를 사용하여 Azure Function 트리거
이 연습에서는 GitHub 웹후크 페이로드의 정보를 구문 분석하고 결과를 표시하도록 함수를 업데이트합니다.
웹후크 페이로드를 구문 분석하도록 함수를 업데이트
Azure Portal에서 이전에 만든 함수 앱으로 이동합니다.
함수 앱 창의 왼쪽 메뉴 창에 있는 함수에서 함수를 선택합니다. “함수 앱”의 함수 창이 나타납니다.
만든 HttpTrigger1을 선택합니다. ‘함수’에 대한 TimerTrigger1 창이 나타납니다.
왼쪽 탐색 창의 개발자에서 코드 + 테스트를 선택합니다. ‘함수’의 코드 + 테스트 창이 나타납니다.
코드 위의 경로에 있는 드롭다운 목록에서 index.js를 선택합니다. 트리거의 JavaScript가 표시됩니다.
함수 본문의 마지막 세 줄의 코드를 다음 코드로 바꾸어서 코드를 업데이트합니다.
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") }; }
이 코드는 요청 헤더의 이벤트 유형, 메시지 본문의 제목 및 작업 필드를 검색합니다. 이 정보는 해당 페이지가 변경되었으며, 편집되었거나 새로 생성되었는지 여부를 나타냅니다. 코드는 작업을 요약하는 응답을 생성합니다. 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") }; } }
상단 메뉴 모음에서 저장을 선택합니다.
Gollum 이벤트를 사용하여 Azure Function 트리거
GitHub 계정으로 돌아갑니다.
이 모듈용으로 사용 중인 리포지토리를 선택합니다.
위쪽 메뉴 모음에서 설정을 선택합니다. 설정 창이 나타납니다.
사이드바에서 웹후크를 선택합니다. 웹후크 창이 나타납니다.
웹후크에 대해 편집을 선택합니다. 웹후크/웹후크 관리 창이 나타납니다.
최근 배달 탭을 선택합니다.
줄임표 단추(...)를 선택하여 최신(최상위) 배달 항목을 선택합니다.
다시 배달을 선택합니다.
나타나는 페이로드를 다시 배달할까요? 대화 상자에서 예, 이 페이로드를 다시 배달합니다를 선택합니다. 이 작업은 Wiki 페이지를 다시 변경하는 것을 시뮬레이션합니다.
줄임표 단추(...)를 선택하여 최신(최상위) 배달 항목(‘다시 배달’)을 선택합니다.
응답 탭을 선택합니다. 웹후크가 함수를 트리거하여 함수가 정보를 구문 분석한 후 아래 텍스트와 비슷한 응답을 전송한 것을 알 수 있습니다.
Page is Home, Action is edited, Event Type is gollum