我有一个使用资源组ID的uniquestring函数调用的资源,即
var x = '${substring(uniqueString(resourceGroup().id), 0, 8)}'
但是,我需要在另一个资源组中存在的另一个资源中使用/调用此资源。
我该如何做到这一点? resourceId() 函数似乎无法获取资源组的 id。或者也许我不明白如何使用它。
我也尝试过输入:
var x = '${substring(uniqueString(resourceGroup('anotherRG').id), 0, 8)}'
但这也不起作用并给出错误。
你能帮我吗?
您可以使用 Azure 资源管理器模板中的
resourceId()
函数来引用另一个资源组中的资源。 resourceId()
函数允许您使用资源类型、资源名称和资源组名称构造完全限定的资源 ID。
有一个示例说明如何使用 resourceId()
函数来引用另一个资源组中的资源:
"resources":[
{
"type": "Microsoft.Compute/virtualMachines",
"name": "myVirtualMachine",
"apiVersion": "2021-03-01",
"location": "westus",
"dependsOn": [
"[resourceId('OtherResourceGroup', 'Microsoft.Network/virtualNetworks', 'myVirtualNetwork')]"
],
"properties": {
// Virtual machine properties
{
{
[
dependsOn
属性用于指定对另一个资源组中的资源的依赖关系。 resourceId()
函数用于构造 Microsoft.Network/virtualNetworks
资源组中名为 myVirtualNetwork
的虚拟网络资源 (OtherResourceGroup
) 的完全限定资源 ID。
但请确保将 'OtherResourceGroup'
替换为资源组的实际名称,并将 'Microsoft.Network/virtualNetworks'
替换为其他资源组中所需资源的适当资源类型。通过将 dependsOn
属性包含在 resourceId()
函数中,您可以在资源之间建立依赖关系,确保仅在成功配置其他资源组中的虚拟网络后才创建虚拟机 (myVirtualMachine
)。