Compartir a través de


Enlace de entrada 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 entrada de núcleo virtual de Azure Cosmos DB para MongoDB en Azure Functions.

El enlace de entrada de Azure Cosmos DB para MongoDB (núcleo virtual) le permite recuperar uno o varios elementos como documentos de la base de datos.

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 un enlace de entrada para ejecutar una consulta periódica en la base de datos:

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.AzureCosmosDb.Mongo;
using Microsoft.Extensions.Logging;
using MongoDB.Bson;
using MongoDB.Driver;

namespace Sample
{
    public static class Sample
    {
         [FunctionName("InputBindingSample")]
          public static async Task InputBindingRun(
            [TimerTrigger("*/5 * * * * *")] TimerInfo myTimer,
            [CosmosDBMongo("%vCoreDatabaseTrigger%", "%vCoreCollectionTrigger%", ConnectionStringSetting = "vCoreConnectionStringTrigger",
            QueryString = "%queryString%")] List<BsonDocument> docs,
            ILogger log)
          {
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

            foreach (var doc in docs)
            {
                log.LogInformation(doc.ToString());
            }
          }
           
    }
}

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.
QueryString Define la expresión de consulta de Mongo usada por el enlace de entrada devuelve documentos de la base de datos. La consulta admite parámetros de enlace.

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