如何 restrict/customize ARM 模板中的资源组区域

How to restrict/customize the Resource Group Region in ARM templates

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

ARM Template Deployment Screenshot

编辑

Modified ARM Template

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

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

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

对于您自己的“区域”控件,您可以在模板中的参数上使用 allowedValues 属性,这会将列表中的项目限制为您提供的内容 - 即 link吉姆在上面的评论中提供的。

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

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

文档讨论的是 managedApplications,但 ui 是一个通用结构,您可以将其用于模板部署,这里是一个通用示例:

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

[编辑 post 评论]

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

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