

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

# 架构概述
<a name="architecture"></a>

部署 cfcT 将在 AWS 云中构建以下环境，并以 Amazon S3 存储桶作为配置源。

![\[AWS Control Tower 自定义项的架构图\]](http://docs.aws.amazon.com/zh_cn/controltower/latest/userguide/images/customizations-for-aws-control-tower-architecture-diagram.png)


cfcT 包括一个您在 AWS Control Tower 管理账户中部署的 AWS CloudFormation 模板。该模板会启动构建工作流所需的所有组件，因此您可以自定义 AWS Control Tower 登录区。

**注意**  
CfCT 必须部署在 AWS Control Tower 主区域和 AWS Control Tower 管理账户中，因为 AWS Control Tower 登录区正是部署在这些位置。有关设置 AWS Control Tower 登录区的信息，请参阅 [开始使用 AWS Control Tower](getting-started-with-control-tower.md)。

在部署 CfCT 时，它会通过 [Amazon Simple Storage Service](https://aws.amazon.com/s3/)（Amazon S3）将自定义资源打包并上传到代码管道源。上传过程会自动调用服务控制策略 (SCPs) 状态机和[AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)状态机以 SCPs 在 OU 级别部署，或者在 OU 或账户级别部署堆栈实例。

**备注**  
默认情况下，CfCT 创建一个 Amazon S3 存储桶来存储管道源。如果您已有 AWS CodeCommit 存储库，则可以将其位置更改为[CodeCommit](https://aws.amazon.com/codecommit/)存储库。有关更多信息，请参阅 [[Set up Amazon S3 as the configuration source](cfct-s3-source.md)](cfct-s3-source.md)。

**CfCT 会部署两个工作流：**
+ [AWS CodePipeline](https://aws.amazon.com/codepipeline/) 工作流
+ 以及 AWS Control Tower 生命周期事件工作流。

**工作 AWS CodePipeline 流程**

工作 AWS CodePipeline 流程用于配置 AWS CodePipeline、[AWS CodeBuild](https://aws.amazon.com/codebuild/)项目和[AWS Step Functions](https://aws.amazon.com/step-functions/)协调组织内部的 AWS CloudFormation StackSets 管理。 SCPs

当您上传配置包时，CfCT 会调用代码管道来运行三个阶段。
+ **构建阶段** — 使用 AWS CodeBuild 验证配置包的内容。
+ **SCP Stag** e — 调用服务控制策略状态机，该状态机调用 AWS Organizations API 进行创建。 SCPs
+ CloudFormation St@@ **ag** e — 调用堆栈集状态机来部署您在清单[文件中提供的账户列表或 OUs中](the-manifest-file.md)指定的资源。

在每个阶段，代码管道都会调用堆栈集和 SCP 步骤函数，这些函数将自定义堆栈集部署 SCPs 到目标个人账户或整个组织单位。

**备注**  
有关自定义配置包的详细信息，请参阅 [CfCT 自定义指南](cfct-customizations-dev-guide.md)。

**AWS Control Tower 生命周期事件工作流**

在 AWS Control Tower 中创建新账户时，[生命周期事件](lifecycle-events.md)可以调用 AWS CodePipeline 工作流程。您可以通过此工作流程自定义配置包，该工作流程包括[亚马逊 EventBridge事件规则、亚马逊](https://aws.amazon.com/eventbridge/)[简单队列服务](https://aws.amazon.com/sqs/) (Amazon SQS) 先入先出 (FIFO) 队列和函数。[AWS Lambda](https://aws.amazon.com/lambda/)

当 Amazon EventBridge 事件规则检测到匹配的生命周期事件时，它会将事件传递到 Amazon SQS FIFO 队列，调用该 AWS Lambda 函数，然后调用代码管道来执行堆栈集的下游部署和。 SCPs