Compartir a través de


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

En este artículo se explica cómo trabajar con el enlace de salida de núcleo virtual de Azure Cosmos DB para MongoDB en Azure Functions.

El enlace de salida de Azure Cosmos DB para MongoDB (núcleo virtual) le permite escribir un nuevo documento en una colección de Azure Cosmos DB para MongoDB(núcleo virtual).

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 de desencadenador de temporizador que usa CosmosDBMongoCollector para agregar un elemento a la base de datos:

[FunctionName("OutputBindingSample")]
    public static async Task OutputBindingRun(
    [TimerTrigger("*/5 * * * * *")] TimerInfo myTimer,
    [CosmosDBMongo("%vCoreDatabaseBinding%", "%vCoreCollectionBinding%", ConnectionStringSetting = "vCoreConnectionStringBinding")] IAsyncCollector<TestClass> CosmosDBMongoCollector,
    ILogger log)
{
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

    TestClass item = new TestClass()
    {
        id = Guid.NewGuid().ToString(),
        SomeData = "some random data"
    };
    await CosmosDBMongoCollector.AddAsync(item);
} 

Los ejemplos hacen referencia a un tipo de TestClass simple:

namespace Sample
{
    public class TestClass
    {
        public string id { get; set; }
        public string SomeData { get; set; }
    }
}

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.
CollectionName Nombre de la colección en la base de datos que supervisa el desencadenador para ver los cambios.
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.
CreateIfNotExists (Opcional) Cuando se establece en true, crea la base de datos de destino y la colección cuando aún no existen.

Uso

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