#azure #deployment #arm-template
#azure #развертывание #arm-шаблон
Вопрос:
Я пытаюсь добавить политику доступа к KeyVault с помощью шаблона Arm, но я получаю сообщение об ошибке «В запросе найдено неверное содержимое JSON» Подробности: InnerError: Code: сообщение о плохом запросе: Ошибка: Сообщение о плохом запросе: неверное содержимое JSON, найденное в запросе..
Я не понимаю, что не так с шаблоном, который я использую.
Это шаблон, который я использую:
{
"contentVersion": "1.0.0.0",
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"parameters": {
"keyVault": {
"type": "string"
},
"resourceGroup": {
"type": "string"
},
"subscriptionId": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"objectId": {
"type": "string"
}
},
"resources": [
{
"name": "[concat(take(deployment().name, 50))]",
"apiVersion": "2017-05-10",
"resourceGroup": "[parameters('resourceGroup')]",
"subscriptionId": "[parameters('subscriptionId')]",
"type": "Microsoft.Resources/deployments",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"name": "[concat(parameters('keyVault'), '/add')]",
"apiVersion": "2018-02-14",
"properties": {
"accessPolicies": [
{
"tenantId": "[parameters('tenantId')]",
"objectId": "[parameters('objectId')]",
"permissions": {
"keys": [
"get",
"list"
],
"secrets": [
"get",
"list"
],
"certificates": [
"get",
"list"
]
}
}
]
}
}
]
}
}
}
]
}
Комментарии:
1. В вашем коде в вопросе отсутствует a
{
в качестве самого первого символа. Остальное выглядит нормально.2. У меня есть { в качестве символа fisrt , но я получаю эту ошибку
3. да, это выглядит нормально, если только вы не передаете какой-то мусор в параметры
4. Как дела? Ваша проблема решена?
5. Привет @AdyM, очень рад, что ваша проблема решена. Пожалуйста, нажмите на галочку рядом с ответом, чтобы переключить его с серого на заполненный, чтобы принять его в качестве ответа, чтобы он помог другим и закрыл этот запрос 🙂
Ответ №1:
Если вы просто хотите добавить некоторую политику доступа к существующему хранилищу ключей Azure, я изменил ваш шаблон, как показано ниже:
{
"contentVersion": "1.0.0.0",
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"parameters": {
"keyVault": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"objectId": {
"type": "string"
}
},
"resources": [{
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"name": "[concat(parameters('keyVault'), '/add')]",
"apiVersion": "2018-02-14",
"properties": {
"accessPolicies": [{
"tenantId": "[parameters('tenantId')]",
"objectId": "[parameters('objectId')]",
"permissions": {
"keys": [
"get",
"list"
],
"secrets": [
"get",
"list"
],
"certificates": [
"get",
"list"
]
}
}
]
}
}
]
}
Я протестировал на своей стороне PowerShell, он работает как исключенный.
Результат: