在我的.net core azure功能应用的local.settings.json文件中,我有大约20多个(而且还在不断增加)应用设置。作为部署的一部分,将这些添加到门户中的函数应用的唯一方法是使用一个长长的键值格式的所有appsettings的连接字符串,这非常混乱,容易出错,而且难以维护。
我正在寻找一种整洁的方法,如果可能的话,将appsettings添加到功能应用中,作为功能应用部署过程的一部分。
P.S.我正在使用terraform来创建功能应用,对使用ARM模板解决方案不感兴趣,因为后者更乱。
如果你想把appsettings作为函数app部署任务的一部分添加到函数app中。你可以使用变量来让它更容易维护。你可以查看下面的步骤。
你也可以在YAML文件中定义变量。
variables:
key1: value1
key2: value2
然后参考app服务部署任务的appsettings字段中的变量。
- task: AzureRmWebAppDeployment@4
inputs:
AppSettings: '-key1 $(key1) -key2 $(key2)'
另一个变通方法是使用 Azure 应用服务设置任务 来添加appsettings到功能应用中。(如果使用App服务设置任务来添加appsettings,则不需要为app部署任务定义appSettings字段)
- task: AzureAppServiceSettings@0
displayName: Azure App Service Settings
inputs:
azureSubscription: $(azureSubscription)
appName: $(FunctionApp_Name)
appSettings: |
[
{
"name": "key1",
"value": "$(Key1)",
"slotSetting": false
},
{
"name": "key2",
"value": "$(Key2)",
"slotSetting": false
},
{
"name": "MYSQL_DATABASE_NAME",
"value": "$(DB_Name)",
"slotSetting": false
}
所以通过以上的变通方法,你只需要改变管道中的变量值就可以改变函数app的appsettings。
你也可以使用terraform来为你的函数app添加appsettings。请查看本教程中的详细步骤。利用Terraform和Azure管道在云中自动部署基础设施。.