是否可以配置Azure C#函数DocumentDB属性参数?

时间:2018-01-22 13:42:07

标签: c# azure azure-cosmosdb azure-functions

我正在构建一个Azure Http触发的C#函数,其输出绑定到Cosmos DB。我的函数定义是这样的:

[FunctionName("HttpTriggerFunction")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = "myroute")]HttpRequestMessage req,
                                              [DocumentDB("database", "collection", ConnectionStringSetting = "CosmosDBConnection")] IAsyncCollector<dynamic> document,
                                              TraceWriter log)

这很好用。

但是,我希望能够在DocumentDB属性中配置数据库集合名称,但是如果我尝试这样的话:

[DocumentDB(ConfigurationManager.AppSettings["DatabaseName"], ConfigurationManager.AppSettings["CollectionName"], ConnectionStringSetting = "CosmosDBConnection")]

然后Visual Studio给我一个编译错误:

CS0182属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

有没有办法配置这些DocumentDB属性参数?

1 个答案:

答案 0 :(得分:7)

你需要这样做:

[DocumentDB("%database%", "%collection%", ConnectionStringSetting = "CosmosDBConnection")] 

然后使用相应的名称定义设置(不含%)。