参数化功能应用的 settings.json 以进行发布
Posted
技术标签:
【中文标题】参数化功能应用的 settings.json 以进行发布【英文标题】:Parameterise settings.json of Function app for publish 【发布时间】:2017-11-17 11:22:13 【问题描述】:为了概念验证,我想使用不同的 connectionString
值将 Azure 函数从 Visual Studio 发布到 Azure。但我不知道怎么做。
在FunctionApp
中有一个local.settings.json
文件。我已将connectionString
添加到我的本地数据库中。
local.settings.json
文件:
"IsEncrypted": false,
"Values":
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": ""
,
"ConnectionStrings":
"DefaultConnection": "Data Source=.\;Initial Catalog=declapp;Integrated Security=False;User ID=*****;Password=*****;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
我可以使用生成的发布配置文件将此FunctionApp
发布到 Azure,但我在 Azure 中有一个数据库,供部署的 FunctionApp
使用。我第一次必须将connectionString
添加到 Azure 门户中的 FunctionApp。但是当connectionString
需要更改时,我只能在 Azure 门户中进行。
我想知道如何在下面的发布部分添加/更改connectionString
。我怎样才能做到这一点?
"IsEncrypted": false,
"Values":
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": ""
,
"ConnectionStrings":
"DefaultConnection": "<Azure sql connectionstring>"
明确一点:我知道在源代码控制中包含(生产)值是一种不好的做法,但这是为了简单的概念证明,我不想仅仅为此定义 CI/CD 管道。
【问题讨论】:
【参考方案1】:local.settings.json
仅用于本地开发。在 Azure 中,这些值将从函数应用的应用设置中获取。
您可以设置此设置,例如通过门户、Azure CLI (example)、ARM 模板 (example) 或来自 local.app.settings
(func azure functionapp publish MyApp --publish-settings-only
) 的 func CLI。
【讨论】:
那么我需要在函数项目中添加一个App Settings文件吗?或者我可以创建一个tst.settings.json
并在发布配置文件中使用它吗?
对于概念验证,我只需将它们设置在门户中。添加了更多带有答案链接的选项。
这也是我们正在跟踪改进的地方github.com/Azure/Azure-Functions/issues/595以上是关于参数化功能应用的 settings.json 以进行发布的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 参数化查询的功能就像它在 C# 应用程序中未参数化一样