使用 Terraform 在可用性区域(单个区域)之间进行 Azure 恢复服务 VM 复制

Posted

技术标签:

【中文标题】使用 Terraform 在可用性区域(单个区域)之间进行 Azure 恢复服务 VM 复制【英文标题】:Azure Recovery Services VM replication between availability zones (single region) with Terraform 【发布时间】:2022-01-19 10:50:59 【问题描述】:

如果可以选择使用可用性区域而不是区域作为恢复服务库 VM 复制的灾难恢复源/目标,看来这还不能通过 Terraform 实现。

是这样吗?

似乎没有对 azurerm_site_recovery_replicated_vm 中的区域的任何引用。

尽管 AzureRM v3.0 上的注释确实提到将“zones”参数添加到任何支持它的对象,但所有 TF 文档引用都为此功能使用了一个单独的区域。

有谁知道 Azure API 是否支持此功能,还是我们必须等待 TF 更新?

【问题讨论】:

您可能需要将此作为 Azure 提供商的功能请求。 v3.0 的声明有点模糊 IMO。它说他们将为支持区域的资源增加一致性。我不确定这是否意味着他们会在此资源提供者中提供可用区域,但我希望如此。 正确 .. ARM 模板支持目标可用区参数 .. 但 terraform 不支持 .. 我在 repo 中提出了一个问题。你可以参考github.com/hashicorp/terraform-provider-azurerm/issues/14652 【参考方案1】:

有谁知道 Azure API 是否支持此功能,或者我们必须支持吗? 就等TF更新吧?

Azure API 支持它,因为它可以使用 BicepARM 模板 但参数 @987654324 @ 在您尝试对 VM 进行区域到区域灾难恢复时所需的 @ 在 Terraform 中不存在。

作为解决方法,您可以使用azurerm_resource_group_template_deployment 并根据您的要求使用此Microsoft Documentation 中提到的 Bicep/ARM 模板。

我已经提出 Github issue 来解决在 azurerm_site_recovery_replicated_vm 资源块中添加参数 target_availabiltity_zone 的相同问题。

【讨论】:

以上是关于使用 Terraform 在可用性区域(单个区域)之间进行 Azure 恢复服务 VM 复制的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 terraform 在多个区域进行设置?

Azure 美国中北部区域中没有可用区

Terraform - 具有多个环境(区域)的多个帐户

Terraform“为区域匹配失败的 VPC 接口端点创建 R53 别名”——但区域是正确的

创建 azure vm 时,terraform 抛出“无效或未知的密钥:区域”

将内插值放入 Terraform 查找的最佳方法