연습 - GitHub 이벤트를 사용하여 Azure Function 트리거

완료됨

이 연습에서는 GitHub 웹후크 페이로드의 정보를 구문 분석하고 결과를 표시하도록 함수를 업데이트합니다.

웹후크 페이로드를 구문 분석하도록 함수를 업데이트

  1. Azure Portal에서 이전에 만든 함수 앱으로 이동합니다.

  2. 함수 앱 창의 왼쪽 메뉴 창에 있는 함수에서 함수를 선택합니다. “함수 앱”의 함수 창이 나타납니다.

  3. 만든 HttpTrigger1을 선택합니다. ‘함수’에 대한 TimerTrigger1 창이 나타납니다.

  4. 왼쪽 탐색 창의 개발자에서 코드 + 테스트를 선택합니다. ‘함수’의 코드 + 테스트 창이 나타납니다.

  5. 코드 위의 경로에 있는 드롭다운 목록에서 index.js를 선택합니다. 트리거의 JavaScript가 표시됩니다.

  6. 함수 본문의 마지막 세 줄의 코드를 다음 코드로 바꾸어서 코드를 업데이트합니다.

    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")
            };
        }
    }
    
  7. 상단 메뉴 모음에서 저장을 선택합니다.

Gollum 이벤트를 사용하여 Azure Function 트리거

  1. GitHub 계정으로 돌아갑니다.

  2. 이 모듈용으로 사용 중인 리포지토리를 선택합니다.

  3. 위쪽 메뉴 모음에서 설정을 선택합니다. 설정 창이 나타납니다.

  4. 사이드바에서 웹후크를 선택합니다. 웹후크 창이 나타납니다.

  5. 웹후크에 대해 편집을 선택합니다. 웹후크/웹후크 관리 창이 나타납니다.

  6. 최근 배달 탭을 선택합니다.

  7. 줄임표 단추(...)를 선택하여 최신(최상위) 배달 항목을 선택합니다.

  8. 다시 배달을 선택합니다.

  9. 나타나는 페이로드를 다시 배달할까요? 대화 상자에서 예, 이 페이로드를 다시 배달합니다를 선택합니다. 이 작업은 Wiki 페이지를 다시 변경하는 것을 시뮬레이션합니다.

  10. 줄임표 단추(...)를 선택하여 최신(최상위) 배달 항목(‘다시 배달’)을 선택합니다.

  11. 응답 탭을 선택합니다. 웹후크가 함수를 트리거하여 함수가 정보를 구문 분석한 후 아래 텍스트와 비슷한 응답을 전송한 것을 알 수 있습니다.

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