この記事では、Azure Functions で Azure Cosmos DB for MongoDB 仮想コア トリガーを操作する方法について説明します。 バインドでは、 Azure Cosmos DB の MongoDB 用 API の変更ストリーム を使用して、挿入と更新をリッスンします。
変更フィードでは、新しいアイテムと更新されたアイテムのみが発行されます。 変更ストリームを使用した削除操作の監視は、現在はサポートされていません。
Von Bedeutung
Azure Cosmos DB for MongoDB (仮想コア) 拡張機能は現在プレビュー段階です。
現時点では、 インプロセス モデル を使用する .NET アプリのみがサポートされています。
例
次の例は、挿入または更新された 1 つのドキュメントを返す関数を示しています。
[FunctionName("TriggerSample")]
public static void TriggerRun(
[CosmosDBMongoTrigger("TestDatabase", "TestCollection")] ChangeStreamDocument<BsonDocument> doc,
ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
log.LogInformation(doc.FullDocument.ToString());
}
完全な例については、拡張機能リポジトリの Sample.cs を参照してください。
属性
次の表では、 CosmosDBMongoTrigger
属性のバインド構成プロパティについて説明します。
パラメーター | 説明 |
---|---|
FunctionId | (省略可能)トリガー関数の ID。 |
DatabaseName | 変更のトリガーによって監視されているデータベースの名前。
TriggerLevel が MonitorLevel.Cluser に設定されていない限り、必須です。 |
CollectionName | 変更のトリガーによって監視されているデータベース内のコレクションの名前。
TriggerLevel が MonitorLevel.Collection に設定されている場合は必須です。 |
ConnectionStringSetting | 監視対象の Azure Cosmos DB アカウントへの接続方法を指定するアプリの設定または設定のコレクションの名前。 |
TriggerLevel | 変更を監視するレベルを示します。
MonitorLevel の有効な値は、Collection 、Database 、およびCluster です。 |
使用方法
TriggerLevel
パラメーターを使用して、監視する変更のスコープを設定します。
CosmosDBMongo
属性を使用して、関数コードで MongoDB クライアントを直接取得して操作できます。
[FunctionName("ClientBindingSample")]
public static void ClientBindingRun(
[TimerTrigger("*/5 * * * * *")] TimerInfo myTimer,
[CosmosDBMongo] IMongoClient client,
ILogger log)
{
var documents = client.GetDatabase("TestDatabase").GetCollection<BsonDocument>("TestCollection").Find(new BsonDocument()).ToList();
foreach (BsonDocument d in documents)
{
log.LogInformation(d.ToString());
}
}