Share via


Azure Container Apps와 Dapr 통합

Dapr(분산 애플리케이션 런타임)은 간단하고 이식 가능하며 복원력 있고 보안이 유지되는 마이크로 서비스를 작성하고 구현하는 데 도움이 되는 사이드카 프로세스로 실행되는 API를 제공합니다. Dapr은 Azure Container Apps와 함께 추상화 계층으로 작동하여 낮은 유지 관리, 서버리스 및 확장 가능한 플랫폼을 제공합니다. 컨테이너 앱에서 Dapr을 사용하도록 설정하면 HTTP 또는 gRPC를 통해 Dapr과 애플리케이션 상호 통신을 간소화하는 애플리케이션 코드와 함께 보조 프로세스가 만들어집니다.

Azure Container Apps의 Dapr

Dapr 지원 컨테이너 앱, 솔루션에 대해 구성된 Dapr 구성 요소 및 두 앱 간의 통신을 호출하는 Dapr 사이드카를 사용하여 컨테이너 앱 환경에 대한 Dapr을 구성합니다. 다음 다이어그램에서는 Azure Container Apps의 Dapr과 관련된 이러한 핵심 개념을 보여 줍니다.

Dapr pub/sub 및 Container Apps의 작동 방식을 보여 주는 다이어그램

레이블 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를 참조하세요.

Dapr API를 보여 주는 다이어그램

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 지원되는 구성 저장소에 대한 애플리케이션 구성 항목을 검색하고 구독합니다.

계층 1 및 계층 2 구성 요소

AKS 및 Arc 지원 Kubernetes용 Dapr 확장에는 Dapr 구성 요소의 하위 집합이 지원됩니다. 해당 하위 집합 내에서 Dapr 구성 요소는 계층 1 또는 계층 2라는 두 가지 지원 범주로 나뉩니다.

  • 계층 1 구성 요소: 위험(보안 또는 심각한 회귀) 시나리오에서 즉각적인 조사를 받는 안정적인 구성 요소입니다. 그렇지 않은 경우 Microsoft는 오픈 소스와 협력하여 핫픽스 또는 다음 정규 릴리스에서 문제를 해결합니다.
  • 계층 2 구성 요소: 안정적인 상태가 아니거나 타사 공급자에 있으므로 낮은 우선 순위로 조사되는 구성 요소입니다.
계층 1 구성 요소
API 구성 요소 Type
상태 관리 Azure Blob Storage v1
Azure Table Storage
Microsoft SQL Server
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
계층 2 구성 요소
API 구성 요소 Type
상태 관리 Azure Cosmos DB
PostgreSQL
MySQL & MariaDB
Redis
state.azure.cosmosdb
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
bindings.postgresql
bindings.redis

도구

Azure Container Apps는 SDK 및 CLI와 같은 Dapr 오픈 소스 도구와의 호환성을 보장합니다.

제한 사항

  • Dapr 구성 사양: Dapr 구성 사양을 사용해야 하는 모든 기능입니다.
  • Dapr 사용 가이드에 나열되지 않은 Dapr 사이드카 주석
  • API 및 구성 요소 지원: 이 문서에 GA, 계층 1 또는 계층 2로 나열된 Dapr API 및 구성 요소만 Azure Container Apps에서 지원됩니다.
  • 행위자 미리 알림: 미리 알림이 항상 활성화되고 올바르게 실행되도록 하려면 minReplica가 1 이상이어야 합니다.
  • 작업: Dapr은 작업에 대해 지원되지 않습니다.

다음 단계