Azure
使用 ARM 模板將 NSG 附加到現有子網
我希望在 Azure 中創建一個網路安全組 (NSG) ,並使用 ARM 模板將其附加到***現有子網。***我已經遇到過這個網站:https ://github.com/Azure/azure-quickstart-templates/tree/master/201-nsg-add-to-existing-subnet但模板引用了 GitHub 上的其他文件,我客戶不允許。
理想情況下,如果可能的話,我想避免嵌套 ARM 模板,只使用 x1 template.json 和 x1 parameters.json 文件或完全使用 x1 template.json 文件。
如果有人有這方面的經驗或知道可以參考的好網站,我將不勝感激。
該範例作為嵌套模板執行此操作,因為虛擬網路所在的資源組與虛擬網路自身位於不同的資源組中。如果您的 NSG 和 vNet 在同一個資源組中,則無需這樣做。您需要做的就是將子網部分添加到您的主模板中,並依賴於您的 NSG。
{ "apiVersion": "2018-03-01", "type": "Microsoft.Network/virtualNetworks/subnets", "dependsOn": [ "new-nsg" ], "name": "[concat(parameters('virtualNetworkName'), '/', parameters('subnetName'))]", "location": "[resourceGroup().location]", "properties": { "addressPrefix": "[parameters('subnetAddressPrefix')]", "networkSecurityGroup": { "id": "[resourceId('Microsoft.Network/networkSecurityGroups', 'new-nsg')]" } } }
如果您的 NSG 和 vNet 位於不同的資源組中,那麼執行此操作的唯一方法是使用嵌套模板。與 Terraform 之類的東西相比,這是 ARM 的缺點之一。也就是說,您仍然可以查看幾個選項:
- 您可以使用內聯嵌套模板。這些有點有限,但不需要您引用外部文件
- 您可以將其作為兩個單獨的部署執行,在兩者之間傳遞 NSG 資源組