次の方法で共有


Dapr を使用するマイクロサービス API

Azure Container Apps は、Distributed Application Runtime (Dapr) (分散型アプリケーション ランタイム) を使用する API を提供しています。シンプルで移植性が高く、回復性があり、セキュリティで保護されたマイクロサービスを作成して実装する際に、これらが役立ちます。 Dapr は、抽象化レイヤーとして機能する Azure Container Apps と連携し、メンテナンスが少なくて済むスケーラブルなプラットフォームを実現するのに役立ちます。 Azure Container Apps は 1 つの選択肢であり、マイクロサービスのシナリオ向けに特化して作成されたフル マネージドの Dapr API、コンポーネント、機能で構成されています。 単純に、開発中のコンテナー アプリ環境で、通常と同じ方法で Dapr を有効にして構成するだけで済みます。

GitHub の Azure Container Apps で Dapr の更新プログラムとリリースのお知らせを見つけます。

開発中コンテナー アプリと組み合わせたときのマイクロサービス API の動作方法

Dapr 対応のコンテナー アプリ開発中ソリューション向けに構成済みの Dapr コンポーネント、それらの間で通信機能を呼び出す Dapr サイドカーを使用して、開発中コンテナー アプリ環境に適したマイクロサービス API を構成することができます。 次の図で、pub/sub API を例として使用し、これらの主要な概念を示します。

Dapr の pub/sub を例示し、それが Container Apps 内で動作する方法を示す図。

ラベル 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」 を参照してください。

Dapr API を示す図。

構成要素 API

構成要素 API Status 説明
複数のサービス間の呼び出し GA 自動 mTLS 認証と暗号化を使用して、サービスを検出し、信頼性が高く直接的なサービス間呼び出しを実行します。 Azure Container Apps 内での Dapr サービス呼び出しについては、「既知の制限事項」を参照してください。
状態管理 GA トランザクションと CRUD 操作の状態管理機能を提供します。
pub/sub GA パブリッシャーとサブスクライバーのコンテナー アプリが中間メッセージ ブローカーを介して相互通信できるようにします。 外部コンポーネントの JSON ファイルを使用して、トピックに対する宣言型サブスクリプションを作成することもできます。 宣言型 pub/sub API の詳細を参照してください。
バインド GA イベントに基づいてアプリケーションをトリガーする
アクター GA Dapr のアクターは、迅速にスケーリングするように設計された、メッセージ駆動型のシングル スレッドの作業単位です。 たとえば、ワークロードにバーストが多い状況などです。
シークレット GA アプリケーション コードからシークレットにアクセスするか、Dapr コンポーネントのセキュリティで保護された値を参照します。
構成 GA サポートされている構成ストアに対応するアプリケーション構成項目を取得し、その構成項目をサブスクライブします。

運用 API

運用 API Status 説明
正常性 GA 正常性チェック プローブ。Dapr の準備状況または稼働状態と、SDK の初期化の準備状況を監視します。 正常性 API は、HTTP でのみ使用できます。
Dapr サイドカーのヘルスチェックは、Dapr がコンテナーアプリで有効になっていると自動的に構成されます。
メタデータ GA サイドカーに関する情報を返し、ランタイムを検出できるようにします。

Compatible SDKs (適合 VM)

Dapr の最新のクライアント SDK パッケージは、Azure Container Apps と互換性があります。 サポートされている任意の GA Dapr v1.12 ランタイム API と組み合わせて、Dapr SDK を使用することができます。

現在、Dapr サーバー拡張機能、アクター、ワークフロー SDK パッケージはいずれも、Azure Container Apps との互換性がありません。 すべての Dapr SDK パッケージの詳細を参照してください。

Dapr コンポーネント

レベル 1 コンポーネントとレベル 2 コンポーネントの比較

Dapr コンポーネントのサブセットがサポートされています。 そのサブセット内で、Dapr コンポーネントはレベル 1 またはレベル 2 という、2 つのサポート カテゴリに分類されています。

  • レベル 1 コンポーネント: 安定的なコンポーネント。これらは、クリティカルな (セキュリティまたは重大な回帰) シナリオで、すぐに調査を受けます。 それ以外の場合、Microsoft はオープン ソースと共同で作業し、修正プログラムまたは次回の通常リリースで対処します。
  • レベル 2 コンポーネント: 低い優先順位で調査されるコンポーネント。これらは、安定的な状態ではないか、サード パーティのプロバイダーに関連しています。
レベル 1 コンポーネント
API コンポーネント タイプ
状態管理 Azure Cosmos DB
Azure Blob Storage v1
Azure Table Storage(アジュール テーブル ストレージ)
Microsoft SQL Server
state.azure.cosmosdb
state.azure.blobstorage
state.azure.tablestorage
state.sqlserver
発行とサブスクライブ (Please delete & tag) 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
シークレットの管理 Azure Key Vault secretstores.azure.keyvault
レベル 2 コンポーネント
API コンポーネント タイプ
状態管理 PostgreSQL
MySQL と MariaDB (Please delete & tag)
Redis
state.postgresql
state.mysql
state.redis
発行とサブスクライブ (Please delete & tag) Apache Kafka
Redis ストリーム
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 内でサポートされている Dapr コンポーネントの使用方法の詳細を参照してください。

ツール

Azure Container Apps は、SDK や CLI などの Dapr オープン ソース ツールとの互換性を確保しています。

制限事項

  • Dapr 構成仕様: Dapr 構成仕様を使用する必要があるすべての機能。
  • Dapr 有効化ガイドに記載されていない Dapr サイドカーの注釈
  • API とコンポーネントのサポート: Azure Container Apps がサポートしているのは、この記事で GA、Tier 1、または Tier 2 としてリストされている Dapr API とコンポーネントのみです。
  • アクターのリマインダー: リマインダーを常にアクティブにし、正しく起動するには、1 個以上の minReplicas が必要です。
  • ジョブ: ジョブ用途では、Dapr はサポートされていません。

次の手順