部署Azure功能应用程序设置的最佳方法

时间:2018-03-27 14:01:29

标签: azure azure-functions

我正在寻找一种方便的方法来部署使用Octopus deploy(或任何自动部署工具)部署的Azure功能的应用程序设置。

从Microsoft的指导看来,azure函数似乎不应该使用传统上在部署时转换的配置文件来设置特定于环境的应用程序配置。建议使用local.settings.json使用azure工具测试本地计算机上的功能时,但在部署到azure功能应用程序时没有使用文件。

Microsoft为azure函数提供的替代方案是一组通过门户界面配置的环境变量。当您通过门户界面手动设置所有内容时,此设置可以正常工作,但是当从像Octopus部署的自动发布管理工具部署时,这将变得非常痛苦。

到目前为止,我遇到了几种方法:

  1. 使用可以转换的ARM模板部署设置 部署时间。
  2. 部署后将设置发布到Kudu REST API
  3. 使用各种powershell命令替换应用设置
  4. 这些方法中的每一种都将替换所有应用程序设置,因为无法添加/删除,无需编写一些自定义代码来获取所有设置,进行比较和更新。这非常麻烦,因为有些应用程序设置并非特定于我的应用程序,并且是功能主机所必需的。

    我可以通过使用函数进行转换和部署来添加我自己的配置文件,这肯定比我遇到的任何其他方法更容易,但感觉就像是打算如何生成函数。

    有没有人有一个干净简单的方法将应用程序设置部署到azure功能应用程序?

1 个答案:

答案 0 :(得分:0)

我认为ARM模板是最难维护的代码类型之一,因为它们的大小,冗长和参数化值很难。我在Azure CLI方面取得了巨大成功。它使用简单的命令,devs和devops都可以理解。以下是使用Azure CLI执行此操作的方法。注意:您需要首先在构建框上安装Azure CLI。

以下代码可以在Windows Batch脚本,bash脚本甚至Powershell脚本下执行。

$myAppSettings1 = "myKey=myValue"
az functionapp config appsettings set --resource-group $rgName --name $functionAppName1  --settings $myAppSettings1