Azure Container Apps는 단순하고, 이동 가능하며, 복원력 있고, 보안이 강화된 마이크로서비스를 작성하고 구현하는 데 도움이 되는 Distributed Application Runtime (Dapr) 기반 API를 제공합니다. Dapr는 Azure Container Apps와 함께 추상화 계층으로 작동하여 유지 관리가 적고 확장 가능한 플랫폼을 제공합니다. Azure Container Apps는 마이크로서비스 시나리오에 맞춰 특별히 제공되는 완전 관리형 Dapr API, 구성 요소 및 기능을 제공합니다. 컨테이너 앱 환경에서 Dapr을 일반적으로 활성화하고 구성하면 됩니다.
참고
GitHub의 Azure Container Apps에서 Dapr에 대한 업데이트 및 릴리스 공지 사항을 찾습니다.
마이크로서비스 API가 컨테이너 앱과 작동하는 방식
Dapr 활성화 컨테이너 앱, 솔루션에 맞게 구성된 Dapr 구성 요소, 그리고 이들 간의 통신을 호출하는 Dapr 사이드카를 사용하여 컨테이너 앱 환경에서 마이크로서비스 API를 구성합니다. 다음 다이어그램은 pub/sub API를 예로 들어 이러한 핵심 개념을 보여줍니다.
| 레이블 | Dapr 설정 | 설명 |
|---|---|---|
| 1 | Dapr이 사용하도록 설정된 Container Apps | Dapr 인수 집합을 구성하여 컨테이너 앱 수준에서 Dapr을 사용하도록 설정합니다. 이러한 값은 여러 수정 모드에서 실행할 때 지정된 컨테이너 앱의 모든 수정 버전에 적용됩니다. |
| 2 | 다프(Dapr) | 완전 관리형 Dapr API는 Dapr 사이드카를 통해 각 컨테이너 앱에 노출됩니다. Dapr API는 HTTP 또는 gRPC를 통해 컨테이너 앱에서 호출할 수 있습니다. Dapr 사이드카는 HTTP 포트 3500 및 gRPC 포트 50001에서 실행됩니다. |
| 3 | Dapr 구성 요소 구성 | Dapr은 기능이 구성 요소로 제공되는 모듈식 디자인을 사용합니다. Dapr 구성 요소는 여러 컨테이너 앱에서 공유할 수 있습니다. 범위 배열에 제공된 Dapr 앱 식별자는 런타임에 지정된 구성 요소를 로드할 dapr 사용 컨테이너 앱을 지정합니다. |
버전 관리
Azure Container Apps의 Dapr은 고정된 릴리스 일정을 따르는 대신 Dapr 이진 파일의 우선 순위 및 안정성에 따라 새로운 기능과 기능을 릴리스합니다. Azure Container Apps의 Dapr 릴리스에 대해 자세히 알아봅니다.
Azure Container Apps에서 제공되는 Dapr 버전은 다음과 같습니다.
-
1.13.6과 같은 의미 체계 버전 접두사로, 해당 OSS Dapr 런타임 버전 API 및 SDK, CLI 등 관련 도구와의 호환성을 나타냅니다. -
-msft.<number>접미사로, 보안 강화 및 프로덕션 준비를 위해 Azure 전용 맞춤 기능이 포함되었음을 나타냅니다.
Azure Container Apps에서 Dapr의 전체 버전 형식은 1.13.6-msft.1과 같이 표시될 수 있습니다.
참고
접미사의 <number>은 항상 순차적으로 증가하지 않을 수 있습니다. 예를 들어, 버전 1.13.6-msft.3에서는 1.13.6-msft.2가 건너뛸 수 있습니다.
지원되는 Dapr API, 구성 요소 및 도구
관리형 API
Azure Container Apps는 관리형 일반 제공 Dapr API(빌딩 블록 API 및 운영 API)를 제공합니다. 이 API들은 완전 관리형이며, 프로덕션 환경에서 사용하도록 지원됩니다.
알파 Dapr API 및 기능 사용에 대한 자세한 내용은 Dapr FAQ를 참조하세요.
구성 요소 API
| 구성 요소 API | 상태 | 설명 |
|---|---|---|
| 서비스 간 호출 | GA | 자동 mTLS 인증 및 암호화를 사용하여 서비스를 검색하고 신뢰할 수 있는 직접 서비스 간 호출을 수행합니다. Azure Container Apps에서 Dapr 서비스 호출의 알려진 제한 사항을 참조하세요. |
| 상태 관리 | GA | 트랜잭션 및 CRUD 작업에 대한 상태 관리 기능을 제공합니다. |
| Pub/sub | GA | 게시자 및 구독자 컨테이너 앱이 중간 메시지 브로커를 통해 상호 통신할 수 있습니다. 외부 구성 요소 JSON 파일을 사용하여 주제에 대한 선언적 구독을 생성할 수도 있습니다. 선언적 pub/sub API에 대해 자세히 알아보세요. |
| 바인딩 | GA | 이벤트에 따라 애플리케이션 트리거 |
| 행위자 | GA | Dapr 작업자는 신속하게 스케일링하도록 설계된 메시지 기반 단일 스레드 작업 단위입니다. 예를 들어 버스트가 많은 워크로드 상황에 해당합니다. |
| 비밀 | GA | 애플리케이션 코드에서 비밀에 액세스하거나 Dapr 구성 요소에서 보안 값을 참조합니다. |
| 구성 | GA | 지원되는 구성 저장소에서 애플리케이션 구성 항목을 가져오고 구독합니다. |
작업 API
| 작업 API | 상태 | 설명 |
|---|---|---|
| 상태 | GA | Dapr의 준비 상태 또는 생존 상태를 모니터링하는 헬스 체크 프로브와 SDK 초기화 준비 상태를 모니터링하는 프로브. 상태 API는 HTTP에만 사용할 수 있습니다. Dapr 사이드카 상태 검사는 컨테이너 앱에서 Dapr을 사용하도록 설정하면 자동으로 구성됩니다. |
| 메타데이터 | GA | 사이드카에 대한 정보를 반환하여 런타임에서의 발견 가능성을 허용합니다. |
호환되는 SDK
Dapr의 최신 클라이언트 SDK 패키지는 Azure Container Apps와 호환됩니다. Dapr SDK는 지원되는 GA Dapr v1.12 런타임 API와 함께 사용할 수 있습니다.
참고
현재 Dapr 서버 확장, 액터, 워크플로우 SDK 패키지는 Azure Container Apps와 호환되지 않습니다. 모든 Dapr SDK 패키지에 대해 자세히 알아보기.
Dapr 구성 요소
1단계 컴포넌트(Tier 1)와 2단계 컴포넌트(Tier 2)
Dapr 구성 요소의 일부만 지원됩니다. 그 하위 집합 내에서 Dapr 구성 요소는 두 가지 지원 범주인 1단계 또는 2단계로 나뉩니다.
- 계층 1 구성 요소: 중요한 상황(보안 문제 또는 심각한 회귀 등)에서 즉시 조사되는 안정적인 구성 요소입니다. 그 외의 경우, Microsoft는 오픈 소스와 협력하여 핫픽스나 다음 정기 릴리스에서 문제를 해결합니다.
- 계층 2 구성 요소: 안정적인 상태가 아니거나 제3자 제공업체와 관련된 구성 요소로, 우선순위가 낮게 조사됩니다.
계층 1 구성 요소
| 응용 프로그램 인터페이스 (API) | 구성 요소 | 유형 |
|---|---|---|
| 상태 관리 | Azure Cosmos DB (애저 코스모스 DB) Azure Blob Storage v1 Azure Table Storage (애저 테이블 저장소) Microsoft SQL Server |
state.azure.cosmosdbstate.azure.blobstoragestate.azure.tablestoragestate.sqlserver |
| 게시 & 구독 | Azure Service Bus 큐 Azure Service Bus 토픽 Azure Event Hubs |
pubsub.azure.servicebus.queuespubsub.azure.servicebus.topicspubsub.azure.eventhubs |
| 바인딩 | Azure Storage 큐 Azure Service Bus 큐 Azure Blob Storage (애저 블롭 스토리지) Azure Event Hubs |
bindings.azure.storagequeuesbindings.azure.servicebusqueuesbindings.azure.blobstoragebindings.azure.eventhubs |
| 비밀 관리 | Azure Key Vault (애저 키 볼트) | secretstores.azure.keyvault |
계층 2 구성 요소
| 응용 프로그램 인터페이스 (API) | 구성 요소 | 유형 |
|---|---|---|
| 상태 관리 | PostgreSQL MySQL 및 MariaDB Redis |
state.postgresqlstate.mysqlstate.redis |
| 게시 & 구독 | Apache Kafka Redis Streams |
pubsub.kafkapubsub.redis |
| 바인딩 | Azure Event Grid Azure Cosmos DB (애저 코스모스 DB) Apache Kafka PostgreSQL Redis cron(크론) |
bindings.azure.eventgridbindings.azure.cosmosdbbindings.kafkabindings.postgresqlbindings.redisbindings.cron |
| 구성 | PostgreSQL Redis |
configuration.postgresqlconfiguration.redis |
Azure Container Apps에서 지원되는 Dapr 구성 요소를 사용하는 방법에 대해 자세히 알아봅니다.
도구
Azure Container Apps는 SDK 및 CLI와 같은 Dapr 오픈 소스 도구와의 호환성을 보장합니다.
제한 사항
- Dapr 구성 사양: Dapr 구성 사양을 사용해야 하는 모든 기능입니다.
- Dapr 활성화 가이드에 에 나열되지 않은 모든 Dapr 사이드카 주석
- API 및 구성 요소 지원: 이 문서에 GA, 계층 1 또는 계층 2로 나열된 Dapr API 및 구성 요소만 Azure Container Apps에서 지원됩니다.
- 행위자 미리 알림: 미리 알림이 항상 활성화되고 올바르게 실행되도록 하려면 minReplica가 1 이상이어야 합니다.
- 작업: Dapr은 작업에 대해 지원되지 않습니다.
다음 단계
- 다음을 사용하여 Dapr을 배포합니다.
- 기존 컨테이너 앱에서 Dapr을 사용하도록 설정합니다.