Azure API Management를 사용하여 Azure Static Web Apps에서 API 지원

Azure API Management는 기존 백 엔드 서비스에 대한 최신 API 게이트웨이를 만들 수 있는 서비스입니다.

Azure API Management 서비스를 정적 웹앱에 연결하면 /api로 시작하는 경로가 있는 정적 웹앱에 대한 모든 요청이 Azure API Management 서비스의 동일한 경로에 프록시됩니다.

Azure API Management 서비스는 동시에 여러 정적 웹앱에 연결할 수 있습니다. 연결된 각 정적 웹앱에 대해 API Management 제품이 만들어집니다. 제품에 추가된 모든 API는 연결된 정적 웹앱에서 사용할 수 있습니다.

모든 Azure API Management 가격 책정 계층을 Azure Static Web Apps에 사용할 수 있습니다.

Static Web Apps에 대한 API 옵션에는 다음 Azure 서비스가 포함됩니다.

자세한 내용은 API 개요를 참조하세요.

참고

Azure API Management와의 통합은 현재 미리 보기 상태이며 Static Web Apps 표준 플랜이 필요합니다.

현재는 API Management 서비스를 Static Web Apps 끌어오기 요청 환경에 연결할 수 없습니다.

Azure API Management 서비스를 정적 웹앱의 API 백 엔드로 연결하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 정적 웹앱으로 이동합니다.

  2. 탐색 메뉴에서 API를 선택합니다.

  3. API Management 서비스를 연결할 환경을 찾습니다. 링크를 선택합니다.

  4. 백 엔드 리소스 종류에서 API Management를 선택합니다.

  5. 구독에서 연결하려는 Azure API Management 서비스가 포함된 구독을 선택합니다.

  6. 리소스 이름에서 Azure API Management 서비스를 선택합니다.

  7. 링크를 선택합니다.

연결 프로세스가 완료되면 /api로 시작하는 경로에 대한 요청이 Azure API Management 서비스에 프록시됩니다. 그러나 API는 기본적으로 노출되지 않습니다. 사용하려는 API를 허용하도록 API Management 제품을 구성하려면 API에 대한 액세스 관리를 참조하세요.

API에 대한 액세스 관리

Azure API Management에는 API가 표시되는 방식을 정의하는 제품 기능이 있습니다. 연결 프로세스의 일부로 API Management 서비스는 Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked)라는 제품으로 구성됩니다.

새 API Management 제품과 연결된 API가 없으므로 정적 웹앱의 /api 경로에 액세스하면 API 관리에서 다음 오류가 반환됩니다.

{
  "statusCode": 401,
  "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}

연결된 정적 웹앱에서 API를 사용할 수 있도록 하려면 제품에 추가합니다.

또한 연결 프로세스는 API Management 서비스에 다음 구성을 자동으로 적용합니다.

  • 연결된 정적 웹앱과 관련된 제품은 구독을 요구하도록 구성됩니다.
  • Generated for Static Web Apps resource with default hostname: <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME>이라는 API Management 구독이 만들어지고 이름이 같은 제품으로 범위가 지정됩니다.
  • 연결된 정적 웹앱의 유효한 액세스 토큰을 포함하는 요청만 허용하도록 인바운드 validate-jwt 정책이 제품에 추가됩니다.
  • 연결된 정적 웹앱은 API Management 서비스에 대한 요청을 프록시할 때 구독의 기본 키와 유효한 액세스 토큰을 포함하도록 구성됩니다.

중요

validate-jwt 정책을 변경하거나 구독의 기본 키를 다시 생성하면 정적 웹앱이 요청을 API Management 서비스로 프록시할 수 없습니다. 연결된 동안에는 정적 웹앱과 관련된 구독 또는 제품을 수정하거나 삭제하지 마세요.

정적 웹앱에서 Azure API Management 서비스의 연결을 해제하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 정적 웹앱으로 이동합니다.

  2. 연결 해제할 환경을 찾고 API Management 서비스 이름을 선택합니다.

  3. 연결 해제를 선택합니다.

연결 해제 프로세스가 완료되면 /api/로 시작하는 경로에 대한 요청이 더 이상 API Management 서비스에 프록시되지 않습니다.

참고

연결된 정적 웹앱과 관련된 API Management 제품 및 구독은 자동으로 삭제되지 않습니다. API Management 서비스에서 삭제할 수 있습니다.

다음 단계