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

Azure Container Apps는 서버리스 컨테이너 및 마이크로 서비스를 호스팅하기 위한 관리형 플랫폼입니다.

컨테이너 앱을 정적 웹앱에 연결하면 /api로 시작하는 경로가 있는 정적 웹앱에 대한 모든 요청이 컨테이너 앱의 동일한 경로로 프록시됩니다.

기본적으로 컨테이너 앱이 정적 웹앱에 연결되면 컨테이너 앱은 연결된 정적 웹앱을 통해 프록시된 요청만 수락합니다. 컨테이너 앱은 한 번에 단일 정적 웹앱에 연결할 수 있습니다.

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

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

참고 항목

Azure Container Apps와 통합하려면 Static Web Apps 표준 계획이 필요합니다.

Static Web Apps 끌어오기 요청 환경에서는 백 엔드 통합이 지원되지 않습니다.

필수 조건

Container Apps를 정적 웹앱에 연결하려면 기존 Container Apps 리소스와 정적 웹앱이 있어야 합니다.

리소스 설명
Azure Container Apps 아직 앱이 없다면 첫 번째 컨테이너 앱 배포 가이드의 단계를 따릅니다.
기존 정적 웹앱 아직 없는 경우 시작 가이드의 단계에 따라 프레임워크 없음 정적 웹앱을 만듭니다.

예시

다음 위치를 통해 엔드포인트를 노출하는 기존 Azure 컨테이너 앱 인스턴스를 고려해 보세요.

https://my-container-app.red-river-123.eastus2.azurecontainerapps.io/api/getProducts

연결되면 이 예제 URL에 표시된 것처럼 정적 웹앱에서 api 경로를 통해 동일한 엔드포인트에 액세스할 수 있습니다.

https://red-sea-123.azurestaticapps.net/api/getProducts

두 URL 모두 동일한 API 엔드포인트를 가리킵니다. Static Web Apps가 /api에 대한 요청을 일치시키고 연결된 리소스에 대한 전체 경로를 프록시하기 때문에 컨테이너 앱의 엔드포인트에는 /api 접두사가 있어야 합니다.

컨테이너 앱을 정적 웹앱의 API 백 엔드로 연결하려면 다음 단계를 수행합니다.

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

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

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

  4. 백 엔드 리소스 유형에서 컨테이너 앱을 선택합니다.

  5. 구독에서 연결하려는 컨테이너 앱이 포함된 구독을 선택합니다.

  6. 리소스 이름에서 컨테이너 앱을 선택합니다.

  7. 링크를 선택합니다.

연결 프로세스가 완료되면 /api로 시작하는 경로에 대한 요청이 연결된 컨테이너 앱에 프록시됩니다.

컨테이너 앱에 대한 액세스 관리

컨테이너 앱은 정적 웹앱을 통해 프록시되는 트래픽만 허용하는 Azure Static Web Apps (Linked)라는 ID 공급자로 구성됩니다. 다른 애플리케이션에서 컨테이너 앱에 액세스할 수 있도록 하려면 인증 구성을 업데이트하여 다른 ID 공급자를 추가하거나 인증되지 않은 액세스를 허용하도록 보안 설정을 변경합니다.

정적 웹앱에서 컨테이너 앱의 연결을 해제하려면 다음 단계를 수행합니다.

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

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

  3. 연결을 해제하려는 환경을 찾고 컨테이너 앱 이름을 선택합니다.

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

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

참고 항목

컨테이너 앱이 익명 트래픽에 실수로 노출되지 않도록 연결 프로세스에서 만든 ID 공급자는 자동으로 삭제되지 않습니다. 컨테이너 앱의 인증 설정에서 Azure Static Web Apps(연결됨)라는 ID 공급자를 삭제할 수 있습니다.

Container Apps 리소스에서 인증 제거

Container Apps 리소스가 익명 트래픽을 수신할 수 있도록 하려면 다음 단계에 따라 ID 공급자를 제거합니다.

  1. Azure Portal에서 Container Apps 리소스로 이동합니다.

  2. 탐색 메뉴에서 인증을 선택합니다.

  3. ID 공급자 목록에서 Static Web Apps 리소스와 관련된 ID 공급자를 삭제합니다.

  4. 인증을 제거하고 Container Apps 리소스에 대한 익명 트래픽을 허용하려면 인증 제거를 선택합니다.

이제 Container Apps 리소스가 익명 트래픽을 수신할 수 있습니다.

다음 단계