本文介绍如何在 Azure Functions 中使用 Azure Cosmos DB for MongoDB vCore 输出绑定。
使用 Azure Cosmos DB for MongoDB (vCore) 输出绑定可将新文档写入 Azure Cosmos DB for MongoDB(vCore) 集合。
重要
Azure Cosmos DB for MongoDB (vCore) 扩展目前为预览版。
目前仅支持使用 进程内模型的 .NET 应用。
示例:
此示例显示了一个计时器触发器函数,该函数用于 CosmosDBMongoCollector
向数据库添加项:
[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);
}
这些示例引用简单的 TestClass
类型:
namespace Sample
{
public class TestClass
{
public string id { get; set; }
public string SomeData { get; set; }
}
}
特性
下表描述了属性的 CosmosDBMongoTrigger
绑定配置属性。
参数 | DESCRIPTION |
---|---|
FunctionId | (可选)触发器函数的 ID。 |
数据库名称 | 由触发器监视的数据库的名称,以供更改。 |
CollectionName | 由触发器监视的数据库中的集合的名称,以供更改。 |
ConnectionStringSetting | 应用设置或设置集合的名称,用于指定如何连接到受监视的 Azure Cosmos DB 帐户。 |
CreateIfNotExists | (可选)如果设置为 true,则在目标数据库和集合尚不存在时创建它们。 |
用法
可以使用该 CosmosDBMongo
属性在函数代码中直接获取和处理 MongoDB 客户端 :
[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());
}
}