Azure Cosmos DB と Azure Functions を使用したサーバーレスなイベントベースのアーキテクチャ
適用対象: NoSQL
Azure Functions には、変更フィードに接続する最も簡単な方法が用意されています。 Azure Cosmos DB コンテナーの変更フィード内の新しい各イベントに基づいて自動的にトリガーされる小規模な対応型 Azure 関数を作成できます。
Azure Cosmos DB 用 Azure Functions トリガーを使用すると、ワーカー インフラストラクチャを維持することなく、変更フィード プロセッサのスケーリングと信頼性の高いイベント検出機能を活用できます。 イベントソーシング パイプラインの残りの部分を気にすることなく、自分の Azure 関数のロジックにのみ専念しましょう。 トリガーは、その他の Azure Functions のバインドと組み合わせることもできます。
注意
Azure Functions トリガーでは、最新バージョンの変更フィード モードが使用されます。現時点では、Azure Cosmos DB のAzure Functions トリガーは、NoSQL 用 API での使用のみがサポートされています。
必要条件
サーバーレスなイベントベースのフローを実装するには、以下が必要です。
- 監視対象コンテナー: 監視対象コンテナーは監視されている Azure Cosmos DB コンテナーであり、そこには、変更フィードの生成元となるデータが含まれています。 監視対象コンテナーに対する挿入と更新が、コンテナーの変更フィードに反映されます。
- リース コンテナー:リース コンテナーは、複数の動的なサーバーレス Azure 関数インスタンス全体で状態を維持し、動的スケーリングを可能にします。 Azure Cosmos DB の Azure Functions トリガーを使用し、リース コンテナーを自動的に作成できます。 リース コンテナーは手動で作成することもできます。 リース コンテナーを自動的に作成するには、構成で CreateLeaseContainerIfNotExists フラグを設定します。 パーティション分割されたリース コンテナーには、
/id
パーティション キー定義が必要です。
Azure Cosmos DB 用 Azure Functions トリガーを作成する
Azure Cosmos DB 用 Azure Functions トリガーを使用した Azure 関数の作成は、すべての Azure Functions IDE および CLI 統合にわたってサポートされるようになりました。
- Visual Studio ユーザー用の Visual Studio 拡張機能。
- Visual Studio Code ユーザー用の Visual Studio Code 拡張機能。
- 最後に、クロスプラットフォーム IDE に非依存なエクスペリエンスのための Core CLI ツール。
ローカルでトリガーを実行する
Azure Cosmos DB Emulator を使用して自分の Azure 関数をローカルで実行し、Azure サブスクリプションまたはコストの発生なしで、サーバーレスなイベントベースのフローを作成および開発できます。
クラウドでライブ シナリオをテストしたい場合は、Azure Cosmos DB を無料で試すことができます。クレジット カードや Azure サブスクリプションは必要ありません。
次のステップ
以下の記事では、変更フィードについて引き続き詳しく知ることができます。