Azure Container Apps と Dapr の統合の詳細
Distributed Application Runtime (Dapr) は、マイクロサービス ベースの分散型アプリケーションの作成を簡略化する、段階的に導入可能な機能のセットです。 Dapr には、pub/sub を介したメッセージングまたは信頼性の高いセキュリティで保護されたサービス間呼び出しを介して、アプリケーションの相互通信を有効にする機能があります。
Dapr は、オープンソースの Cloud Native Computing Foundation (CNCF) プロジェクトです。 CNCF は Linux Foundation の一部であり、急速に成長しているクラウド ネイティブ プロジェクトのためのサポート、監視、方向性を提供します。 Dapr OSS プロジェクトを各自でデプロイして管理する代わりに、Container Apps プラットフォームが次のことを担います。
- マネージドかつサポート対象の Dapr 統合を提供する
- Dapr のバージョンのアップグレードをシームレスに処理する
- 簡略化された Dapr 相互作用モデルを公開し、開発者の生産性を高める
Dapr API
Dapr API | 説明 |
---|---|
サービス間の呼び出し | 自動 mTLS 認証と暗号化を使用して、サービスを検出し、信頼性の高いサービス間呼び出しを実行します。 |
状態管理 | トランザクションと CRUD 操作の状態管理機能を提供します。 |
pub/sub | パブリッシャーとサブスクライバーのコンテナー アプリが中間メッセージ ブローカーを介して相互通信できるようにします。 |
バインド | イベントに基づいてアプリケーションをトリガーする |
アクター | Dapr のアクターは、迅速にスケーリングするように設計された、メッセージ駆動型のシングル スレッドの作業単位です。 たとえば、ワークロードにバーストが多い状況などです。 |
可観測性 | Application Insights バックエンドにトレース情報を送信します。 |
シークレット | アプリケーション コードからシークレットにアクセスするか、Dapr コンポーネントのセキュリティで保護された値を参照します。 |
Configuration | サポートされている構成ストアのアプリケーション構成項目を取得してサブスクライブします。 |
Note
この表は安定版 Dapr API について説明しています。 アルファ版の API と機能の詳細については、制限事項のページを参照してください。
Dapr のコア概念
pub/sub API に基づく次の例は、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 の有効化
Dapr は、ランタイム コンテキストに基づいてさまざまな引数と注釈を使用して構成できます。 Azure Container Apps には、Dapr を構成できる 3 つのチャネルが用意されています。
- Container Apps CLI
- Bicep や Azure Resource Manager (ARM) のテンプレートのような、コードとしてのインフラストラクチャ (IaC) テンプレート
- Azure portal
Dapr のコンポーネントとスコープ
Dapr では、機能がコンポーネントとして提供されるモジュール設計を使用します。 Dapr コンポーネントの使用はオプションであり、アプリケーションのニーズによって排他的に決まります。
コンテナー アプリの Dapr コンポーネントは、次のようなことを行う環境レベルのリソースです。
- サポート対象の外部サービスに接続するためのプラグ可能な抽象化モデルを提供できる。
- コンテナー アプリ間で共有することも、特定のコンテナー アプリにスコープを設定することもできる。
- Dapr シークレットを使用して、構成メタデータを安全に取得できる。
既定では、同じ環境内のすべての Dapr 対応コンテナー アプリは、デプロイされたコンポーネントの完全なセットを読み込みます。 コンポーネントが実行時に適切なコンテナー アプリによってのみ読み込まれるようにするには、アプリケーション スコープを使用する必要があります。