在 CodePipeline 中管理审批操作 - AWS CodePipeline

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

在 CodePipeline 中管理审批操作

在 AWS CodePipeline 中,您可以在管道内某个阶段中您希望管道执行停止的位置添加审批操作,以便拥有所需 AWS Identity and Access Management 权限的人可以批准或拒绝该操作。

如果操作获得批准,管道执行将恢复。如果操作被拒绝(或者在管道到达该操作后停止的七天内无人批准或拒绝该操作),结果将与操作失败相同,并且管道执行不会继续。

您可能会出于以下原因使用手动审批:

  • 您希望有人在修订获准进入管道的下一阶段之前,执行代码审核或变更管理审核。

  • 您希望有人在应用程序的最新版本发布之前,对其执行手动质量保证测试,或者确认生成项目的完整性。

  • 您希望有人在新文本或更新的文本发布到公司网站之前对其进行审核。

关于在 CodePipeline 中手动审批操作的配置选项

CodePipeline 提供了三个配置选项,可用来向审批者告知审批操作事宜。

发布审批通知您可以配置一项审批操作,以便当管道在该操作停止时,向 Amazon Simple Notification Service 主题发布消息。Amazon SNS 会将消息传递给订阅该主题的每个端点。对于所使用的主题,创建该主题时所在的 AWS 区域必须与包含审批操作的管道相同。在创建主题时,我们建议您为主题指定一个标识其用途的名称,并采用 MyFirstPipeline-us-east-2-approval 这样的格式。

向 Amazon SNS 主题发布审批通知时,您可以从各种形式中做出选择,如电子邮件或 SMS 收件人、SQS 队列、HTTP/HTTPS 端点或您使用 Amazon SNS 调用的 AWS Lambda 函数。有关 Amazon SNS 主题通知的信息,请参阅以下主题:

有关为审批操作通知生成的 JSON 数据的结构,请参阅CodePipeline 中手动审批通知的 JSON 数据格式

指定用于审阅的 URL 作为审批操作配置的一部分,您可以指定要审阅的 URL。该 URL 可能是一个指向以下内容的链接:指向您希望审批者进行测试的 Web 应用程序,或指向包含有关审批请求的更多信息的页面。该 URL 包含在发布到 Amazon SNS 主题的通知中。审批者可以使用控制台或 CLI 查看它。

输入审批者注释 在创建审批操作时,您还可以添加注释,这些注释将显示给接收通知的人员或者在控制台或 CLI 响应中查看操作的人员。

无配置选项 您也可以选择不配置这三个选项中的任何一个。您可能不需要它们,例如,您可直接通知某人该操作已可供他们审核,或者您只希望管道停止,直到您决定自行批准操作。

CodePipeline 中审批操作的设置和工作流概述

下面概述了设置和使用手动审批的过程。

  1. 您应向组织中的一个或多个 IAM 角色授予批准或拒绝审批操作所需的 IAM 权限。

  2. (可选)如果使用 Amazon SNS 通知,则应确保您在 CodePipeline 操作中使用的服务角色有权访问 Amazon SNS 资源。

  3. (可选)如果使用 Amazon SNS 通知,则应创建一个 Amazon SNS 主题并向其添加一个或多个订阅用户或端点。

  4. 当您使用 AWS CLI 创建管道时,或者在使用 CLI 或控制台创建管道之后,可以向管道的阶段添加审批操作。

    如果要使用通知,您应在操作的配置中包含 Amazon SNS 主题的 Amazon 资源名称(ARN)。(ARN 是亚马逊资源的唯一标识符。Amazon SNS 主题的 ARN 的结构类似于 arn:aws:sns:us-east-2:80398EXAMPLE:MyApprovalTopic。有关更多信息,请参阅 Amazon Web Services 一般参考 中的 Amazon 资源名称(ARN)和 AWS 服务 命名空间。)

  5. 管道在到达审批操作时停止。如果在操作的配置中包含 Amazon SNS 主题 ARN,则会向 Amazon SNS 主题发布通知,并向该主题的所有订阅用户或订阅的端点发送消息,其中包含用于在控制台中查看审批操作的链接。

  6. 审批者检查目标 URL 并查看注释(如果有)。

  7. 审批者使用控制台、CLI 或软件开发工具包提供摘要注释并提交响应:

    • 批准:管道执行将恢复。

    • 拒绝:阶段状态更改为“Failed”,并且管道执行不恢复。

    如果七天内未提交任何响应,操作将标记为“Failed”。