参数化功能应用的 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# 应用程序中未参数化一样

基于阿里云 DNS API 实现的 DDNS 工具

从 VS 2017 Azure 函数开发中的 local.settings.json 读取值

Settings.json到Heroku配置

Azure的功能 - function.json位于何处?

如何将 local.settings.json 从 azure 函数移植到 .NET 核心 Web 项目?