Azure Bicep/ARM 推荐 API 要使用的版本(预览版与稳定版)

Azure Bicep/ARM recommended API Version to use (Preview vs Stable)

我正在使用 Azure Bicep/ARM 模板,我想知道在拥有多个团队的大型组织中创建模板时在资源提供者上使用 API 版本的 Safe/recommended 方法将要使用。

如果我们声明资源类型并使用 API 版本,我们在预览版和稳定版方面有很多选择。我们一直都知道建议使用稳定版,但大多数情况下它看起来太旧,而预览版看起来是最新的。

在下面 SQL 服务器资源的屏幕截图中,预览版看起来最新且稳定,直到 2014 年,这可能会导致对最新功能的妥协

那么,我们如何决定 API 版本即 stable/safe 但涵盖最新功能而不破坏更改

resource sqlServer 'Microsoft.Sql/servers@2021-11-01-preview' = {
  name: serverName
  location: location
  tags: tags
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    version: version
    publicNetworkAccess: 'Enabled'
    administratorLogin: adminUserName
    administratorLoginPassword: administratorLoginPassword
  }
}

您很快就会发现,当您开始使用 ARM 模板时,您将需要使用许多不同的 API 版本,实际上,为每个资源找到 API 组合就像导航一样有时是迷宫,因为适用于一种资源类型的方法可能不适用于另一种资源类型,你需要找到适用于所有资源的组合,相信我,有时这远非微不足道,所以不要误会,只是认为你可以坚持相同的API 所有资源的版本。

我发现这样做有帮助的一种方法是在 Azure 门户中同时创建一个资源,然后从那里下载模板并查看他们使用的 API 版本,这对我很有帮助很多次。

您可以使用的一些指南...

  • 使用最新的 non-preview apiVersion 除非有您需要的功能仅在 newer/preview 版本中可用(这适用于 SQL)
  • 除非新版本中有您需要的功能,否则您无需升级 apiVersion。每年左右重新访问它以查看是否有可用的新功能(SQL 再次示例)并没有什么坏处 - 但除了新功能之外,您没有理由总是需要使用“最新”
  • 新的 apiVersions 更多地是关于功能和架构变化,而不是关于“稳定性”——正如 Matt Douhan 提到的,如果有一个 apiVersion public 可用(即 public 预览)它支持并认为“稳定”。

HTH