gpt4 book ai didi

Azure ARM 从变量获取值

转载 作者:行者123 更新时间:2023-12-03 06:51:42 25 4
gpt4 key购买 nike

我必须创建一个 ARM 模板,目前我一直坚持使用具有扩展值的变量。

我定义变量

"variables": {
"NetWorkID": "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]",
}

现在我想获取虚拟网络的第一个子网。我不知道如何获取该值。

我对此进行了测试,但这不起作用:

"subnet": {
"id": "[variables('NetWorkID().subnet.ID')]"
}

我可以获得如何使用这些变量的提示吗?

最佳答案

通常您使用以下语法引用子网。

您可以做的是将 virtualNetworkName 和subnet1Name 作为参数传递,并使用resourceid() 表达式。

"subnet": {
"id": "[resourceId(parameters('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]"
}

另一种方法是,如果您在arm模板中引用同一子网,则在变量而不是资源中构建此资源ID,然后在资源属性中使用该变量。

示例:

    "variables": {
"subnetId": "[resourceId(parameters('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]"
},
"resources": [
{
"type": "Microsoft.Network/privateEndpoints",
"apiVersion": "xxxx",
"name": "xxxxx",
"location": "xxxxx",
"properties": {
"privateLinkServiceConnections": [
{
"name": "xxxxx",
"properties": {
"privateLinkServiceId": "xxxxx",
"groupIds": [
"blob"
]
}
}
],
**"subnet": {
"id": "[variables('subnetId')]"
}**,
"customDnsConfigs": [
{
"fqdn": "xxxxxx"
}
]
}
}
]

您还可以尝试使用reference()函数列出现有子网

"subnetId":"[reference(resourceId('Microsoft.Network/virtualNetworks', variables('vnetName')), '2022-01-01', 'Full').properties.subnets]"

关于Azure ARM 从变量获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73552794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com