Azure Container App을 API로 가져오기

이 문서에서는 Azure Container App을 Azure API Management로 가져오고, Azure Portal을 사용하여 가져온 API를 테스트하는 방법을 보여 줍니다. 이 문서에서는 다음 방법을 설명합니다.

  • 웹 API를 공개하는 Container App 가져오기
  • Azure Portal에서 API 테스트

API Management를 사용하여 Container App 공개

Azure Container Apps를 사용하면 복잡한 인프라를 관리하지 않고도 컨테이너화된 앱을 배포할 수 있습니다. API 개발자는 기본 설정 프로그래밍 언어 또는 프레임워크를 사용하여 코드를 작성하고, Dapr(Distributed Application Runtime)을 완벽하게 지원하는 마이크로 서비스를 빌드하고, HTTP 트래픽 또는 기타 이벤트에 따라 크기를 조정할 수 있습니다.

API Management는 다음과 같은 몇 가지 이유로 Container App 호스팅 API를 공개하는 데 권장되는 환경입니다.

  • API 소비자에게 공개되는 프런트 엔드 관리 및 보안을 백 엔드 앱 API 관리 및 모니터링과 분리합니다.
  • 다른 API와 동일한 환경에서 Container Apps로 호스트되는 웹 API를 관리합니다.
  • 정책을 적용하여 호출 속도 제한과 같은 API 동작 변경
  • API를 알아보고 액세스를 요청하고 사용하도록 API 소비자를 API Management의 사용자 지정 가능한 개발자 포털로 안내합니다.

자세한 내용은 API Management 정보를 참조하세요.

OpenAPI 사양과 와일드카드 작업 비교

API Management는 OpenAPI 사양(Swagger 정의)을 제공하는 Container Apps를 가져올 수 있도록 지원합니다. 하지만 OpenAPI 사양은 필요하지 않습니다. OpenAPI 사양을 제공하는 것이 좋습니다. API Management는 개별 작업을 가져올 수 있으므로 각 작업에 대한 구성을 개별적으로 유효성 검사, 관리, 보호 및 업데이트할 수 있습니다.

Container App에서 OpenAPI 사양을 공개하는 경우 API Management는 정의에 직접 매핑되는 API 작업을 만듭니다. API Management는 여러 위치에서 OpenAPI 사양을 찾습니다.

  • Container App 구성
  • /openapi.json
  • /openapi.yml
  • /swagger/v1/swagger.json

OpenAPI 사양이 제공되지 않는 경우 API Management는 공통 HTTP 동사(GET, PUT 등)에 대한 와일드카드 작업을 생성합니다. 동일한 API Management 기능을 계속 활용할 수 있지만, 작업은 동일한 세부 정보 수준에서 정의되지 않습니다.

두 경우 모두에서 작업을 수정하거나 가져온 API에 추가할 수 있습니다.

예시

백 엔드 Container App에서 지원할 수 있는 두 가지 GET 작업은 다음과 같습니다.

  • https://myappservice.azurewebsites.net/customer/{id}
  • https://myappservice.azurewebsites.net/customers

https://contosoapi.azure-api.net/store와 같은 경로에서 Container App을 API Management 서비스로 가져올 수 있습니다. 다음 표에서는 OpenAPI 사양 여부와 무관하게 API Management로 가져오는 작업을 보여 줍니다.

Type 가져온 작업 샘플 요청
OpenAPI 사양 GET /customer/{id}

GET /customers
GET https://contosoapi.azure-api.net/store/customer/1

