You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ARM模板中获取Bing Maps企业版API查询密钥?

解决ARM模板中获取Bing Maps查询密钥的问题

我刚帮几个朋友处理过类似的ARM模板配置问题,你的写法方向是对的,但大概率是依赖关系没配置到位,或者有一些细节没注意到。下面给你一步步梳理解决方案:

核心问题分析

你尝试的reference语法本身没问题,但ARM模板是并行部署资源的,如果Web应用在Bing Maps资源完全创建好之前就尝试读取它的queryKey,就会出现“找不到资源”或者“属性不存在”的错误。所以关键是要确保Web应用(或它的应用设置)明确依赖Bing Maps资源。

完整可行的配置示例

我把相关的模板片段整理出来,你可以直接参考:

1. 先定义变量(按需调整)

"variables": {
  "bingMapsName": "my-bingmaps-resource",
  "webAppName": "my-webapp",
  "appServicePlanName": "my-appservice-plan"
}

2. 部署Bing Maps资源

{
  "type": "Microsoft.BingMaps/mapApis",
  "apiVersion": "2016-08-18",
  "name": "[variables('bingMapsName')]",
  "location": "[resourceGroup().location]",
  "sku": {
    "name": "S1" // 这里根据你的需求选择SKU
  },
  "properties": {}
}

3. 部署Web应用并引用查询密钥

重点是在Web应用的dependsOn里加上Bing Maps资源的ID,确保它等Bing Maps部署完成后再启动:

{
  "type": "Microsoft.Web/sites",
  "apiVersion": "2022-03-01",
  "name": "[variables('webAppName')]",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
    "[resourceId('Microsoft.BingMaps/mapApis', variables('bingMapsName'))]" // 关键:添加这个依赖
  ],
  "properties": {
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
  },
  "resources": [
    {
      "type": "config",
      "apiVersion": "2022-03-01",
      "name": "appsettings",
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', variables('webAppName'))]"
      ],
      "properties": {
        // 这里就是你要的引用写法,和你之前的一致,但现在有了依赖保障
        "BING_MAPS_QUERY_KEY": "[reference(resourceId('Microsoft.BingMaps/mapApis', variables('bingMapsName')), '2016-08-18').queryKey]"
      }
    }
  ]
}

额外注意事项

  • 如果你的Bing Maps资源部署在不同的资源组或订阅里,需要把resourceId补全参数:
    resourceId('your-subscription-id', 'target-resource-group', 'Microsoft.BingMaps/mapApis', variables('bingMapsName'))
    
  • 确保reference里的API版本和Bing Maps资源定义的apiVersion完全一致(都是2016-08-18),版本不匹配会导致属性读取失败。
  • 部署后可以在Azure门户的Web应用“配置 > 应用程序设置”里验证密钥是否正确加载。

排查步骤(如果还是报错)

  1. 先检查Bing Maps资源是否部署成功,在门户里进入该资源,查看“密钥和终结点”确认queryKey存在。
  2. 查看ARM模板的部署日志,错误信息会明确告诉你是资源未找到,还是属性不存在,根据提示调整。

内容的提问来源于stack exchange,提问作者ystvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:59:24