本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
故障診斷 Terraform 部署問題
本節說明使用 Terraform 部署 Transfer Family 資源相關問題的可能解決方案。如需 Transfer Family 的 Terraform 模組一般資訊,請參閱 Transfer 系列 Terraform 模組。
故障診斷 Terraform 資源建立失敗
Description
嘗試使用 Terraform 建立 Transfer Family 資源時,您遇到以下錯誤:
Error: error creating Transfer Server: InvalidRequestException: The request is not valid. Error: error creating Transfer User: InvalidRequestException: Unable to create the user because the server endpoint type is incompatible with the home directory type.
原因
這些錯誤通常是由於不相容的組態參數或 Terraform 組態中缺少相依性所造成。常見原因包括:
-
不相容的端點類型和儲存組態
-
缺少必要的 IAM 角色或政策
-
不正確的安全政策規格
-
VPC 端點組態問題
解決方案
若要解決 Terraform 部署問題:
-
確保您的 Terraform 組態使用相容的參數組合:
-
對於公有端點,請確定您使用 Amazon S3 進行儲存。
-
對於 VPC 端點,驗證適當的 VPC 和安全群組組態。
-
-
搭配
depends_on屬性使用明確相依性,以確保以正確的順序建立資源。 -
確認所有 IAM 角色都具有必要的信任關係和許可。
-
使用最新版本的 Terraform AWS 供應商,以確保與所有 Transfer Family 功能的相容性。
-
對於複雜的部署和簡單的使用案例,請考慮使用 GitHub 上提供的官方 Transfer Family Terraform 模組,網址為 https://https://github.com/aws-ia/terraform-aws-transfer-family
。這些模組提供廣泛的範例,涵蓋簡單且複雜的客戶使用案例、遵循 AWS 最佳實務,並可為需要基礎設施即程式碼 (IaC) 組態協助的客戶簡化部署。
故障診斷 Terraform 狀態管理問題
Description
在 Terraform 之外變更 Transfer Family 資源後 (透過主控台或 AWS CLI),您會在執行 或 時遇到狀態偏離terraform plan或錯誤terraform apply。
原因
Terraform 會維護狀態檔案,以追蹤其管理的資源。在 Terraform 之外進行變更時,狀態檔案會與實際資源不同步,導致後續 Terraform 操作期間發生錯誤或意外行為。
解決方案
若要解決 Transfer Family 資源的 Terraform 狀態管理問題:
-
使用
terraform import在 Terraform 管理下引入現有資源:terraform import<transfer_family_server.example>s-<server-id>terraform import<transfer_family_server.example>s-<server-id>/username -
使用
terraform refresh更新具有目前真實世界基礎設施的狀態檔案 -
對於無法匯入或存在複雜狀態問題的資源,請考慮使用 從狀態檔案
terraform state rm中移除它們,然後使用 Terraform 重新建立它們 -
實作政策,僅透過 Terraform 管理 Transfer Family 資源,以防止未來狀態偏離
-
使用遠端狀態儲存搭配鎖定功能,以防止在團隊中工作時並行修改