Я создаю шаблон ARM, который развертывает много ресурсов в разных группах ресурсов. На самом деле, сами группы ресурсов являются частью развертывания. В простой версии я создаю только две группы ресурсов (masterRG
и dependentRG
), а затем создаю два вложенных (встроенных) развертывания. Первое встроенное развертывание помещает учетную запись хранения (testsadj1604
) в masterRG
. Это развертывание зависит от masterRG.
Второе развертывание создает keyvault и пытается сохранить строку соединения из testsadj1604
в этом хранилище.
В моем реальном случае у меня есть больше групп ресурсов, и я на самом деле пытаюсь развернуть приложение функции, которое имеет строку подключения как «appsetting». Однако методология та же.
Я получаю следующую ошибку:
Deployment failed. Correlation ID: 9c359e8e-8657-4756-a5a3-f9c5698fbb46. {
"error": {
"code": "ResourceNotFound",
"message": "The Resource 'Microsoft.Storage/storageAccounts/testsadj1604' under resource group '<null>' was not found."
}
}
Это мой код:
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2018-05-01",
"name": "masterRG",
"location": "West Europe",
"properties": {}
},
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2018-05-01",
"name": "dependentRG",
"location": "West Europe",
"properties": {}
},
{
"name": "masterRgDeployment",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2019-10-01",
"resourceGroup": "masterRG",
"dependsOn": [
"masterRG"
],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"apiVersion": "2019-06-01",
"type": "Microsoft.Storage/storageAccounts",
"name": "testsadj1604",
"location": "West Europe",
"sku": {
"name": "Standard_GRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
}
},
{
"name": "dependentRgDeployment",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2019-10-01",
"resourceGroup": "dependentRG",
"dependsOn": [
"dependentRG",
"masterRgDeployment"
],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"name": "kvaNameTest1604",
"apiVersion": "2015-06-01",
"location": "West Europe",
"properties": {
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": true,
"tenantId": "[subscription().tenantId]",
"accessPolicies": [
{
"objectId": "fc05639d-70eb-4175-a89b-eab7f883c691",
"tenantId": "[subscription().tenantId]",
"permissions": {
"keys": [
"get",
"list",
"update"
],
"secrets": [
"get",
"list",
"update"
]
}
}
],
"sku": {
"name": "Standard",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "kvaNameTest1604/saConnectionString",
"apiVersion": "2018-02-14",
"location": "West Europe",
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', 'kvaNameTest1604')]"
],
"properties": {
"value": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', 'testsadj1604'), '2019-06-01').keys[0].value]"
}
}
]
}
}
}
]
}
Я симпатичная уверен, что ошибка происходит из-за listKeys () внизу, продолжая мой метод проб и ошибок в течение дня (и безумие Google) в моем реальном шаблоне. Использование listKeys () и вложенных развертываний - перетаскивание, но я действительно не понимаю, почему это не должно работать. Я убедился, что во втором развертывании есть зависимость.
Это разрушает мой мозг, есть ли способ использовать вложенные (встроенные) шаблоны и ссылаться на ключи учетной записи хранения, которые находятся в другой группе ресурсов (но являются частью общего развертывания)? Я также попытался создать вывод в первом развертывании и сослаться на это во втором, но это не имело никакого эффекта. Я в полной растерянности, любая помощь приветствуется!