Delen via


Azure Cosmos DB voor MongoDB-trigger (vCore) voor Azure Functions

In dit artikel wordt uitgelegd hoe u kunt werken met de Azure Cosmos DB for MongoDB vCore-trigger in Azure Functions. De bindingen maken gebruik van wijzigingsstromen in de API van Azure Cosmos DB voor MongoDB om te luisteren naar invoegingen en updates.

De wijzigingenfeed publiceert alleen nieuwe en bijgewerkte items. Het controleren op verwijderingsbewerkingen met behulp van wijzigingsstromen wordt momenteel niet ondersteund.

Belangrijk

De Azure Cosmos DB for MongoDB-extensie (vCore) is momenteel beschikbaar als preview-versie.
Op dit moment worden alleen .NET-apps die gebruikmaken van het verouderde procesmodel ondersteund.

Voorbeeld

In dit voorbeeld ziet u een functie die één document retourneert dat is ingevoegd of bijgewerkt:

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

Zie Sample.cs in de extensieopslagplaats voor het volledige voorbeeld.

Kenmerken

In deze tabel worden de bindingsconfiguratie-eigenschappen van het CosmosDBMongoTrigger kenmerk beschreven.

Kenmerk Beschrijving
FunctionId (Optioneel) De id van de triggerfunctie.
DatabaseName De naam van de database die wordt bewaakt door de trigger voor wijzigingen. Vereist, tenzij TriggerLevel ingesteld op MonitorLevel.Cluser.
CollectionName De naam van de verzameling in de database die wordt bewaakt door de trigger voor wijzigingen. Vereist wanneer TriggerLevel is ingesteld op MonitorLevel.Collection.
ConnectionStringSetting De naam van een app-instelling of verzameling die aangeeft hoe verbinding moet worden gemaakt met het Azure Cosmos DB-account dat wordt bewaakt.
TriggerLevel Geeft het niveau aan waarop wijzigingen worden bewaakt. Geldige waarden MonitorLevel zijn: Collection, Databaseen Cluster.

Gebruik

Gebruik de TriggerLevel parameter om het bereik van wijzigingen in te stellen dat wordt bewaakt.

U kunt het CosmosDBMongo kenmerk gebruiken om rechtstreeks met de MongoDB-client in uw functiecode te verkrijgen en te werken:

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