HTTP 이외 트리거 함수를 수동으로 실행

이 문서에서는 특별한 형식의 HTTP 요청을 통해 HTTP 이외 트리거 함수를 수동으로 실행하는 방법에 대해 설명합니다.

개발 및 문제 해결과 같은 일부 상황에서는 간접적으로 트리거되는 Azure 함수를 "주문형"으로 실행해야 할 수도 있습니다. 간접 트리거의 예로는 일정에 따른 함수 또는 이벤트의 결과로 실행되는 함수가 있습니다.

다음 예제에는 Postman을 사용하고 있지만, cURL, Fiddler 또는 기타 모든 도구를 사용하여 HTTP 요청을 전송할 수 있습니다.

이 문서에 설명된 절차는 Azure Portal에서 기능의 코드 + 테스트 탭의 테스트/실행 기능을 사용하는 것과 동등합니다. Visual Studio Code를 사용하여 함수를 수동으로 실행할 수도 있습니다.

요청 위치 정의

HTTP가 아닌 트리거 함수를 실행하려면 Azure에 해당 함수를 실행하기 위한 요청을 보낼 방법이 필요합니다. 이 요청에 사용된 URL은 특정 형식을 사용합니다.

Define the request location: host name + folder path + function name

  • 호스트 이름: 함수 앱의 이름과 azurewebsites.net 또는 사용자 지정 도메인으로 구성된 함수 앱의 퍼블릭 위치입니다. 준비에 사용되는 배포 슬롯으로 작업할 때 호스트 이름 부분은 -<slotname>이 추가된 프로덕션 호스트 이름입니다. 이전 예에서 이름이 staging인 슬롯에 대한 URL은 myfunctiondemos-staging.azurewebsites.net입니다.
  • 폴더 경로: HTTP 요청을 통해 HTTP로 트리거되지 않는 함수에 액세스하려면 admin/functions 경로를 통해 요청을 보내야 합니다. /admin/ 경로 아래의 API는 권한 부여를 통해서만 액세스할 수 있습니다.
  • 함수 이름: 실행할 함수의 이름입니다.

함수 앱에서 관리자 엔드포인트에 요청할 때 다음 고려 사항이 적용됩니다.

  • /admin/ 경로 아래의 엔드포인트에 요청할 때 요청의 x-functions-key 헤더에 앱의 마스터 키를 제공해야 합니다.
  • 로컬로 실행하는 경우 권한 부여가 적용되지 않으며 함수의 마스터 키가 필요하지 않습니다. x-functions-key 헤더를 생략하고 직접 함수를 호출할 수 있습니다.
  • 배포 슬롯에서 함수 앱 엔드포인트에 액세스할 때 슬롯별 마스터 키와 함께 요청 URL에 슬롯별 호스트 이름을 사용해야 합니다.

마스터 키 가져오기

Azure Portal에서 또는 Azure CLI를 사용하여 마스터 키를 가져올 수 있습니다.

주의

함수 앱에서는 마스터 키를 통해 높은 권한이 부여되므로, 이 키를 제3자와 공유하거나 애플리케이션에 배포해서는 안 됩니다. HTTPS 엔드포인트에만 키를 전송해야 합니다.

  1. Azure Portal에서 함수 앱으로 이동한 다음 앱 키, _master 키를 차례로 선택합니다.

    Locate the master key to copy.

  2. 키 편집 섹션에서 키 값을 클립보드로 복사하고 확인을 선택합니다.

    Copy the master key to the clipboard.

함수 호출

  1. Azure Portal에서 함수 앱 위로 이동하여 함수를 선택합니다.

  2. 코드 + 테스트를 선택한 다음 로그를 선택합니다. Postman에서 함수를 수동으로 실행하는 경우 여기에 기록된 함수의 메시지가 표시됩니다.

    Screenshot that shows the 'Code + Test' page with a message from the logs displayed.

  3. Postman(또는 이에 상응하는 HTTP 작성 도구)을 열고 URL 텍스트 상자에 요청 위치를 입력합니다.

  4. HTTP 메서드가 POST로 설정되어 있는지 확인하고 헤더 탭을 선택한 후 다음 두 헤더 키-값 쌍을 추가합니다.

    x-functions-key 클립보드에서 붙여넣은 마스터 키 값입니다.
    Content-Type application/json

    Postman headers settings.

  5. 본문 탭을 선택하고 요청 본문으로 { "input": "<TRIGGER_INPUT>" }를 입력합니다.

    Postman body settings.

    제공하는 특정 <TRIGGER_INPUT>는 트리거 형식에 따라 다르지만 문자열, 숫자 또는 부울 값만 가능합니다. Azure Service Bus와 같이 JSON 페이로드를 사용하는 서비스의 경우 테스트 JSON 페이로드를 이스케이프하고 문자열로 직렬화해야 합니다.

    입력 데이터를 함수에 전달하지 않으려면 POST 요청의 본문으로 빈 사전 {}을 제공해야 합니다. 자세한 내용은 특정 비HTTP 트리거에 대한 참조 문서를 참조하세요.

  6. 보내기를 선택합니다.

    Send a request with Postman.

    그런 다음, Postman은 202 수락됨이라는 상태를 보고합니다.

  7. 다음으로, Azure Portal에서 해당 함수로 돌아갑니다. 로그를 검토하면 수동 함수 호출에서 제공되는 메시지를 확인할 수 있습니다.

    View the logs to see the master key test results.

트리거로 전송된 데이터에 액세스하는 방법은 트리거 형식과 함수 언어에 따라 다릅니다. 자세한 내용은 특정 트리거에 대한 참조 예를 참조하세요.

다음 단계