

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

# CloudFormation 采集示例：3 层 Web 应用程序
<a name="cfn-ingest-ex-3-tier"></a>

为标准 3 层 Web 应用程序提取 CloudFormation 模板。

![\[AWS 云 architecture diagram showing VPC with two availability zones, load balancer, and multi-AZ RDS setup.\]](http://docs.aws.amazon.com/zh_cn/managedservices/latest/appguide/images/cfn-ingest-ex-3-tier.png)


这包括应用程序负载均衡器、应用程序负载均衡器目标组、Auto Scaling 组、Auto Scaling 组启动模板、带有 MySQL 数据库的亚马逊关系数据库服务（适用于 SQL Server 的 RDS）、 AWS SSM 参数存储和 S AWS ecrets Manager。请等待 30-60 分钟来完成此示例。

## 先决条件
<a name="cfn-ingest-ex-3-tier-prerequisites"></a>
+ 使用 Secrets Manager 创建包含用户名和密码以及相应值的 AWS 密钥。您可以参考包含密钥名称的[示例 JSON 模板（zip 文件）](samples/3-tier-cfn-ingest-2025.zip)`ams-shared/myapp/dev/dbsecrets`，并将其替换为您的密钥名称。有关将 S AWS ecrets Manager 与 AMS 配合使用的信息，请参阅[将 S AWS ecrets Manager 与 AMS 资源配合使用](secrets-manager.md)。
+ 在 AWS SSM 参数存储 (PS) 中设置必需的参数。在此示例中，私有子网`VPCId`和`Subnet-Id`公有子网的和存储在 SSM PS 中，路径如`/app/DemoApp/PublicSubnet1a`、`PublicSubnet1c``PrivateSubnet1a`、`PrivateSubnet1c`和。`VPCCidr`根据需要更新路径、参数名称和值。
+ 创建一个 IAM Amazon EC2 实例角色，该角色具有对 S AWS ecrets Manager 和 SSM 参数存储路径的读取权限（这些示例中创建和使用的 IAM 角色是`customer-ec2_secrets_manager_instance_profile`）。如果您创建 IAM 标准策略，例如实例配置文件角色，则角色名称必须以开头。`customer-`要创建新的 IAM 角色，（您可以命名它`customer-ec2_secrets_manager_instance_profile`或其他名称）使用 AMS 更改类型管理 \$1 应用程序 \$1 IAM 实例配置文件 \$1 创建 (ct-0ixp4ch2tiu04) CT，然后附加所需的策略。您可以在 IAM 控制台中查看 AMS AWS IAM 标准策略`customer_secrets_manager_policy`和`customer_systemsmanager_parameterstore_policy`，以便按原样使用或作为参考。

## 摄取标准 3 层 Web 应用程序的 CloudFormation 模板
<a name="cfn-ingest-ex-3-tier-procedure"></a>

1. 将随附的示例 CloudFormation JSON 模板作为 zip 文件（[3-tier-cfn-ingest .zip](samples/3-tier-cfn-ingest-2025.zip)）上传到 S3 存储桶，然后生成签名的 S3 网址以在 CFN Ingest RFC 中使用。有关更多信息，请参阅 [presign](https://docs.aws.amazon.com/cli/latest/reference/s3/presign.html)。当你通过 AMS 控制台提交 RFC 时，CFN 模板也可以 copy/pasted 放在 CFN Ingest RFC 中。

1. 通过 AMS 控制台 CloudFormation 或 AMS CLI 创建 Ingest RFC（部署 \$1 Ingestion \$1 来自 CloudFormation 模板的堆栈 \$1 创建 (ct-36cn2avfrrj9v)）。 CloudFormation 采集自动化流程会对 CloudFormation 模板进行验证，以确保该模板具有 AMS 支持的有效资源并符合安全标准。
   + 使用控制台-对于更改类型，**从 “ CloudFormation 模板”-> “**创建**” 中选择 “**部署**”-> “接**收**”-> “堆栈**”，然后添加以下参数作为示例（请注意，“**多**” 的默认值AZDatabase为 false）：

     ```
     CloudFormationTemplateS3Endpoint: "https://s3-ap-southeast-2.amazonaws.com/amzn-s3-demo-bucket/3-tier-cfn-ingest.json?AWSAccessKeyId=#{S3_ACCESS_KEY_ID}&Expires=#{EXPIRE_DATE}&Signature=#{SIGNATURE}"
     VpcId: "VPC_ID"
     TimeoutInMinutes: 120
     IAMEC2InstanceProfile: "customer_ec2_secrets_manager_instance_profile"
     MultiAZDatabase: "true"
     WebServerCapacity: "2"
     ```
   + 使用 AWS CLI -有关 RFCs 使用创建的详细信息 AWS CLI，请参阅[创建 RFCs](https://docs.aws.amazon.com/managedservices/latest/userguide/create-rfcs.html)。例如，运行以下命令：

     ```
     aws --profile=saml amscm create-rfc  --change-type-id ct-36cn2avfrrj9v --change-type-version "2.0" --title "TEST_CFN_INGEST" --execution-parameters "{\"CloudFormationTemplateS3Endpoint\":\"https://s3-ap-southeast-2.amazonaws.com/my-bucket/3-tier-cfn-ingest.json?AWSAccessKeyId=#{S3_ACCESS_KEY_ID}&Expires=#{EXPIRE_DATE}&Signature=#{SIGNATURE}\",\"TimeoutInMinutes\":120,\"Description\":\"TEST\",\”VpcId”\”:\”VPC_ID\”,\"Name\":\"MY_TEST\",\"Tags\":[{\"Key\":\"env\",\"Value\":\"test\"}],\"Parameters\":[{\"Name\":\"IAMEC2InstanceProfile\",\"Value\":\"customer_ec2_secrets_manager_instance_profile\"},{\"Name\":\"MultiAZDatabase\",\"Value\":\"true\"},{\"Name\":\"VpcId\",\"Value\":\"VPC_ID\"},{\"Name\":\"WebServerCapacity\",\"Value\":\"2\"}]}" --endpoint-url https://amscm.us-east-1.amazonaws.com/operational/ --no-verify-ssl
     ```

   在 CloudFormation RFC 执行输出中找到 Application Load Balancer 网址以访问该网站。有关访问资源的信息，请参阅[访问实例](https://docs.aws.amazon.com/managedservices/latest/userguide/access-instance.html)。