연습 - 함수 앱에서 API Management에 새 API 만들기

완료됨

Azure Functions를 단일 API의 일부로 사용자에게 표시하기 위해 Azure API Management에 추가할 수 있습니다.

온라인 스토어 회사에서 개발자는 여러 Azure Functions를 마이크로 서비스로 만들었습니다. 각 함수는 스토어 기능의 작은 부분을 구현합니다. 이러한 함수를 단일 API로 어셈블하려고 합니다.

이 연습에서는 새 API Management 인스턴스를 만든 다음, 제품 정보 함수를 추가합니다.

함수 만들기

다음 단계에서는 Azure API Management에 Azure 함수 앱을 추가합니다. 나중에 여러 함수에서 단일 서버리스 API를 만들기 위해 동일한 API Management 인스턴스에 두 번째 함수 앱을 추가합니다. 먼저 스크립트를 사용해서 함수를 만들어 보겠습니다.

  1. 함수 프로젝트를 복제하려면 오른쪽의 Azure Cloud Shell에서 다음 명령을 실행합니다.

    git clone https://github.com/MicrosoftDocs/mslearn-apim-and-functions.git ~/OnlineStoreFuncs
    
  2. Cloud Shell에서 다음 명령을 실행하여 이 연습에 필요한 Azure 리소스를 설정합니다.

    cd ~/OnlineStoreFuncs
    bash setup.sh
    

    setup.sh 스크립트는 이 모듈에 대해 활성화한 샌드박스 리소스 그룹에 두 개의 함수 앱을 만듭니다. 다음 그림에 나와 있는 것처럼 각 앱은 단일 함수 OrderDetailsProductDetails를 호스트합니다. 또한 이 스크립트는 함수에 대한 스토리지 계정을 설정합니다. 이 두 함수의 URL은 둘 다 azurewebsites.net 도메인에 있습니다. 함수 이름은 고유할 수 있도록 난수를 포함합니다. 이 스크립트를 완료하는 데 몇 분 정도 걸립니다.

    Diagram illustrating the results of the setup.sh script and how the functions relate to the overall application's design.

ProductDetails 함수 테스트

이제 API Management에 추가하기 전에 ProductDetails 함수를 테스트하여 어떻게 동작하는지 살펴보겠습니다.

  1. 샌드박스를 활성화하는 데 사용한 동일한 계정으로 Azure Portal에 로그인합니다.

  2. Azure Portal 메뉴 또는 페이지에서 모든 리소스를 선택합니다. 모든 리소스 창이 표시됩니다.

  3. 이름이 ProductFunction으로 시작하는 함수 앱을 선택합니다. 개요 탭이 선택된 상태로 함수 앱 창이 나타납니다.

    Screenshot of menu selections to open ProductDetails function.

  4. 함수 앱의 함수 목록에서 ProductDetails를 선택합니다. ProductDetails 함수 창이 나타납니다.

  5. ProductDetails 메뉴의 개발자에서 코드 + 테스트를 선택합니다. ProductDetails 함수의 코드 + 테스트 창이 나타나고 function.json 파일의 내용이 표시됩니다.

    Screenshot of the ProductDetails Code and Test pane, with Test/Run selected in the command bar.

  6. 명령 모음에서 테스트/실행을 선택합니다. HTTP 요청을 테스트하기 위한 입출력 창이 나타납니다.

  7. 입력 탭의 HTTP 메서드 필드 드롭다운 목록에서 GET을 선택합니다.

  8. 쿼리 아래에서 매개 변수 추가를 선택합니다.

  9. 이름 필드에 ID를 입력하고 필드에 3을 입력한 다음, 실행을 선택합니다.

    Screenshot of the input pane for Test + Run, with the input parameter for the HTTP GET method highlighted.

  10. 요청을 연결하기 위한 로그 창이 나타납니다. 출력 탭에는 데이터베이스의 항목 3에 대한 HTTP 응답 코드(200 OK) 및 콘텐츠가 표시됩니다.

    Screenshot of the output of a pane for Test + Run with response results of running the GET method.

    필요에 따라 ID 값 1과 2를 입력하여 함수를 테스트할 수도 있습니다.

  11. 닫기를 선택하여 코드 + 테스트에 대한 입출력 탭을 닫습니다.

  12. ProductDetails 코드 + 테스트 창의 명령 모음에서 함수 URL 받기를 선택합니다. URL 하위 도메인은 함수 앱의 이름 뒤에 azurewebsites.net 도메인이 나옵니다.

참고

