如何使用Azure Devops App Service部署任务将功能应用程序设置部署到Azure功能应用程序

时间:2020-05-04 17:49:57

标签: azure azure-devops azure-function-app

.net核心天蓝色功能应用程序的local.settings.json文件中有大约20多个(并且正在不断增长)应用程序设置。将这些作为门户的一部分添加到门户中的功能应用程序的唯一方法是使用键值格式的所有应用程序设置的长串字符串,该字符串非常混乱,容易出错且难以维护。

我正在寻找一种可能的方法,以将功能设置添加到功能应用程序中,作为功能应用程序部署过程的一部分。

P.S。我正在使用terraform创建功能应用,而对使用更混乱的ARM模板解决方案不感兴趣。

2 个答案:

答案 0 :(得分:1)

如果要作为功能应用程序部署任务的一部分将应用程序设置添加到功能应用程序中。您可以使用变量使其更易于维护。您可以检查以下步骤。

在管道变量中定义appsettings的键/值。 enter image description here

您还可以在YAML文件中定义变量:

variables:
  key1: value1
  key2: value2

然后在应用程序服务部署任务的appsettings字段中引用变量

- task: AzureRmWebAppDeployment@4
  inputs:
    AppSettings: '-key1 $(key1) -key2 $(key2)'

另一种解决方法是使用 Azure App Service Settings task 将应用设置添加到功能应用中。 (如果使用“应用服务设置”任务添加应用设置,则无需为应用部署任务定义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的应用设置。

您还可以使用terraform向功能应用程序添加应用程序设置。请查看本教程Automating infrastructure deployments in the Cloud with Terraform and Azure Pipelines中的详细步骤。

答案 1 :(得分:1)

在寻找解决方案时,我在appsettings框旁边找到了这个新可用的省略号按钮。单击它会打开一个新对话框,我可以在其中以表格格式(类似于变量组)在键值对中添加应用程序设置,每个应用程序位于单独的行中并且易于维护(每个设置都可以删除)。单击“确定”后,它将生成一个包含所有参数的字符串。

我认为这足以维护功能app的appSettings。

下面是屏幕截图

enter image description here