当帐户名称有破折号时,ARM 模板无法导出密钥
ARM Tempate Fails to Export Keys When Account Name Has a Dash
我有一个用于部署 documentdb 的 arm 模板。如果我在文档数据库部署的名称中使用破折号,但我的输出参数失败;但是,如果我在名称输出参数中不使用破折号,则成功。
给定 accountnamedev 的 CosmosDbAccountName,数据库部署和密钥/端点导出就好了。
给定 CosmosDbAccountName accountname-dev,数据库部署,但密钥无法导出:
1:41:56 PM - Resource Microsoft.DocumentDB/databaseAccounts 'accountname-dev' failed with message '{
"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"
}
}
}
在这种情况下,错误是由于未部署 cosmosdb 帐户造成的
我有一个用于部署 documentdb 的 arm 模板。如果我在文档数据库部署的名称中使用破折号,但我的输出参数失败;但是,如果我在名称输出参数中不使用破折号,则成功。
给定 accountnamedev 的 CosmosDbAccountName,数据库部署和密钥/端点导出就好了。
给定 CosmosDbAccountName accountname-dev,数据库部署,但密钥无法导出:
1:41:56 PM - Resource Microsoft.DocumentDB/databaseAccounts 'accountname-dev' failed with message '{ "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"
}
}
}
在这种情况下,错误是由于未部署 cosmosdb 帐户造成的