【问题标题】:How to restrict/customize the Resource Group Region in ARM templates如何在 ARM 模板中限制/自定义资源组区域
【发布时间】:2021-02-16 05:25:55
【问题描述】:

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

ARM Template Deployment Screenshot

编辑

Modified ARM Template

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

【问题讨论】:

  • 能否详细描述您的问题?是不是想知道如何实现 azure 资源只能部署到特定区域?
  • 附上的截图是我部署空ARM模板的情况。参数 Region 是自动添加的,它具有所有可能的值。我想控制这个列表,就像我需要在“地区”下拉列表中只有“uksouth”和“eastus”一样。由于此参数区域不受 ARM 模板控制,那我该如何控制呢?有没有办法做到这一点?顺便说一句,我知道如何在特定区域部署 Azure 资源。
  • 我试过了,但对我没有帮助。它在 GUI 中添加一个新参数,而不是控制自动添加的现有参数。我已经编辑了帖子以包含示例模板和输出 GUI。如果我做了与您建议的不同的事情,请您看看并告诉我。

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


【解决方案1】:

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

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

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

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

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

[编辑帖子评论]

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

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

【讨论】:

  • 感谢@bmoore-msft。感谢您的确认。我正在寻找自定义资源组位置是否可行,以便我可以根据我的需要在与资源组相同的区域但在有限的区域中部署资源。这可以防止需要单独的参数,但正如您所说,这是不可能的。谢谢 正如您提到的,我一直在使用不同的参数来限制可以部署 Azure 资源的区域。
  • 好的,我编辑了上面的答案,我想你可以用你自己的 CUID 做你想做的事,如果有什么不清楚的地方请 lmk。
猜你喜欢
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多