CodePipeline 概述 - AWS Control Tower

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

CodePipeline 概述

配置包需要亚马逊简单存储服务 (Amazon S3) S AWS CodePipeline ervice 和。配置包包含以下项目:

  • 一个清单文件

  • 一组配套模板

  • 用于描述和实现 Cont AWS rol Tower 环境自定义项的其他JSON文件

默认情况下,_custom-control-tower-configuration.zip 配置包按以下命名约定加载到 Amazon S3 存储桶中:

custom-control-tower-configuration-accountID-region.

注意

默认情况下,CfCT 创建一个 Amazon S3 存储桶来存储管道源。大多数客户都使用此默认设置。如果您已有 AWS CodeCommit 存储库,则可以将源位置更改为存储 AWS CodeCommit 库。有关更多信息,请参阅《AWS CodePipeline 用户指南》 CodePipeline中的编辑管道

清单文件是一个文本文件,描述了您可以部署哪些 AWS 资源来自定义 landing zone。 CodePipeline 执行以下任务:

  • 提取清单文件、随附的一组模板和其他JSON文件

  • 执行清单和模板验证

  • 调用清单文件中的各部分来运行特定的管道阶段

通过自定义清单文件并从配置包文件名中删除下划线(_)来更新配置包时,它会自动启动 AWS CodePipeline。

记住下划线

示例配置包文件名以下划线(_)开头,因此不会自动触发 AWS CodePipeline 。完成配置包的自定义后,上传不带下划线(_)的文件 custom-control-tower-configuration.zip,以便在 AWS CodePipeline中触发部署。

AWS CodePipeline 阶段

cfcT 管道需要几个 AWS CodePipeline 阶段才能实施和更新您的 Cont AWS rol Tower 环境。

  1. 源阶段

    源阶段是初始阶段。您的自定义配置包将启动此管道阶段。的源 AWS CodePipeline 可以是 Amazon S3 存储桶,也可以是 AWS CodeCommit 存储库,可以在其中托管配置包。

  2. 构建阶段

    构建阶段 AWS CodeBuild 需要验证配置包的内容。这些检查包括使用 AWS CloudFormation validate-template和测试manifest.yaml文件语法和架构,以及包中包含或远程托管的所有 AWS CloudFormation 模板cfn_nag。如果清单文件和 AWS CloudFormation 模板通过测试,管道将继续执行下一阶段。如果测试失败,您可以查看 CodeBuild 日志以确定问题,并根据需要编辑配置源文件。

  3. 手动审批阶段(可选)

    手动审批阶段为可选阶段。如果启用此阶段,它将提供对配置管道的额外控制。它会在部署期间暂停管道,直到获得审批。启动堆栈时,您可以通过将管道审批阶段参数编辑为来选择手动审批。

  4. 政策阶段

    策略阶段调用服务控制策略 (SCP) 或资源控制策略 (RCP) 状态机来调用 AWS Organizations APIs创建SCPs或。RCPs

  5. AWS CloudFormation 资源阶段

    AWS CloudFormation 资源阶段调用堆栈集状态机来部署您在清单文件中提供的账户或组织单位列表 (OUs) 中指定的资源。状态机按照清单文件中指定的顺序创建 AWS CloudFormation 资源。要指定资源依赖关系,请按照清单文件中指定资源的顺序进行排列。清单文件中资源的顺序是指定依赖关系的唯一方法。