Azure 资源管理器模板:如何获取不同资源组中资源的连接字符串?
Azure Resource Manager Template: How to get connection string for a resource in a different ResourceGroup?
我想部署一个包含来自另一个资源组的 AzureStorageAccount 连接字符串的 AzureKeyVault。我知道如果 AzureKeyVault 和 AzureStorageAccount 在同一资源组中,您可以执行此操作,如下所示:
"resources": [
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "secretName",
"properties": {
"value": "[concat('DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=', 'StorageAccountName', ';AccountKey=', first(listKeys(resourceId('Microsoft.Storage/storageAccounts', 'StorageAccountName'), variables('storageApiVersion')).keys).value)]"
},
"dependsOn": []
},
{
"type": "Microsoft.Storage/storageAccounts",
"name": "StorageAccountName",
...
},
{
"type": "Microsoft.KeyVault/vaults",
"name": "KeyVaultName",
...
}
]
我的问题是如何更改它以从已部署的不同资源组获取连接字符串?
使用 resourceId()
函数的内置功能:
resourceId(%different_rg_name%, 'Microsoft.Storage/storageAccounts', 'StorageAccountName')
我想部署一个包含来自另一个资源组的 AzureStorageAccount 连接字符串的 AzureKeyVault。我知道如果 AzureKeyVault 和 AzureStorageAccount 在同一资源组中,您可以执行此操作,如下所示:
"resources": [
{
"type": "Microsoft.KeyVault/vaults/secrets",
"name": "secretName",
"properties": {
"value": "[concat('DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=', 'StorageAccountName', ';AccountKey=', first(listKeys(resourceId('Microsoft.Storage/storageAccounts', 'StorageAccountName'), variables('storageApiVersion')).keys).value)]"
},
"dependsOn": []
},
{
"type": "Microsoft.Storage/storageAccounts",
"name": "StorageAccountName",
...
},
{
"type": "Microsoft.KeyVault/vaults",
"name": "KeyVaultName",
...
}
]
我的问题是如何更改它以从已部署的不同资源组获取连接字符串?
使用 resourceId()
函数的内置功能:
resourceId(%different_rg_name%, 'Microsoft.Storage/storageAccounts', 'StorageAccountName')