在预编译的 C# Azure 函数中使用命令性绑定时,如何定义 Cosmos DB 数据库和集合名称?
我遵循了run.csx
C# 脚本示例使用 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