Dela via


Azure Cosmos DB for MongoDB-utlösare (virtuell kärna) för Azure Functions

Den här artikeln beskriver hur du arbetar med Utlösaren för virtuell kärna i Azure Cosmos DB for MongoDB i Azure Functions. Bindningarna använder ändringsströmmar i Azure Cosmos DB:s API för MongoDB för att lyssna efter infogningar och uppdateringar.

Ändringsflödet publicerar endast nya och uppdaterade objekt. Det går för närvarande inte att titta efter borttagningsåtgärder med hjälp av ändringsströmmar.

Viktigt!

Tillägget Azure Cosmos DB for MongoDB (vCore) är för närvarande i förhandsversion.
För närvarande stöds endast .NET-appar som använder den äldre inprocessmodellen .

Exempel

Det här exemplet visar en funktion som returnerar ett enda dokument som infogas eller uppdateras:

[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());
}

Det fullständiga exemplet finns i Sample.cs på lagringsplatsen för tillägget.

Egenskaper

Den här tabellen beskriver bindningskonfigurationsegenskaperna för attributet CosmosDBMongoTrigger .

Parameter Beskrivning
FunctionId (Valfritt) ID:t för utlösarfunktionen.
DatabaseName Namnet på databasen som övervakas av utlösaren för ändringar. Krävs om inte TriggerLevel är inställt på MonitorLevel.Cluser.
CollectionName Namnet på samlingen i databasen som övervakas av utlösaren för ändringar. Obligatoriskt när TriggerLevel är inställt på MonitorLevel.Collection.
ConnectionStringSetting Namnet på en appinställning eller inställningssamling som anger hur du ansluter till det Azure Cosmos DB-konto som övervakas.
TriggerLevel Anger på vilken nivå ändringarna övervakas. Giltiga värden MonitorLevel för är: Collection, Databaseoch Cluster.

Användning

Använd parametern TriggerLevel för att ange omfånget för ändringar som övervakas.

Du kan använda CosmosDBMongo attributet för att hämta och arbeta direkt med MongoDB-klienten i funktionskoden:

[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());
    }
}