在Azure中管理特定于环境的应用程序设置的最佳方法是什么?

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

我当前的设置将特定于环境的应用程序设置存储在ARM参数文件的一部分中。因此,ARM参数文件的结构如下所示:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "deploymentSpecificValues": {
      "value": {
        "subscriptionId": "0ce7bbfc-9fa4-46b5-8f38-303db907fd89",
        "environmentName": "dev",
        "azureBlobUri": "https://mytestblob.blob.core.windows.net/"
      }
    },
    "regions": {
      "value": [
        {
          "location": "West US",
          "additionalRegionData": "abc"
        },
        {
          "location": "West US 2",
          "additionalRegionData": "pqr"
        }
      ]
    },
    "webAppInfo": {
      "value": {
        "appName": "mytestapp",
        "appSettings": {
          "SqlServerConnectionString": "mySqlServerConnectionString",
          "Service1Url": "https://www.service1url.com",
          "Service2Url": "https://www.service2url.com"
        }
      }
    },
    "sku": {
      "value": "Dynamic"
    }
  }
}

注意上面代码的webAppInfo节点下的appSettings。每个环境都有自己的参数文件,如上。我相信,应用程序设置的数量会随着时间的推移而不断增长,并且可能会使参数文件杂乱无章。

问题:

  1. 这是管理应用设置的最佳实践吗?
  2. 如果以上问题的答案为否,那么在这种情况下处理应用设置的最佳实践是什么?
azure configuration azure-web-sites azure-resource-manager
2个回答
1
投票

一些想法:

  • 您正在做的事情很好,但是您是对的,这是正确的:1)它可能在参数文件中变得笨拙,并且2)通常这些参数文件在源代码控制中,因此请确保其中包含的内容来源。
  • 检查在部署时是否有可从部署中获取的值,例如可以从subscription()函数返回subscriptionId(假设您想要部署到的订阅ID)。

Azure中有两个资源可用于存储“ config”-可以稍有不同地使用它们。

  1. KeyVault可以安全地存储任意字符串(例如json的blob),并且可以在部署时动态地(通过参数)引用它们。

https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/key-vault-parameter

  1. App-Config是用于在这种情况下存储配置值的资源-您可以使用listKeyValue()模板函数将值拉出配置存储区

https://docs.microsoft.com/en-us/azure/azure-app-configuration/quickstart-resource-managerhttps://github.com/Azure/azure-quickstart-templates/tree/master/101-app-configuration

那个帮助?


0
投票

是的,我认为这是在这样的ARM模板中管理应用程序设置的好习惯。

但是,如果您只想添加/更新设置,建议使用Azure门户或Azure CLI。

参考:

az webapp config appsettings

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