연습 - 웹후크에서 트리거되는 Azure 함수 만들기

완료됨

이 첫 번째 연습에서는 Azure Functions에서 GitHub wiki 이벤트 메시지를 구문 분석하는 코드를 만듭니다. 웹후크 메시지를 받을 때 실행되도록 함수를 구성합니다.

함수 앱 만들기

  1. MS Learn 계정을 사용하여 Azure Portal에 로그인합니다.

  2. 리소스 만들기를 선택합니다. 리소스 만들기 창이 나타납니다.

  3. 왼쪽 메뉴 창의 범주에서 컴퓨팅을 선택하고 ‘서비스 및 마켓플레이스 검색’ 검색 상자에서 함수 앱을 검색하고 선택합니다. 함수 앱 창이 나타납니다.

  4. 만들기를 선택합니다. 함수 앱 만들기 창이 나타납니다.

  5. 기본 탭에서 각 설정에 다음 값을 입력합니다.

    참고

    함수 앱 이름은 고유해야 합니다. <이름 또는 이니셜>triggerapp과 같은 이름을 사용하는 것이 좋습니다. 이 연습에서 <your-functionapp-name>이 표시되는 위치에는 이 이름을 사용합니다.

    설정
    프로젝트 세부 정보
    구독 컨시어지 구독
    리소스 그룹 드롭다운 목록에서 샌드박스 리소스 그룹, [샌드박스 리소스 그룹 이름]을 선택합니다.
    인스턴스 세부 정보
    함수 앱 이름 <your-functionapp-name>
    게시 코드
    런타임 스택 Node.js
    버전 기본값 적용
    지역 허용되는 ‘샌드박스 지역’ 중 하나이면서 가장 가까운 위치를 선택합니다.
    운영 체제
    운영 체제 Windows
    호스팅
    호스팅 옵션 및 계획 사용량(서버리스)

    무료 샌드박스를 사용하면 Azure 글로벌 지역의 일부 하위 지역에 리소스를 만들 수 있습니다. 리소스를 만들 때 다음 목록에서 지역을 선택합니다.

    • 미국 서부 2
    • 미국 중남부
    • 미국 중부
    • 미국 동부
    • 서유럽
    • 동남 아시아
    • 일본 동부
    • 브라질 남부
    • 오스트레일리아 남동부
    • 인도 중부
  6. 다음: 스토리지 탭을 여는 스토리지입니다. 각 설정에 다음 값을 입력합니다.

    설정
    스토리지
    스토리지 계정 (신규), 기본 이름을 적용합니다.
  7. 검토 + 만들기를 선택합니다.

  8. Azure가 입력된 내용을 확인합니다. 확인이 완료되면 만들기를 선택합니다.

웹후크 트리거 함수 만들기

  1. 배포가 완료되면 리소스로 이동을 선택합니다. “함수 앱”의 개요 창이 나타납니다.

  2. Functions에서 Azure Portal에서 만들기를 선택합니다.

  3. 함수 만들기 창이 나타납니다.

  4. 템플릿 선택에서 HTTP 트리거를 선택한 다음 만들기를 선택합니다. 새 트리거의 기본 정보가 표시된, ‘함수’의 HttpTrigger1 창이 나타납니다.

  5. 왼쪽 탐색 창의 개발자에서 코드 + 테스트를 선택합니다. 템플릿으로 만든 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.";
    
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: responseMessage
        };
    }
    

    index.js 파일은 포털에서 생성되는 JavaScript 함수입니다. 요청은 쿼리 문자열로 또는 요청 본문의 일부로 전달된 이름을 읽은 “Hello” 메시지로 응답합니다.

  6. 코드 위에 파일 이름이 표시된 드롭다운 목록을 포함하는 경로가 있습니다. 드롭다운 목록에서 function.json을 선택합니다. 템플릿으로 만든 JSON 파일이 표시됩니다. 다음 코드와 비슷합니다.

    {
        "bindings": [
            {
                "authLevel": "function",
                "type": "httpTrigger",
                "direction": "in",
                "name": "req",
                "methods": [
                    "get",
                    "post"
                ]
            },
            {
                "type": "http",
                "direction": "out",
                "name": "res"
            }
        ]
    }
    

    JSON 바인딩은 함수가 함수 앱의 URL로 전송되는 HTTP GET 및 POST 요청에 의해 트리거됨을 지정합니다.

함수 트리거 테스트

  1. 상단 메뉴 표시줄에서 함수 URL 가져오기를 선택합니다.

  2. 함수 URL 가져오기 대화 상자의 드롭다운 목록의 함수 키 아래에서 기본값을 선택합니다. URL 필드에서 '클립보드로 복사' 아이콘을 선택합니다. URL은 다음과 비슷합니다.

    https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
    
  3. 이 URL을 브라우저에 붙여넣고 URL 끝에 쿼리 문자열 매개 변수인 &name=yourname>(예: &name=<Dick 및 Jane)을 추가합니다.

  4. 요청을 실행하려면 Enter 키를 누릅니다. 함수에서 반환된 응답이 브라우저에 표시됩니다. 다음과 비슷하게 표시됩니다.

    Hello Dick and Jane. This HTTP triggered function executed successfully.
    

축하합니다! 이제 URL로 트리거할 수 있는 함수를 만들었습니다.