如何使现有 ARM 模板上的资源 API 版本保持最新?

2024-05-18

我有一个现有的 Azure 模板,它配置以下资源

Microsoft.ClassicStorage/StorageAccounts (api version 2014-06-01)
microsoft.insights/components (api version 2014-08-01)

还有其他一些...

使用文章中的代码资源提供者和类型 https://learn.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services我发现我的模板上的资源 API 版本落后了几个版本:

Microsoft.ClassicStorage/StorageAccounts. Current: 2014-06-01, available:

2016-11-01
2016-04-01
2015-12-01
2015-06-01
2014-06-01
2014-04-01-beta
2014-04-01
2014-01-01

microsoft.insights/components. Current: 2014-08-01, available:

2015-05-01
2014-12-01-preview
2014-08-01
2014-04-01

这是我的问题

  1. 在模板中维护资源 API 版本的最佳实践是什么?
  2. 我在哪里可以了解每个 API 版本中引入的更改?
  3. 如果我更改已使用旧 API 版本预配的资源的 API 版本,Azure 会做什么?

  1. “在模板中维护资源 API 版本的最佳实践是什么?”

您不需要更新资源的 api 版本字段,除非您正在使用先前 api 版本未涵盖的新功能。

主要是,如果它有效,就不要修复它。

ARM 模板中嵌入 api 版本字段的目的是确保模板在任何时间点都能继续按需要运行。

我见过一些带有 api 版本变量的模板。我不喜欢这种方法。它使得更改 api 版本变得太容易,而更新该版本可能会使架构无效并导致任意数量的错误。

  1. “我在哪里可以了解每个 API 版本中引入的更改?”

它的形式非常原始,但您可以在此 GitHub 存储库中查看资源提供程序的 Swagger 规范。

GitHub: azure/azure-rest-api-specs http://azure-rest-api-specs and GitHub: azure/azure-resource-manager-schemas https://github.com/Azure/azure-resource-manager-schemas

Azure SDK、ARM 模板,甚至某些门户 UI 都将此存储库作为自动生成的 Swagger 源。

对于最新的 ARM 版本功能,您可以使用此文档子站点,该站点也是根据规范生成的。

ARM 模板资源定义 https://learn.microsoft.com/en-us/azure/templates/

  1. 如果我更改已使用旧 API 版本预配的资源的 API 版本,Azure 会做什么?

如果更改 api 版本并执行更改,并且尚未将资源配置更新到新版本,Azure 资源管理器 API 可能会响应对象架构错误。

您可以运行 Validate 调用来获取这些错误,而无需进行任何更改。

同样,除非您在新的 api 版本中使用新功能或配置,否则确实没有理由更新模板资源的 api 版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使现有 ARM 模板上的资源 API 版本保持最新? 的相关文章

随机推荐