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

Gle*_*mas 6 azure azure-functions

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

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

Microsoft为Azure函数提供的替代方法是通过门户界面配置的一组环境变量。当您通过门户界面手动设置所有内容时,此设置可以正常工作,但是从像Octopus部署这样的自动发布管理工具进行部署时,这确实很麻烦。

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

  1. 使用可在部署时转换的ARM模板来部署设置。
  2. 部署后将设置发布到Kudu REST API
  3. 使用各种Powershell命令替换应用程序设置

这些方法中的每一种都将替换所有应用程序设置,因为没有添加/删除的方法,而无需编写一些自定义代码来获取,比较和更新所有设置。这非常麻烦,因为有些应用程序设置不是我的应用程序专用的,而是功能主机所必需的。

我可以通过函数的转换和部署来添加自己的配置文件,这肯定比我遇到的任何其他方法都容易,但是感觉与打算如何生成函数的原理背道而驰。

有没有人有一种干净方便的方法来将应用程序设置部署到azure功能应用程序?

小智 3

在我看来,ARM 模板是最难维护的代码类型之一,因为它们的规模庞大、冗长且难以参数化值。我在 Azure CLI 方面取得了巨大成功。它使用开发人员和开发人员都可以理解的简单命令。以下是如何使用 Azure CLI 执行此操作。注意:您需要首先在构建箱上安装 Azure CLI。

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

$myAppSettings1 = "myKey=myValue"
az functionapp config appsettings set --resource-group $rgName --name $functionAppName1  --settings $myAppSettings1
Run Code Online (Sandbox Code Playgroud)