

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 6：產生基礎設施做為程式碼
<a name="transform-containers-step-iac"></a>

在此步驟中， AWS Transform 會產生部署容器化應用程式的 AWS 基礎設施範本。您可以選擇 Amazon Elastic Kubernetes Service 和 Amazon Elastic Container Service 作為目標平台。

## Amazon Elastic Kubernetes Service (Kubernetes)
<a name="transform-containers-iac-eks"></a>

如果您選擇 Amazon EKS， AWS Transform 會為您的應用程式產生具有 Kubernetes 資訊清單的 Helm Chart。產生的範本包括：
+ 部署和服務
+ 傳入規則
+ ConfigMaps 和 SecretProviderClass 資源
+ 服務帳戶
+ 持久性磁碟區宣告 (EBS 和 EFS)
+ Route 53 DNS 記錄
+ 運作狀態檢查組態

### 選用：CloudWatch 記錄
<a name="transform-containers-iac-eks-logging"></a>

AWS 轉換會詢問您是否要為 Amazon EKS 部署包含 CloudWatch 記錄。如果您選擇加入， AWS Transform 會產生 Fluent Bit DaemonSet 組態，收集 Pod 日誌並將其傳送至 CloudWatch Logs。

如果您選擇 CloudWatch 記錄，您的叢集管理員必須在部署之前完成下列先決條件：

1. 在叢集中建立`amazon-cloudwatch`命名空間。

1. 使用 CloudWatch Logs 寫入許可為 Fluent Bit 服務帳戶建立 IAM 角色。在部署期間，系統會提示您輸入角色 ARN。

## Amazon Elastic Container Service (Terraform)
<a name="transform-containers-iac-ecs"></a>

如果您選擇 Amazon ECS， AWS Transform 會產生 Terraform 模組來部署您的應用程式。產生的範本包括：
+ ECS 叢集
+ 具有任務定義的 ECS 服務
+ 具有存取記錄的 Application Load Balancer 
+ 適用於持久性儲存的 Amazon EFS 
+ 用於服務探索的私有託管區域
+ 運作狀態檢查組態

## 自動化驗證和安全性掃描
<a name="transform-containers-iac-validation"></a>

AWS 轉換會自動驗證產生的基礎設施範本，然後再提供給您。驗證包括：
+ 對於 Terraform： `terraform fmt`和 `terraform validate`檢查語法和組態正確性。
+ 對於 Helm：驗證圖表，以確認產生的資訊清單格式正確。
+ 使用 Checkov 進行安全性掃描，以識別所產生基礎設施程式碼中的潛在安全性錯誤設定。

AWS 轉換會報告任何驗證問題，並在繼續之前解決這些問題。

## 在沒有發佈映像的情況下產生 IaC
<a name="transform-containers-iac-decoupled"></a>

即使您未在上一個步驟中發佈容器映像，也可以產生基礎設施範本。產生的範本使用預留位置映像 URIs，您可以在稍後使用實際映像位置進行更新。

## 您需要執行的事項
<a name="transform-containers-iac-user-actions"></a>

**產生基礎設施範本**

1. 出現提示時，請選擇您的目標平台：**Amazon EKS** 或 **Amazon ECS**。

1. 如果您選擇 Amazon EKS， AWS Transform 會詢問是否包含 CloudWatch 記錄。回應是或否。

1. 如果出現提示，請提供應用程式的運作狀態檢查端點詳細資訊 （例如`/health`路徑）。

1. AWS 轉換會產生並驗證基礎設施範本。此步驟會自動執行， AWS 轉換會顯示進度更新，包括任何驗證或安全掃描結果。

1.  AWS 轉換呈現範本時，請檢閱產生的範本。