如何使用 azure devops 应用服务部署任务将功能应用设置部署到 azure 功能应用上

问题描述 投票:0回答:1

在我的.net core azure功能应用的local.settings.json文件中,我有大约20多个(而且还在不断增加)应用设置。作为部署的一部分,将这些添加到门户中的函数应用的唯一方法是使用一个长长的键值格式的所有appsettings的连接字符串,这非常混乱,容易出错,而且难以维护。

我正在寻找一种整洁的方法,如果可能的话,将appsettings添加到功能应用中,作为功能应用部署过程的一部分。

P.S.我正在使用terraform来创建功能应用,对使用ARM模板解决方案不感兴趣,因为后者更乱。

azure azure-devops azure-function-app
1个回答
0
投票

如果你想把appsettings作为函数app部署任务的一部分添加到函数app中。你可以使用变量来让它更容易维护。你可以查看下面的步骤。

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

你也可以在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管道在云中自动部署基础设施。.


0
投票

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

我想这样应该可以很好的维护功能应用的appSettings了。

下面是截图

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.