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

时间:2017-05-15 06:18:21

标签: azure azure-functions azure-cosmosdb

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

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

在我的情况下,它现在是DEV数据库..但当然会有其他环境 - 有没有办法可以通过功能应用程序的应用程序设置获取数据库名称?

[FunctionName("TimerTriggeredFunction")]
public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, TraceWriter log,
                       [DocumentDB("my-db-DEV", "MyCollection")]  IEnumerable<dynamic> inputDocuments)

2 个答案:

答案 0 :(得分:4)

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

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

然后将在运行时解析这些应用程序设置。我们的文档here中的“解析应用设置”部分更详细地解释了这一点。

答案 1 :(得分:1)

我忽略了可以通过我的Azure功能项目的local.settings.json文件指定Azure Cosmos数据库连接字符串的事实。

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

[DocumentDB("my-db", "MyCollection")] IEnumerable<dynamic> inputDocuments

并在默认密钥local.settings.json

下的AzureWebJobsDocumentDBConnectionString中提供连接字符串