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 に関連するこれらの主要な概念を示しています。
Label | 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 対応コンテナー アプリが決まります。 |
サポートされている Dapr API、コンポーネント、ツール
マネージド API
Azure Container Apps では、一般公開されているマネージド Dapr API (構成要素) が提供されます。 これらの API はフル マネージドであり、運用環境での使用がサポートされています。
"アルファ版" Dapr API と機能の使用について詳しくは、Dapr に関する FAQ を参照してください。
API | 状態 | 説明 |
---|---|---|
サービス間の呼び出し | GA | 自動 mTLS 認証と暗号化を使用して、サービスを検出し、信頼性の高いサービス間呼び出しを実行します。 Azure Container Apps での Dapr サービス呼び出しに関する既知の制限事項を参照してください。 |
状態管理 | GA | トランザクションと CRUD 操作の状態管理機能を提供します。 |
pub/sub | GA | パブリッシャーとサブスクライバーのコンテナー アプリが中間メッセージ ブローカーを介して相互通信できるようにします。 外部コンポーネントの JSON ファイルを使って、トピックへの宣言型サブスクリプションを作成することもできます。 宣言型 pub/sub API の詳細を確認します。 |
バインド | GA | イベントに基づいてアプリケーションをトリガーする |
アクター | GA | Dapr のアクターは、迅速にスケーリングするように設計された、メッセージ駆動型のシングル スレッドの作業単位です。 たとえば、ワークロードにバーストが多い状況などです。 |
可観測性 | GA | Application Insights バックエンドにトレース情報を送信します。 |
シークレット | GA | アプリケーション コードからシークレットにアクセスするか、Dapr コンポーネントのセキュリティで保護された値を参照します。 |
Configuration | GA | サポートされている構成ストアのアプリケーション構成項目を取得してサブスクライブします。 |
レベル 1 とレベル 2 のコンポーネント
AKS および Arc 対応 Kubernetes 用の Dapr 拡張機能については、Dapr コンポーネントのサブセットがサポートされています。 そのサブセット内で、Dapr コンポーネントはレベル 1 またはレベル 2 の 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 トピック 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、Tier 1、または Tier 2 としてリストされている Dapr API とコンポーネントのみが Azure Container Apps でサポートされます。
- アクターのリマインダー: リマインダーが常にアクティブになり、正しく起動されるためには、1 以上の minReplicas が必要です。
- ジョブ: ジョブでは、Dapr はサポートされていません。