我正在处理ARM模板并需要执行条件部署。例如,我在变量“子网”中定义了两个网络安全组。
"variables": {
"subnets": [
{
"subnetname": "AzureBastionSubnet",
"nsgname": "nsg_bastion1"
},
{
"subnetname": "client-subnet",
"nsgname": "nsg_client1"
}
]
}
网络安全组nsg_bastion1需要使用预设规则进行特殊处理,因为它是Azure Bastion子网的网络安全组。nsg_client1将分配一些自定义规则,此时这些规则并不重要。
为了区分非堡垒和堡垒网络安全组,我创建了两个条件资源块:
"resources": [
// NSG (non-Bastion)
{
"condition": "[not(equals(variables('subnets')[copyIndex()].name, 'AzureBastionSubnet'))]",
"name": "[variables('subnets')[copyIndex()].nsg]",
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2019-11-01",
"location": "[parameters('location')]",
"properties": {},
"copy": {
"name": "nsg-c",
"count": "[length(variables('subnets'))]"
}
},
// NSG (Bastion)
{
"condition": "[equals(variables('subnets')[copyIndex()].name, 'AzureBastionSubnet')]",
"name": "[variables('subnets')[copyIndex()].nsg]",
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2019-11-01",
"location": "[parameters('location')]",
"properties": {},
"resources": [
// Bastion Security Rules .....
],
"copy": {
"name": "nsg-bastion-c",
"count": "[length(variables('subnets'))]"
}
},]
条件属性检查子网是否称为“AzureBastionSubnet”。我已经验证了这仅适用于两个资源块,但当它们都包含在代码中时则不适用。它总是抛出以下错误消息:
Code=InvalidTemplate; Message=Deployment template validation failed:
'The resource 'Microsoft.Network/networkSecurityGroups/AzureBastionSubnet' at line '' and column '' is defined multiple times in a template.
我将感谢任何帮助,提前感谢!
好吧,我以为我们已经解决了这个问题,但还没有...
即使您的条件是互斥的,您也不能在同一模板中有两个具有相同资源ID的资源。
我猜两者之间的区别在于security规则?如果是这样,最简单的选择可能是定义2个单独的var,然后使用if()语句根据您的条件在它们之间进行交换。
如果失败,如果你想在模板上展开,可以看看是否有更好的选项。。。
我试图完全清理资源组在Azure。 删除资源组不是选项(访问权限:参与者,而不是所有者) 做到这一点的最优雅和明显的方法(也在一些文章中描述)是使用“空”部署模板执行完整的部署: 删除SQL Server开始“...”接受“...”失败“...”开始“...”接受“...”失败“... 你想到主意了。 其他时候效果很好。 您将得到数据库删除的无限循环“开始..接受..失败..开始..接受..失败.
最近我开始创建一个新的资源组,但它似乎被困在配置服务器场资源上。重新启动部署会输出以下错误: 我没有时间等待它的到期。有没有办法取消Azure ARM部署?
我想为基于ARM模板的VM部署禁用“Windows更新”。我在最近的Microsoft中找到了相关设置。计算提供程序架构。但我没有找到使用此设置的任何ARM模板。我搜索了几个与Windows VM部署相关的Azure快速入门模板——但没有一个打算在预配时控制Windows更新服务的行为。我知道CLASSIC部署模型可用的选项,但我正在明确寻找使用Azure资源管理器部署模型的解决方案。 我试图在现
语境 另外,如果我从模板中删除createMode和sourceDatabaseId,一切都很好。 这就是上面使用的模板
我开始做一些类似资源类的东西,在那里我可以为我的应用程序保存我所有的文件,像图像和声音,但它变得非常混乱,所有的东西都在应用程序的乞求中加载。 这是包含所有内容的类:https://sourceb.in/s8rjgqqgss(头文件)https://sourceb.in/cjiq78hdov(cpp文件的一部分) 我很抱歉把它贴在不同的网站上,但正如你所看到的,它真的很乱,我也不知道如何让它变得更
我如何知道要提供哪些参数以及哪些参数在Azure资源中被覆盖? 我得到这些错误和失去大量的时间弄清楚哪些参数我需要 我应该从参数文件中的参数开始,然后将默认值粘贴到模板中吗?(如果是这样,为什么他们还没有这样做?) 是否有办法读取运行系统的实际参数。当我在azure中使用自动化脚本部分时,值为null "$Schema":"https://schema.management.azure.com/s