首页 > 解决方案 > 当帐户名称包含破折号时,ARM Tempate 无法导出密钥

问题描述

我有一个用于部署 documentdb 的 arm 模板。如果我在文档数据库部署的名称中使用破折号,但我的输出参数失败;但是,如果我在名称输出参数中不使用破折号,则成功。

给定一个 CosmosDbAccountName accountnamedev,数据库部署和密钥/端点导出就好了。

给定帐户名-dev 的 CosmosDbAccountName,数据库部署,但密钥无法导出:

下午 1:41:56 - 资源 Microsoft.DocumentDB/databaseAccounts 'accountname-dev' 失败,消息为 '{ "code": "NotFound", "message": "Request url is invalid.\r\nActivityId: c048e914-ccba- 4be1-a38f-0d8bb89020bf,Microsoft.Azure.Documents.Common/2.1.0.0" }'

我没有发现关于这是一个问题的真实描述,所以我觉得我错过了一些简单的东西,我绝对不是 ARM 专家。

    {
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "CosmosDbAccountName": {
      "type": "string"
    },
    "CosmosDbConsistencyLevel" : {
      "type": "string"
    },
    "CosmosDbConsistencyPolicyMaxIntervalInSeconds" : {
      "type" : "string"
    },
    "CosmosDbConsistencyPolicyMaxStalenessPrefix" : {
      "type" : "string"
    },
    "Location": {
        "type": "string"
      }
  },
  "variables": {
    "documentDb" : {
      "name" : "[parameters('CosmosDbAccountName')]",
      "databaseAccountOfferType" : "Standard",
      "consistencyPolicy" : {
        "defaultConsistencyLevel": "[parameters('CosmosDbConsistencyLevel')]",
        "maxIntervalInSeconds": "[parameters('CosmosDbConsistencyPolicyMaxIntervalInSeconds')]",
        "maxStalenessPrefix": "[parameters('CosmosDbConsistencyPolicyMaxStalenessPrefix')]"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "kind": "GlobalDocumentDB",
      "name": "[variables('documentDb').name]",
      "apiVersion": "2015-04-08",
      "location": "[parameters('Location')]",
      "properties": {
          "databaseAccountOfferType": "[variables('documentDb').databaseAccountOfferType]",
          "consistencyPolicy": "[variables('documentDb').consistencyPolicy]",
          "locations":[
            {
              "locationName": "[parameters('Location')]",
              "provisioningState": "Succeeded",
              "failoverPriority": 0
            }
          ],
          "capabilities":[]
      },
      "dependsOn": []
    }
  ],
  "outputs": {
    "endPoint": {
      "type": "string",
      "value":"[concat('https://', variables('documentDb').name, '.documents.azure.com:443/')]"
    },
    "primaryKey": {
      "type":"string",
      "value":"[listKeys(resourceId('Microsoft.DocumentDB/databaseAccounts', variables('documentDb').name), providers('Microsoft.DocumentDB','databaseAccounts').apiVersions[0]).primaryMasterKey]"
    },
    "instanceName": {
      "type":"string",
      "value":"variables('documentDb').name"
    }
  }
}

标签: azurearm-templateazure-template

解决方案


在这种情况下,错误是由于未部署 cosmosdb 帐户


推荐阅读