Dapr로 구동되는 마이크로 서비스 API
Azure Container Apps는 Dapr(Distributed Application Runtime)로 구동되는 API를 제공하며, 이를 통해 단순하고 이식 가능하며 복원력이 뛰어나고 안전한 마이크로 서비스를 작성하고 구현할 수 있습니다. Dapr은 추상화 계층으로 Azure Container Apps와 함께 작동하여 유지 관리가 간편하고 확장성 있는 플랫폼을 제공합니다. Azure Container Apps는 마이크로 서비스 시나리오에 맞춰 특별히 맞춤화된 완전 관리형 Dapr API, 구성 요소 및 기능을 제공합니다. 컨테이너 앱 환경에서 평소처럼 간단히 Dapr을 사용하도록 설정하고 구성합니다.
마이크로 서비스 API가 컨테이너 앱과 함께 작동하는 방식
Dapr 지원 컨테이너 앱, 솔루션에 맞게 구성된 Dapr 구성 요소 및 이들 간 통신을 호출하는 Dapr 사이드카를 사용하여 컨테이너 앱 환경에 대한 마이크로 서비스 API를 구성합니다. 다음 다이어그램은 pub/sub API를 예로 들어 이러한 핵심 개념을 보여 줍니다.
레이블 | Dapr 설정 | Description |
---|---|---|
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 사용 컨테이너 앱을 지정합니다. |
지원되는 Dapr API, 구성 요소 및 도구
관리되는 API
Azure Container Apps는 일반 공급한 관리 Dapr API(구성 요소)를 제공합니다. 이러한 API는 프로덕션 환경에서 사용할 수 있도록 완벽하게 관리되고 지원됩니다.
알파 Dapr API 및 기능 사용에 대해 자세히 알아보려면 Dapr FAQ를 참조하세요.
API | Status | 설명 |
---|---|---|
서비스 간 호출 | GA | 자동 mTLS 인증 및 암호화를 사용하여 서비스를 검색하고 안정적이고 직접적인 서비스 간 호출을 수행합니다. Azure Container Apps에서 Dapr 서비스 호출에 대한 알려진 제한 사항을 참조하세요. |
상태 관리 | GA | 트랜잭션 및 CRUD 작업에 대한 상태 관리 기능을 제공합니다. |
게시/구독 | GA | 게시자 및 구독자 컨테이너 앱에서 중간 메시지 broker를 통해 상호 통신할 수 있도록 허용합니다. 외부 구성 요소 JSON 파일을 사용하여 토픽에 선언적 구독을 만들 수도 있습니다. 선언적 pub/sub API에 대해 자세히 알아봅니다. |
바인딩 | GA | 이벤트에 따라 애플리케이션 트리거 |
행위자 | GA | Dapr 작업자는 신속하게 확장하도록 설계된 메시지 기반의 단일 스레드 작업 단위입니다. 예를 들어 버스트가 많은 워크로드 상황에 해당합니다. |
가시성 | GA | 추적 정보를 Application Insights 백 엔드에 보냅니다. |
비밀 | GA | 애플리케이션 코드에서 비밀에 액세스하거나 Dapr 구성 요소에서 보안 값을 참조합니다. |
Configuration | GA | 지원되는 구성 저장소에 대한 애플리케이션 구성 항목을 검색하고 구독합니다. |
호환되는 SDK
Dapr의 최신 클라이언트 SDK 패키지는 Azure Container Apps와 호환됩니다. 다음 Dapr 클라이언트 SDK 버전에서 지원되는 GA Dapr API를 사용할 수 있습니다.
언어 | SDK 버전 |
---|---|
Java | 1.12.0 |
Go | 1.11.0 |
Python | 1.14.0 |
.NET | 1.14.0 |
JavaScript | 3.3.1 |
Rust | 0.15.1 |
참고 항목
현재 Dapr 서버 확장, 행위자 및 워크플로 SDK 패키지는 Azure Container Apps와 호환되지 않습니다. 모든 Dapr SDK 패키지에 대해 자세히 알아봅니다.
계층 1 및 계층 2 구성 요소
Dapr 구성 요소의 하위 집합이 지원됩니다. 해당 하위 집합 내에서 Dapr 구성 요소는 계층 1 또는 계층 2라는 두 가지 지원 범주로 나뉩니다.
- 계층 1 구성 요소: 위험(보안 또는 심각한 회귀) 시나리오에서 즉각적인 조사를 받는 안정적인 구성 요소입니다. 그렇지 않은 경우 Microsoft는 오픈 소스와 협력하여 핫픽스 또는 다음 정규 릴리스에서 문제를 해결합니다.
- 계층 2 구성 요소: 안정적인 상태가 아니거나 타사 공급자에 있으므로 낮은 우선 순위로 조사되는 구성 요소입니다.
계층 1 구성 요소
API | 구성 요소 | Type |
---|---|---|
상태 관리 | Azure Cosmos DB Azure Blob Storage v1 Azure Table Storage Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
게시 & 등록 | Azure Service Bus 큐 Azure Service Bus Topics Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
바인딩 | Azure Storage 큐 Azure Service Bus 큐 Azure Blob Storage Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
비밀 관리 | Azure Key Vault | secretstores.azure.keyvault |
계층 2 구성 요소
API | 구성 요소 | Type |
---|---|---|
상태 관리 | PostgreSQL MySQL & MariaDB Redis |
state.postgresql state.mysql state.redis |
게시 & 등록 | Apache Kafka Redis Streams |
pubsub.kafka pubsub.redis |
바인딩 | Azure Event Grid Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
구성 | PostgreSQL Redis |
configuration.postgresql configuration.redis |
도구
Azure Container Apps는 SDK 및 CLI와 같은 Dapr 오픈 소스 도구와의 호환성을 보장합니다.
제한 사항
- Dapr 구성 사양: Dapr 구성 사양을 사용해야 하는 모든 기능입니다.
- Dapr 사용 가이드에 나열되지 않은 Dapr 사이드카 주석
- API 및 구성 요소 지원: 이 문서에 GA, 계층 1 또는 계층 2로 나열된 Dapr API 및 구성 요소만 Azure Container Apps에서 지원됩니다.
- 행위자 미리 알림: 미리 알림이 항상 활성화되고 올바르게 실행되도록 하려면 minReplica가 1 이상이어야 합니다.
- 작업: Dapr은 작업에 대해 지원되지 않습니다.