이 URL을 사용하여 브라우저에서 함수를 테스트할 수 있습니다. URL에는 입력이 필요합니다. &id=1 쿼리 문자열을 추가하여 제품 컬렉션의 첫 번째 항목에 대한 세부 정보를 요청합니다.

Azure API Management를 사용하여 함수 앱을 API로 노출

함수 앱을 배포하고 테스트한 후, 다른 앱과 서비스에서 호출할 수 있도록 Azure API Management를 사용하여 함수 앱을 API로 내보내겠습니다.

  1. 리소스 메뉴에서 모든 리소스를 선택합니다. 모든 리소스 창이 표시됩니다.

  2. 종류를 기준으로 리소스 목록을 정렬합니다. OrderFunction 앱과 ProductFunction 앱이 있습니다.

  3. ProductFunction 함수 앱을 선택합니다.

  4. 함수 앱 메뉴에서 API 범주로 스크롤한 다음, API Management를 선택합니다. ProductFunction 함수 앱에 대한 API Management 창이 표시됩니다.

    Screenshot showing menu selection to open the API Management app service.

  5. API Management 필드에서 새로 만들기를 선택합니다. API Management 게이트웨이 설치 창이 나타납니다.

    Screenshot showing settings for an API Management service.

  6. 각 설정에 다음 값을 입력합니다.

    설정
    구독 컨시어지 구독
    리소스 그룹 [샌드박스 리소스 그룹 이름]
    지역 소비 플랜을 지원하는 위치를 선택합니다. (미국)미국 서부, 미국 중북부, 서유럽, 북유럽, 동남 아시아, 오스트레일리아 동부
    리소스 이름 OnlineStore
    조직 이름 OnlineStore
    관리자 메일 전자 메일 주소를 입력합니다.
    가격 책정 계층 사용량(99.95% SLA)
  7. 다음: 모니터링을 선택하고 Application Insights 옵션을 선택 취소합니다.

  8. 검토 + 생성를 선택합니다. 유효성 검사가 완료되면 만들기를 선택하여 연결된 API Management 인스턴스를 만듭니다. 내보내기를 완료하는 데 몇 분 정도 걸립니다.

  9. API Management 인스턴스가 배포되면 API 연결을 선택합니다.

    Screenshot of API Management highlighting the Link API button.

    ProductDetails 함수가 강조 표시된 Azure Functions 가져오기 API Management 서비스 창이 나타납니다.

    Screenshot showing the Import Azure Functions API Management service pane.

  10. 선택을 선택하여 계속합니다. 함수 앱에서 만들기 대화 상자가 나타납니다.

    Screenshot showing the Create from Function app dialog box.

  11. API URL 접미사 값을 products로 변경한 다음, 만들기를 선택합니다. Azure가 ProductDetails 함수에 대한 API를 만듭니다. 함수 앱에 대한 API Management 창에 디자인 탭이 나타납니다.

이 연습에서는 API를 모두 Azure 함수 앱 서비스 내에서 정의할 수 있다는 것을 보여 줍니다.

OnlineStore 제품 엔드포인트 테스트

이제 만든 API Management 인스턴스에 ProductDetails API가 있습니다. Azure에서 API Management 도구를 사용하여 해당 API를 테스트해 보겠습니다.

  1. 함수 앱의 API Management 창에서 테스트 탭을 선택합니다. API에 사용할 수 있는 작업이 왼쪽 열에 나타납니다.

  2. GET ProductDetails를 선택합니다. ProductDetails 콘솔 창이 나타납니다.

  3. 쿼리 매개 변수에서 매개 변수 추가를 선택합니다.

    Screenshot showing ProductDetails Console with query parameter values highlighted for the GET HTTP request.

  4. NAME 필드에 id를 입력하고 VALUE 필드에 1을 입력한 다음, 보내기를 선택하여 GET 요청을 생성합니다.

    콘솔의 HTTP 응답 섹션에는 메시지와 추적의 두 탭이 있습니다. 메시지 탭은 HTTP 응답으로 채워집니다. 제품 세부 정보는 응답의 끝에 JSON 형식으로 표시됩니다. HTTP 요청 섹션으로 스크롤하여 요청 형식을 확인합니다. 해당 요청은 azure-api.net 도메인의 대상으로 전송되었습니다. 이 위치는 함수 앱이 호스트되는 azurewebsites.net 도메인과는 다릅니다. id=2 또는 id=3과 같은 다른 쿼리 매개 변수를 통해 이 API를 테스트할 수 있습니다.

    Screenshot showing the **Http request** and **HTTP response** message.