azure - 当帐户名称包含破折号时,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"
}
}
}
解决方案
在这种情况下,错误是由于未部署 cosmosdb 帐户
推荐阅读
- rust - 用于测试的抽象操作系统环境变量
- java - 合并对象内的地图java 8
- python - 当我在 python 中有 8 个逻辑核心时,将我的程序分成 8 个单独的进程是最好的方法(性能方面)吗?
- typescript - 将嵌套接口映射到以路径为键的单一类型,同时保留类型
- python - python imagedownloader,不能作为类在其他文件中工作
- reactjs - 试图在反应中使用从 const 到类的东西
- java - 使用 Optional.ofNullable() 简化条件
- haskell - 如何对具有重复键的元组的键/值列表中的值求和?
- c++ - 我可以在没有首先默认构造所述成员的情况下将参数放入类成员中吗?
- python - 使用 Tkinter 显示多个视频