Azure Cosmos DB と Azure Functions を使用したサーバーレスなイベントベースのアーキテクチャServerless event-based architectures with Azure Cosmos DB and Azure Functions

Azure Functions には、変更フィードに接続する最も簡単な方法が用意されています。Azure Functions provides the simplest way to connect to the change feed. Azure Cosmos コンテナーの変更フィード内の新しい各イベントに基づいて自動的にトリガーされる小規模な対応型 Azure 関数を作成できます。You can create small reactive Azure Functions that will be automatically triggered on each new event in your Azure Cosmos container's change feed.

Azure Cosmos DB トリガーと連携するサーバーレスなイベントベースの関数

Azure Cosmos DB トリガーを使用すると、ワーカー インフラストラクチャを維持することなく、変更フィード プロセッサのスケーリングと信頼性の高いイベント検出機能を活用できます。With the Azure Cosmos DB Trigger, you can leverage the Change Feed Processor's scaling and reliable event detection functionality without the need to maintain any worker infrastructure. イベントソーシング パイプラインの残りの部分を気にすることなく、自分の Azure 関数のロジックにのみ専念しましょう。Just focus on your Azure Function's logic without worrying about the rest of the event-sourcing pipeline. トリガーは、その他の Azure Functions のバインドと組み合わせることもできます。You can even mix the Trigger with any other Azure Functions bindings.


現在、Azure Cosmos DB トリガーは、Core (SQL) API と共に使用する場合にのみサポートされます。Currently, the Azure Cosmos DB trigger is supported for use with the Core (SQL) API only.


サーバーレスなイベントベースのフローを実装するには、以下が必要です。To implement a serverless event-based flow, you need:

  • 監視対象コンテナー:監視対象コンテナーは監視されている Azure Cosmos コンテナーであり、そこには、変更フィードの生成元となるデータが含まれています。The monitored container: The monitored container is the Azure Cosmos container being monitored, and it stores the data from which the change feed is generated. 監視対象コンテナーに対する挿入と変更 (例: CRUD) が、コンテナーの変更フィードに反映されます。Any inserts and changes (e.g., CRUD) to the monitored container are reflected in the change feed of the container.
  • リース コンテナー:リース コンテナーは、複数の動的なサーバーレス Azure 関数インスタンス全体で状態を維持し、動的スケーリングを可能にします。The lease container: The lease container maintains state across multiple and dynamic serverless Azure Function instances and enables dynamic scaling. このリース コンテナーは手動で作成できるほか、Azure Cosmos DB トリガーによって自動的に作成できます。リース コンテナーを自動的に作成するには、構成CreateLeaseCollectionIfNotExists フラグを設定します。This lease container can be manually or automatically created by the Azure Cosmos DB Trigger.To automatically create the lease container, set the CreateLeaseCollectionIfNotExists flag in the configuration. パーティション分割されたリース コンテナーには、/id パーティション キー定義が必要です。Partitioned lease containers are required to have a /id partition key definition.

Azure Cosmos DB トリガーを作成するCreate your Azure Cosmos DB Trigger

Azure Cosmos DB トリガーを使用した Azure 関数の作成は、すべての Azure Functions IDE および CLI 統合にわたってサポートされるようになりました。Creating your Azure Function with an Azure Cosmos DB Trigger is now supported across all Azure Functions IDE and CLI integrations:

Azure Cosmos DB トリガーをローカルで実行するRun your Azure Cosmos DB Trigger locally

Azure Cosmos DB Emulator を使用して自分の Azure 関数をローカルで実行し、Azure サブスクリプションまたはコストの発生なしで、サーバーレスなイベントベースのフローを作成および開発できます。You can run your Azure Function locally with the Azure Cosmos DB Emulator to create and develop your serverless event-based flows without an Azure Subscription or incurring any costs.

クラウドでライブ シナリオをテストしたい場合は、Cosmos DB を無料で試すことができます。クレジット カードや Azure サブスクリプションは必要ありません。If you want to test live scenarios in the cloud, you can Try Cosmos DB for free without any credit card or Azure subscription required.

次の手順Next steps

以下の記事では、変更フィードについて引き続き詳しく知ることができます。You can now continue to learn more about change feed in the following articles: