跳轉到

排解 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 檔案中建立 provider 時所宣告的版本。欲了解更多資訊,請參閱 建立 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 provider 管理 ExpressRoute peering,系統會在 VXC 之前先將 ExpressRoute peering 拆除。如需更多資訊,請參閱 the Azure provider documentation.
解決在關聯服務被刪除時 VXC 也被刪除的問題 當重新建立 Port 時,provider 不會處理此情況,將會刪除該 Port 及其關聯的多個 VXC。

例如,若您有一個 Terraform 檔案,其中包含一個 Port,速率為 1000:

resource "megaport_port" "port_2" {
  product_name = "port2"
  port_speed = 1000
  location_id = data.megaport_location.loc.id
  contract_term_months = 12
  marketplace_visibility = false
  cost_centre = "test2"
  diversity_zone = "red"
}

若您想將 port_2 的速率更新為 10000,這將會觸發重新建立 Port,並會先刪除該 Port 及其關聯的多個 VXC。目前 provider 無法處理此情況,並會回傳類似以下的錯誤:

Error: Error Updating VXC
Could 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
}
回報 provider 錯誤訊息 如果您看到以下錯誤訊息,表示 provider 發生問題。 聯絡支援create a GitHub issue,並包含導致該錯誤的操作流程詳細資訊,以便記錄並進行調查。

"This is a bug in the provider, which should be reported in the provider's own issue tracker."