如何使用 azure devops 应用服务部署任务将函数应用设置部署到 azure 函数应用

saj*_*jid 5 azure azure-devops azure-function-app

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

我正在寻找一种简洁的方法(如果可能)将应用程序设置添加到函数应用程序,作为函数应用程序部署过程的一部分。

PS 我正在使用 terraform 创建函数应用程序,对使用更混乱的 ARM 模板解决方案不感兴趣。

Lev*_*SFT 7

如果要将应用设置添加到函数应用作为函数应用部署任务的一部分。您可以使用变量来使其更容易维护。您可以检查以下步骤。

在管道变量中定义 appsettings 的键/值。 在此输入图像描述

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

variables:
  key1: value1
  key2: value2
Run Code Online (Sandbox Code Playgroud)

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

- task: AzureRmWebAppDeployment@4
  inputs:
    AppSettings: '-key1 $(key1) -key2 $(key2)'
Run Code Online (Sandbox Code Playgroud)

另一种解决方法是使用Azure 应用服务设置任务将应用设置添加到函数应用。(如果应用服务设置任务用于添加appsettings,则不需要为应用部署任务定义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
        }
Run Code Online (Sandbox Code Playgroud)

因此,通过使用上述解决方法,您只需更改管道变量中的值即可更改函数应用程序的应用程序设置。

您还可以使用 terraform 将应用程序设置添加到函数应用程序。请查看本教程使用 Terraform 和 Azure Pipelines 在云中自动化基础架构部署中的详细步骤。


saj*_*jid 5

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

我认为这应该足以维护功能应用程序的 appSettings。

下面是截图

在此输入图像描述