GET https://contosoapi.azure-api.net/store/customers
와일드카드 GET /* GET https://contosoapi.azure-api.net/store/customer/1

GET https://contosoapi.azure-api.net/store/customers

와일드카드 작업은 백 엔드에 대해 동일한 작업을 OpenAPI 사양의 작업으로 허용합니다. 하지만 OpenAPI 지정 작업은 API Management에서 별도로 관리할 수 있습니다.

필수 조건

API Management 인스턴스로 이동

  1. Azure Portal에서 API Management 서비스를 검색하여 선택합니다.

    Select API Management services

  2. API Management 서비스 페이지에서 API Management 인스턴스를 선택합니다.

    Select your API Management instance

백 엔드 API 가져오기 및 게시

  1. Azure Portal에서 API Management 서비스로 이동하고 메뉴에서 API를 선택합니다.

  2. 목록에서 Container App을 선택합니다.

    Create from Container App

  3. 찾아보기를 선택하여 구독의 Container Apps 목록을 표시합니다.

  4. Container App을 선택합니다. OpenAPI 정의가 선택한 Container App과 연결되면 API Management에서 이를 페치하여 가져옵니다. OpenAPI 정의를 찾을 수 없는 경우 API Management는 일반 HTTP 동사에 대한 와일드카드 작업을 생성하여 API를 노출합니다.

  5. API URL 접미사를 추가합니다. 접미사는 이 API Management 인스턴스에서 이 특정 API를 식별하는 이름입니다. 접미사는 이 API Management 인스턴스에서 고유해야 합니다.

  6. API를 제품에 연결하여 API를 게시합니다. 이 경우 "Unlimited" 제품이 사용됩니다. API를 게시하고 개발자가 사용할 수 있도록 제품에 추가합니다.

    참고 항목

    제품은 하나 이상의 API와 연결됩니다. 여러 API를 포함하고 개발자 포털을 통해 개발자에게 제공할 수 있습니다. 개발자는 API에 액세스하려면 먼저 제품을 구독해야 합니다. 구독할 경우 해당 제품의 모든 API에 적절한 구독 키를 받게 됩니다. API Management 인스턴스를 만든 경우 기본적으로 관리자이며 모든 제품을 구독합니다.

    각 API Management 인스턴스는 만들어질 때 두 개의 샘플 제품과 함께 제공됩니다.

    • Starter
    • 무제한
  7. 다른 API 설정을 입력합니다. 생성 중에 값을 설정하거나 나중에 설정 탭으로 이동하여 값을 설정할 수 있습니다. 설정은 첫 번째 API 가져오기 및 게시 자습서에 설명되어 있습니다.

  8. 만들기를 실행합니다.

    Create API from Container App

Azure Portal에서 새 API 테스트

dAzure Portal에서 직접 작업을 호출할 수 있으며, 이 포털을 사용하면 편리한 방법으로 API의 작업을 보고 테스트할 수 있습니다. 개발자 포털에서 또는 자체 REST 클라이언트 도구를 사용하여 API를 테스트할 수도 있습니다.

  1. 이전 단계에서 만든 API를 선택합니다.

  2. 테스트 탭을 선택합니다.

  3. 작업을 선택합니다.

    페이지에 쿼리 매개 변수에 대한 필드와 헤더 필드가 표시됩니다. 헤더 중 하나는 이 API와 연결된 제품의 구독 키에 대한 Ocp-Apim-Subscription-Key입니다. API Management 인스턴스를 만든 경우 사용자는 이미 관리자이므로 키가 자동으로 채워집니다.

  4. 보내기를 누릅니다.

    테스트에 성공하면 백 엔드가 200 OK와 일부 데이터로 응답합니다.

포털에서 와일드카드 작업 테스트

와일드카드 작업이 생성되면 작업은 백 엔드 API에 직접 매핑되지 않을 수 있습니다. 예를 들어 API Management에서 가져온 와일드카드 GET 작업은 기본적으로 / 경로를 사용합니다. 하지만 백 엔드 API는 다음 경로에서 GET 작업을 지원할 수 있습니다.

/api/TodoItems

다음과 같이 /api/TodoItems 경로를 테스트할 수 있습니다.

  1. 만든 API를 선택하고 작업을 선택합니다.

  2. 테스트 탭을 선택합니다.

  3. 템플릿 매개 변수에서 와일드카드(*) 이름 옆의 값을 업데이트합니다. 예를 들어 api/TodoItems을 입력합니다. 이 값은 와일드 카드 작업에 대해 / 경로에 추가됩니다.

    Test wildcard operation

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

다른 API 추가

다음을 포함하여 다양한 서비스에 의해 노출되는 API를 구성할 수 있습니다.

  • OpenAPI 사양
  • SOAP API
  • GraphQL API
  • Azure App Service에서 호스팅되는 웹앱
  • Azure 함수 앱
  • Azure Logic Apps
  • Azure Service Fabric

다음 단계를 사용하여 기존 API에 다른 API를 추가합니다.

참고 항목

다른 API를 가져오면 작업이 현재 API에 추가됩니다.

  1. Azure Portal에서 Azure API Management 인스턴스로 이동합니다.

    Go to Azure API Mgmt instance

  2. 개요 페이지 또는 왼쪽 메뉴에서 API를 선택합니다.

    Select APIs

  3. 다른 API를 추가하려는 API 옆에 있는 ...를 클릭합니다.

  4. 드롭다운 메뉴에서 가져오기를 선택합니다.

    Select import

  5. API를 가져올 서비스를 선택합니다.

    Select service

다음 단계