Azure函数绑定属性-数据库名称设置-VS2017预览工具

Azure函数绑定属性-数据库名称设置-VS2017预览工具,azure,azure-functions,azure-cosmosdb,Azure,Azure Functions,Azure Cosmosdb,我正在VS2017预览版中使用Azure功能项目的新工具,并将一些功能从Azure门户移植到新项目中 我正在绑定到Azure Document DB—它工作正常,但是当我使用DocumentDB属性时,我必须提供数据库名称作为第一个参数 在我的例子中,现在是DEV数据库。。但当然还有其他环境-有没有办法通过函数应用程序的应用程序设置获取数据库名称 [FunctionName("TimerTriggeredFunction")] public static void Run([TimerTrigg

我正在VS2017预览版中使用Azure功能项目的新工具,并将一些功能从Azure门户移植到新项目中

我正在绑定到Azure Document DB—它工作正常,但是当我使用
DocumentDB
属性时,我必须提供数据库名称作为第一个参数

在我的例子中,现在是DEV数据库。。但当然还有其他环境-有没有办法通过函数应用程序的应用程序设置获取数据库名称

[FunctionName("TimerTriggeredFunction")]
public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, TraceWriter log,
                       [DocumentDB("my-db-DEV", "MyCollection")]  IEnumerable<dynamic> inputDocuments)
[FunctionName(“TimerTriggeredFunction”)]
公共静态无效运行([TimerTrigger(“0*/5****”)TimerInfo myTimer,TraceWriter日志,
[DocumentDB(“my db DEV”、“MyCollection”)]IEnumerable inputDocuments)

我忽略了一个事实,Azure Cosmos DB连接字符串可以通过我的Azure函数项目的
local.settings.json
文件指定

在这里,我将为目标环境提供适当的连接字符串。然后,我可以在这些帐户中使用一致命名的数据库和集合,这意味着函数签名在所有环境中都是正确的

[DocumentDB(“my db”、“MyCollection”)]IEnumerable inputDocuments


并在默认键下的
local.settings.json
中提供连接字符串,
AzureWebJobsDocumentDBConnectionString

是的,您可以使用应用设置的
%%
自动解析语法为这些值使用应用设置。例如,如果您添加了名为
DB_DEV
COLLECTION_DEV
的应用程序设置(在门户中或在本地框中运行时),则可以在属性中引用这些设置,如下所示:

[DocumentDB("%DB_DEV%", "%COLLECTION_DEV%")]

这些应用程序设置将在运行时解析。我们文档中的“解析应用程序设置”部分对此进行了更详细的解释。

为什么要在应用程序设置中使用
local.Settings.json
,而不是在应用程序服务中使用应用程序设置?这样,您的
local.settings.json将不包含任何敏感信息,您的连接字符串将作为环境变量进行访问。谢谢Chris-我已通过门户在应用程序设置中设置了这些值,以便在部署函数时使用。通过VS2017预览在本地运行时,是否有比使用
local.settings.json
更好的方法访问这些设置?请确保在项目中引用了
Microsoft.Azure.WebJobs.Extensions.DocumentDB
。否则,将找不到此属性。一分钟前偶然发现的