本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理 Terraform 開放原始碼產品狀態錯誤
Terraform 開放原始碼ProvisionProduct失敗會路由至 TAINTED 狀態,允許每個佈建的產品繼續至 UpdateProvisionedProduct。發生這種情況時:
-
UpdateProvisionedProduct不會嘗試更新或更正標籤,或建立或修改資源群組。 -
UpdateProvisionedProduct在決定佈建產品是否應設為AVAILABLE或 時, 不會考慮先前佈建操作的失敗TAINTED。
AWS Service Catalog 只會在 期間套用標籤ProvisionProduct。任何因ProvisionProduct操作失敗而導致的失敗標記都不會自動解決。
狀態錯誤範例
範例 1: AWS Service Catalog 不會在 期間建立資源群組 ProvisionProduct
在下面的案例中,即使沒有支援的資源群組,而且沒有將任何標籤套用至資源,您仍擁有 AVAILABLE 狀態的佈建產品。
-
您的動作會啟動
ProvisionProduct。 -
Terraform 佈建引擎
ProvisionProduct會以工作流程失敗回應 ,且不提供ResourceIdentifier。 -
ProvisionProduct工作流程不會建立資源群組,然後將佈建的產品狀態設定為ERROR。 -
然後,您可以啟動
UpdateProvisionedproduct操作。 -
Terraform 佈建引擎回應,指出「成功」。
-
因此,
UpdateprovisionedProduct工作流程會將佈建的產品狀態設定為AVAILABLE,但不會建立資源群組,或嘗試套用任何標籤。
範例 2: AWS Service Catalog 在 期間建立新資源 UpdateProvisionedProduct
在下面的案例中,即使新資源未套用任何標籤,您仍擁有處於 AVAILABLE 狀態的佈建產品。
-
您的動作會啟動
ProvisionProduct。 -
Terraform 佈建引擎會回應,指出「成功」並提供
ResourceIdentifier。 -
ProvisionProduct工作流程會建立資源群組,並將標籤套用至所有已識別的資源。 -
您會在建立新資源的新成品
UpdateProvisionedProduct上啟動 。 -
Terraform 佈建引擎回應,指出「成功」。
-
UpdateProvisionedProduct工作流程會將佈建的產品狀態設定為 ,AVAILABLE但不會嘗試將任何其他標籤套用至新資源。
狀態錯誤解決方案
AWS Service Catalog 確保為TAINTED從 設定為 的所有佈建產品建立資源群組ProvisionProduct。如果 Terraform 佈建引擎未傳回 ResourceIdentifier,或如果 AWS Service Catalog 無法建立資源群組,則佈建產品會設為 ERROR 狀態,強制您終止。