Udostępnij za pośrednictwem


Wyzwalacz usługi Azure Cosmos DB dla bazy danych MongoDB (rdzeń wirtualny) dla usługi Azure Functions

W tym artykule wyjaśniono, jak pracować z wyzwalaczem rdzeni wirtualnych usługi Azure Cosmos DB dla bazy danych MongoDB w usłudze Azure Functions. Powiązania używają strumieni zmian w interfejsie API usługi Azure Cosmos DB dla bazy danych MongoDB do nasłuchiwania wstawiania i aktualizacji.

Kanał informacyjny zmian publikuje tylko nowe i zaktualizowane elementy. Obserwowanie operacji usuwania przy użyciu strumieni zmian nie jest obecnie obsługiwane.

Ważne

Rozszerzenie Usługi Azure Cosmos DB dla bazy danych MongoDB (rdzeń wirtualny) jest obecnie dostępne w wersji zapoznawczej.
Obecnie obsługiwane są tylko aplikacje platformy .NET korzystające z modelu przetwarzania .

Przykład

W tym przykładzie przedstawiono funkcję zwracającą pojedynczy dokument wstawiony lub zaktualizowany:

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

Aby zapoznać się z kompletnym przykładem, zobacz Sample.cs w repozytorium rozszerzeń.

Atrybuty

W tej tabeli opisano właściwości konfiguracji powiązania atrybutu CosmosDBMongoTrigger .

Parametr Opis
Identyfikator funkcji (Opcjonalnie) Identyfikator funkcji wyzwalacza.
Nazwa bazy danych Nazwa bazy danych monitorowanej przez wyzwalacz pod kątem zmian. Wymagane, chyba że TriggerLevel ustawiono wartość MonitorLevel.Cluser.
CollectionName Nazwa kolekcji w bazie danych monitorowanej przez wyzwalacz pod kątem zmian. Wymagane gdy TriggerLevel jest ustawione na MonitorLevel.Collection.
ConnectionStringSetting Nazwa ustawienia aplikacji lub kolekcji ustawień, która określa sposób nawiązywania połączenia z monitorowanym kontem usługi Azure Cosmos DB.
TriggerLevel Wskazuje poziom, na którym są monitorowane zmiany. Prawidłowe wartości MonitorLevel to: Collection, Databasei Cluster.

Zastosowanie

Użyj parametru , TriggerLevel aby ustawić zakres monitorowanych zmian.

Możesz użyć atrybutu CosmosDBMongo , aby uzyskać i pracować bezpośrednio z klientem bazy danych MongoDB w kodzie funkcji:

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