如何在Azure资源组模板中检索Bing Maps API for Enterprise的查询键?

时间:2019-04-09 13:57:08

标签: json azure-devops bing-maps azure-resource-manager

我正在研究一个ARM模板,该模板可从头开始部署整个基础架构:

  1. 资源组
  2. 应用服务计划
  3. 应用洞察力
  4. 等等...

在某个时候,我到达了编写脚本的部分,该脚本用于将我的App Service(稍后用于托管和部署Web应用)部署到我的资源组。在此之前,我已经在同一脚本中部署了BingMaps API。

我被困在为Web应用程序设置应用程序设置的部分:

"type": "Microsoft.Web/sites",
      "properties": {
        "siteConfig": {
          "appSettings": [
            {
              "name": "SomeKey",
              "value": "SomeValue"
            }, //rest of the code omitted 

我想知道如何在ARM模板中检索 BING MAPS查询键

我已经尝试过,并且感觉可能与之接近,例如:

"value": "[reference(resourceId('Microsoft.BingMaps/mapApis', variables('bingMapsName')), '2016-08-18').queryKey]"

有人这样做过吗?提前谢谢了!干杯

1 个答案:

答案 0 :(得分:0)

如果您想访问ARM模板中用于Web应用程序设置的查询键,建议您使用以下代码:

{
    "name": "appsettings",
    "type": "config",
    "apiVersion": "2015-08-01",
    "dependsOn": [
        "[concat('Microsoft.Web/sites/', variables('webSiteName'))]"
    ],
    "tags": {
        "displayName": "WebAppSettings"
    },
    "properties": {
        "key1": "[parameter('AppSetting_Key1_Value')]",
        "key2": "value2"
    }
}

,然后在template.Parmeter.jso文件中,使用Bing maps查询键的值声明键 AppSetting_Key1_Value

指定参数值

将参数添加到ARM模板中并用于填充应用程序设置后,最后一步是在用于部署的ARM模板参数文件中定义Parameter值。在Visual Studio的Azure资源组项目模板中,默认部署的Parameters文件是以“ .parameters.json”结尾的文件。 这是在本系列的前几篇文章中创建的“ WebSite.parameters.json”文件的屏幕快照,其中“ AppSetting_Key1_Value”参数设置为一个值:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "hostingPlanName": {
        "value": "WebApp1HostingPlan"
      },
      "WebApplication1PackageFolder": {
        "value": "WebApplication1"
      },
      "WebApplication1PackageFileName": {
        "value": "package.zip"
      },
      "WebApp_ConnString1": {
        "value": "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"
      },
      "AppSetting_Key1_Value": {
        "value":  "Template Value 1"
      }
    }
}

对于安全投诉解决方案,如果您不愿意在参数文件中使用密钥,则可以将所有安全密钥和连接字符串移动到Azure密钥库中。

这应该有效。希望对您有所帮助。