Azure DocumentDB trigger for Azure Functions

Important

Azure DocumentDB拡張は現在プレビュー中です。 現時点では、 従来のインプロセス モデル を使用する .NET アプリのみがサポートされています。

Azure DocumentDBトリガーは、DocumentDBコレクション内の挿入や更新の変更ストリームを監視します。 この記事では、Azure Functionsでトリガーの設定と使用方法、コード例や属性パラメータを解説し、リアルタイムでデータ変更に対応できるようサポートします。

フィードは新規および更新された項目のみを公開しています。 変更ストリームを使った削除操作の監視は現在サポートされていません。

[前提条件]

例示

この例は、Azure DocumentDBのコレクションに対する挿入または置換操作によってトリガーされる関数を示しています。 関数は変更された文書の本文をログに記録します。

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.WebJobs.Extensions.AzureCosmosDb.Mongo;
using MongoDB.Bson;
using MongoDB.Driver;

public static class DocumentDBTrigger
{
    [FunctionName(nameof(DocumentDBTrigger))]
    public static void Run(
        [CosmosDBMongoTrigger(databaseName: "<database-name>",
                        collectionName: "<collection-name>",
                        ConnectionStringSetting = "AZURE_DOCUMENTDB_CONNECTION_STRING")]
        ChangeStreamDocument<BsonDocument> change,
        ILogger logger)
    {
        logger.LogInformation("C# Azure DocumentDB trigger function processed a change.");

        logger.LogInformation($"{change.FullDocument}");
    }
}

Attributes

この表は、 CosmosDBMongoTrigger 属性のバインディング構成特性を記述しています。

パラメーター Description
FunctionId (任意)トリガー関数のIDです。
DatabaseName 変更のトリガーで監視されるデータベースの名前。 有効な値が必要ですが、 TriggerLevel が MonitorLevel.Clusterに設定されている場合は例外です。 それ以外の場合は空文字列を供給できます。
CollectionName データベース内のコレクション名は、変更のトリガーによって監視されます。 有効な値が必要ですが、 TriggerLevel が MonitorLevel.Database または MonitorLevel.Clusterに設定されている場合は例外です。 それ以外の場合は空文字列を供給できます。
ConnectionStringSetting Azure DocumentDBクラスタへの接続方法を指定するアプリの設定または設定コレクションの名前です。
TriggerLevel 変化がどのレベルで監視されているかを示します。 有効な MonitorLevel 値は、 Collection、 Database、 Clusterです。

Usage

TriggerLevelパラメータを使って監視する変更の範囲を設定します。

[FunctionName(nameof(DocumentDBTrigger))]
public static void Run(
    [CosmosDBMongoTrigger(databaseName: "",
                    collectionName: "",
                    ConnectionStringSetting = "<name-of-app-setting>",
                    TriggerLevel = MonitorLevel.Cluster)]
    ChangeStreamDocument<BsonDocument> change,
    ILogger logger)
{
    logger.LogInformation("C# Azure DocumentDB trigger function processed a change.");

    logger.LogInformation($"{change.FullDocument}");
}