在预编译的 C# Azure 函数中使用命令性绑定时,如何定义 Cosmos DB 数据库和集合名称?



在预编译的 C# Azure 函数中使用命令性绑定时,如何定义 Cosmos DB 数据库和集合名称?

我遵循了run.csxC# 脚本示例使用 Azure 函数和 Cosmos DB 存储非结构化数据,它工作正常。

尝试使用预编译的 C# 函数执行类似操作,并注意到生成的function.json缺少数据库和集合名称。

得到了方法归因于DocumentDB...

[HttpTrigger(
AuthorizationLevel.Function, 
"get", "post", 
Route = null)] HttpRequestMessage req,
[DocumentDB(
ConnectionStringSetting = "cflogdev_DOCUMENTDB", 
CreateIfNotExists = true,
PartitionKey = "user" )] out object logDocument,
ILogger log)

但是智能感知没有将数据库和集合作为可设置的值,但是它确实对它们进行了过载......

我已经检查了文档数据库 它将它们作为第二个构造函数的一部分。

但是如何设置它们呢?

DocumentDBAttribute(databaseName, collectionName)构造函数在我使用的版本中可用(1.1.0-beta1(。这些属性是只读的,因此无法从默认构造函数设置它们。

这解决了它...

public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req,
[DocumentDB(
"logDatabase",
"logCollection",
ConnectionStringSetting = "cflogdev_DOCUMENTDB",
//PartitionKey = "user",
CreateIfNotExists = true
)] out object logDocument,
ILogger log)

我使用的是 1.0.0 版Microsoft.Azure.WebJobs.Extensions.DocumentDB

最新更新