Megaport Terraform Provider 故障排查
如果你在使用 Megaport Terraform Provider 时遇到问题,请按照以下故障排查操作逐步进行。
有关排查 API 问题的信息,请参见 API 故障排查。
故障排查操作
| 操作 | 步骤 |
|---|---|
| 确保你使用的 Terraform 和 Megaport Terraform Provider 为最新版本 | 请确保你使用受支持的 Terraform 版本以及 Megaport Terraform Provider 的最新版本,可在 Megaport Terraform Provider Registry 中查看。Megaport 会针对最新的两个 Terraform 主版本进行测试。 要检查二者,请运行以下命令: terraform version命令应输出类似如下的版本信息: Terraform v#.#.#on darwin_arm64+ provider registry.terraform.io/megaport/megaport v#.#.#你可以从 Upgrading Guides (HashiCorp) 下载并更新 Terraform。 Megaport Terraform Provider 的版本由你在 Terraform 文件中创建提供程序时声明的版本决定。更多信息,参见 创建 Megaport Terraform Provider 配置文件。 |
| 解决 Azure VXC 删除错误 | 删除 Azure VXC 会导致出现以下错误:Error: Error deleting resource ****: has an attached peering connection that must be removed in Azure first: 要解决此问题,应改为使用 Azure Terraform 提供程序管理 ExpressRoute peering,这样会在 VXC 之前先拆除该 peering。更多信息,参见 the Azure provider documentation。 |
| 当关联服务被删除时,解决 VXC 被删除的问题 | 当重新创建 Port 时,提供程序无法处理该情况,这将会删除该 Port 及其关联的 VXCs。 例如,如果你有一个包含 Port,且其速率为 1000 的 Terraform 文件: resource "megaport_port" "port_2" {product_name = "port2"port_speed = 1000location_id = data.megaport_location.loc.idcontract_term_months = 12marketplace_visibility = falsecost_centre = "test2"diversity_zone = "red"}并希望将 port_2 的速率更新为 10000,这将触发重新创建 Port,并会先删除该 Port 及其关联的 VXCs。当前提供程序无法处理这种情况,并会返回类似如下的错误: Error: Error Updating VXCCould not update VXC with ID a7b44cda-28bc-4d64-b05b-8703114a8fcd: PUT https://api-staging.megaport.com/v3/product/vxc/a7b44cda-28bc-4d64-b05b-8703114a8fcd: 400 (trace_id "89b4016d9f9d0b7545987092d0b17493") Product [a7b44cda-28bc-4d64-b05b-8703114a8fcd] Not Found要解决此问题,你可以像下面这样为 Port 资源指定一个 lifecycle 修饰符,这将先创建新的 Port,对 VXC 执行更新,然后删除旧的 Port。 lifecycle {create_before_destroy = true} |
| 报告提供程序错误消息 | 如果你看到以下错误消息,这表明提供程序存在问题。 联系支持 或 create a GitHub issue,并附上触发该问题的操作过程详情,以便记录并进行调查。"This is a bug in the provider, which should be reported in the provider's own issue tracker." |