如何限制/自定义 ARM 模板中的资源组区域

时间:2021-02-16 05:25:55

标签: azure-resource-manager arm-template azure-resource-group

当我们在 Azure 中部署自定义模板时,Azure 门户中会自动弹出一些参数,如资源组和区域(请参阅附加的屏幕截图)。我想知道如何使用ARM模板自定义或限制Region列表?

ARM Template Deployment Screenshot

编辑

Modified ARM Template

New parameter Region is added rather than re-using the existing one

1 个答案:

答案 0 :(得分:0)

第一个“区域”下拉列表用于资源组的位置 - 创建新的时需要它,使用现有的时禁用。对于自定义模板,除非您提供自己的 ui 定义文件,否则您无法自定义或删除该控件。

也就是说,也不需要您在部署中使用该控件的值。如果您想使用该值,您可以在模板中使用 resourceGroup().location 来引用它。这将允许您删除“重复”,但也要求将资源部署到与资源组相同的区域。

对于您自己的“区域”控件,您可以在模板中的参数上使用 allowedValues 属性,这会将列表中的项目限制为您提供的项目 - 这是 Jim 在上述评论中提供的链接。

>

如果你提供你自己的 ui 定义文件,你可以做更多的事情来限制列表,但需要你编写更多的代码。这将是起点:

https://docs.microsoft.com/en-us/azure/azure-resource-manager/managed-applications/create-uidefinition-overview

文档讨论了托管应用程序,但 ui 是一个通用构造,您可以将其用于模板部署,这是一个通用示例:

https://github.com/Azure/azure-quickstart-templates/tree/master/100-marketplace-sample

[编辑帖子评论]

如果您想利用“内置”区域控件,您可以通过在 createUiDefintion.json 文件中设置配置来自定义出现在那里的位置列表。更多相关信息:

https://docs.microsoft.com/en-us/azure/azure-resource-manager/managed-applications/create-uidefinition-overview#config