

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 步骤 6：以代码形式生成基础架构
<a name="transform-containers-step-iac"></a>

在此步骤中，Trans AWS form 会生成用于部署容器化应用程序 AWS 的基础架构模板。您可以选择亚马逊 Elastic Kubernetes Service 和亚马逊弹性容器服务作为目标平台。

## 亚马逊 Elastic Kubernetes Service（Kubernetes）
<a name="transform-containers-iac-eks"></a>

如果你选择 Amazon EKS，T AWS ransform 会为你的应用程序生成包含 Kubernetes 清单的 Helm 图表。生成的模板包括：
+ 部署和服务
+ 入口规则
+ ConfigMaps 和 SecretProviderClass 资源
+ 服务账户
+ 永久卷声明（EBS 和 EFS）
+ Route 53 的 DNS 记录
+ Health 检查配置

### 可选： CloudWatch 日志
<a name="transform-containers-iac-eks-logging"></a>

AWS Transform 会询问您是否要为自己的 Amazon EKS 部署添加 CloudWatch 日志记录。如果你选择加入，Trans AWS form 会生成 Fluent Bit DaemonSet 配置，用于收集 pod 日志并将其发送到 CloudWatch 日志。

如果您选择 CloudWatch 日志记录，则您的集群管理员在部署之前必须满足以下先决条件：

1. 在集群中创建`amazon-cloudwatch`命名空间。

1. 为具有 CloudWatch 日志写入权限的 Fluent Bit 服务账户创建一个 IAM 角色。在部署期间，系统会提示您输入角色 ARN。

## 亚马逊弹性容器服务 (Terraform)
<a name="transform-containers-iac-ecs"></a>

如果你选择 Amazon ECS，Trans AWS form 会生成用于部署应用程序的 Terraform 模块。生成的模板包括：
+ ECS 集群
+ 带有任务定义的 ECS 服务
+ 带有访问日志功能的 Application Load Balan
+ 用于永久存储的 Amazon EFS
+ 用于服务发现的私有托管区域
+ Health 检查配置

## 自动验证和安全扫描
<a name="transform-containers-iac-validation"></a>

AWS Transform 会自动验证生成的基础架构模板，然后再将其呈现给您。验证包括：
+ 对于 Terraform：`terraform fmt``terraform validate`并检查语法和配置的正确性。
+ 对于 Helm：进行图表验证，以验证生成的清单格式是否正确。
+ 使用Checkov进行安全扫描，以识别生成的基础设施代码中潜在的安全错误配置。

AWS Transform 会报告任何验证问题并在继续操作之前解决这些问题。

## 在没有已发布图像的情况下生成 IaC
<a name="transform-containers-iac-decoupled"></a>

即使您在上一步中没有发布容器镜像，也可以生成基础设施模板。生成的模板使用占位符图像 URI，您可以稍后使用实际图像位置对其进行更新。

## 您需要了解的内容
<a name="transform-containers-iac-user-actions"></a>

**生成基础架构模板**

1. 出现提示时，选择您的目标平台：**Amazon EK** S 或 A **mazon ECS**。

1. 如果您选择了 Amazon EKS，T AWS ransform 会询问是否包含 CloudWatch 日志记录。回答 “是” 或 “否”。

1. 如果出现提示，请提供应用程序的运行状况检查端点详细信息（例如`/health`路径）。

1. AWS Transform 会生成并验证基础架构模板。此步骤会自动运行，T AWS ransform 会显示进度更新，包括所有验证或安全扫描结果。

1. 当 Transfor AWS m 呈现生成的模板时，请查看它们。