Compartir a través de


Desencadenador de Azure Cosmos DB para MongoDB (núcleo virtual) para Azure Functions

En este artículo se explica cómo trabajar con el desencadenador de núcleo virtual de Azure Cosmos DB para MongoDB en Azure Functions. Los enlaces usan flujos de cambio en la API de Azure Cosmos DB para MongoDB para escuchar inserciones y actualizaciones.

La fuente de cambios solo publica elementos nuevos y actualizados. Actualmente no se admite la inspección de las operaciones de eliminación mediante flujos de cambios.

Importante

La extensión Azure Cosmos DB para MongoDB (núcleo virtual) está actualmente en versión preliminar.
En este momento, solo se admiten las aplicaciones de .NET que usan el modelo en proceso .

Ejemplo

En este ejemplo se muestra una función que devuelve un único documento que se inserta o actualiza:

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

Para obtener el ejemplo completo, consulte Sample.cs en el repositorio de extensiones.

Atributos

En esta tabla se describen las propiedades de configuración de enlace del CosmosDBMongoTrigger atributo .

Parámetro Descripción
FunctionId (Opcional) Identificador de la función de desencadenador.
DatabaseName Nombre de la base de datos supervisada por el desencadenador para ver los cambios. Obligatorio a menos que TriggerLevel se establezca en MonitorLevel.Cluser.
CollectionName Nombre de la colección en la base de datos que supervisa el desencadenador para ver los cambios. Obligatorio si TriggerLevel se ha establecido en MonitorLevel.Collection.
ConnectionStringSetting Nombre de una configuración de aplicación o colección de configuraciones que especifica cómo conectarse a la cuenta de Azure Cosmos DB que se va a supervisar.
TriggerLevel Indica el nivel en el que se supervisan los cambios. Los valores válidos de MonitorLevel son: Collection, Databasey Cluster.

Uso

Use el TriggerLevel parámetro para establecer el ámbito de los cambios que se supervisan.

Puede usar el CosmosDBMongo atributo para obtener y trabajar directamente con el cliente de MongoDB en el código de función:

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