本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通知概念
如果您了解概念和术语,则可更轻松地设置和使用通知。以下是使用通知时要了解的一些概念。
通知
通知 是一条消息,其中包含有关您和开发人员使用的资源中所发生事件的信息。您可以设置通知,以使资源(例如构建项目、存储库、部署应用程序或管道)的用户根据您创建的通知规则,接收有关您指定的事件类型的电子邮件。
通过使用会话标签,AWS CodeCommit 的通知可以包含用户身份信息,例如显示名称或电子邮件地址。CodeCommit 支持使用会话标签,这些标签是您在代入 IAM 角色、使用临时凭证或在 AWS Security Token Service (AWS STS) 中对用户进行联合身份验证时传递的键值对属性。您还可以将标签与 IAM 用户关联。CodeCommit 在通知内容中包括 displayName
和 emailAddress
的值(如果存在这些标签)。有关更多信息,请参阅使用标签在 CodeCommit 中提供其他身份信息。
重要
通知包括特定于项目的信息,例如构建状态、部署状态、具有注释的代码行和管道批准。在添加新功能时,通知内容可能会发生变化。作为安全最佳实践,您应定期查看通知规则和 Amazon SNS 主题订阅者的目标。有关更多信息,请参阅了解通知内容和安全性。
通知规则
通知规则是您创建的 AWS 资源,用于指定发送通知的时间和地点。它定义:
-
创建通知的条件。这些条件基于您选择的事件,特定于资源类型。支持的资源类型包括 AWS CodeBuild 中的构建项目、AWS CodeDeploy 中的部署应用程序、AWS CodePipeline 中的管道和 AWS CodeCommit 中的存储库。
-
将通知发送到的目标。您最多可以为一个通知规则指定 10 个目标。
通知规则的范围仅限于各个构建项目、部署应用程序、管道和存储库。通知规则同时具有用户定义的友好名称和 Amazon 资源名称 (ARN)。必须在资源所在的同一 AWS 区域中创建通知规则。例如,如果您在美国东部(俄亥俄)区域中构建项目,则还必须在美国东部(俄亥俄)区域中创建您的通知规则。
您最多可以为资源定义 10 条通知规则。
事件
事件 是要监视的资源上的状态更改。每个资源都有事件类型的列表,您可以从中进行选择。在资源上设置通知规则时,可以指定导致发送通知的事件。例如,如果您在 CodeCommit 中为存储库设置通知,并为 Pull request (拉取请求) 和 Branches and tags (分支和标签) 选择 Created (已创建),则每当存储库中的用户创建拉取请求、分支或 Git 标签时,都会发送通知。
详细信息类型
创建通知规则时,您可以选择通知中包含的详细信息级别或详细信息类型 (Full (完整) 或 Basic (基本))。Full (完整) 设置(默认)在通知中包括可用于事件的所有信息,包括服务针对特定事件提供的任何增强信息。Basic (基本) 设置仅包括可用信息的子集。
下表列出可用于特定事件类型的增强信息,并描述详细信息类型之间的差异。
服务 | 事件 | Full (完整) 包含 | Basic (基本) 不包括 |
---|---|---|---|
CodeCommit |
关于提交的注释 关于拉取请求的注释 |
所有事件详细信息和注释的内容,包括任何回复或注释主题。它还包括注释所依据的行号和代码行。 |
注释的内容、行号、代码行或任何注释主题。 |
CodeCommit |
已创建拉取请求 |
拉取请求中与目标分支相关的所有事件详细信息以及添加、修改或删除的文件数。 |
没有关于拉取请求源分支是否已添加、修改或删除文件的文件列表或详细信息。 |
CodePipeline |
需要手动批准 |
所有事件详细信息和自定义数据(如果已配置)。通知还包含指向管道中所需批准的链接。 |
没有自定义数据或链接。 |
CodePipeline |
操作执行失败 管道执行失败 阶段执行失败 |
故障的所有事件详细信息和错误消息的内容。 |
没有错误消息内容。 |
目标
目标 是从通知规则接收通知的位置。允许的目标类型是为 Slack 或 Microsoft Teams 通道配置的 Amazon SNS 主题和 AWS Chatbot 客户端。订阅目标的任何用户都会收到有关您在通知规则中指定的事件的通知。
如果您要扩展通知的范围,可以手动配置通知和 AWS Chatbot 之间的集成,以便将通知发送到 Amazon Chime 聊天室。然后,您可以选择为该 AWS Chatbot 客户端配置的 Amazon SNS 主题作为通知规则的目标。有关更多信息,请参阅将通知与 AWS Chatbot 和 Amazon Chime 集成。
如果选择将 AWS Chatbot 客户端用作目标,则必须首先在 AWS Chatbot 中创建该客户端。当您选择 AWS Chatbot 客户端作为通知规则的目标时,会为该 AWS Chatbot 客户端配置一个 Amazon SNS 主题,其中包含将通知发送到 Slack 或 Microsoft Teams 通道所需的全部策略。您不必为 AWS Chatbot 客户端配置任何现有 Amazon SNS 主题。
您可选择在创建通知规则的过程中,创建 Amazon SNS 主题作为目标(推荐)。您也可以选择与通知规则位于相同 AWS 区域中的现有 Amazon SNS 主题,但必须使用所需的策略对其进行配置。用于目标的 Amazon SNS 主题必须位于您的 AWS 账户中。并且与通知规则和为其创建规则的 AWS 资源位于同一个 AWS 区域中。
例如,如果您在美国东部(俄亥俄)区域中为存储库创建通知规则,则 Amazon SNS 主题也必须存在于该区域中。如果在创建通知规则的过程中创建一个 Amazon SNS 主题,则会使用允许将事件发布到该主题所需的策略来配置该主题。这是使用目标和通知规则的最佳方法。如果您选择使用已存在的主题或手动创建一个主题,则必须在用户接收通知之前使用所需的权限配置该主题。有关更多信息,请参阅配置通知的 Amazon SNS 主题。
注意
如果要使用现有 Amazon SNS 主题而不是创建新主题,请在 Targets (目标) 中选择其 ARN。请确保主题具有适当的访问策略,并且订阅者列表仅包含允许查看有关资源的信息的用户。如果 Amazon SNS 主题是在 2019 年 11 月 5 日之前用于 CodeCommit 通知的,它将包含允许 CodeCommit 向其发布的策略,该策略包含的权限与 AWS CodeStar 通知所需的权限不同。建议不使用这些主题。如果要使用为该体验创建的策略,则除了已存在的策略之外,还必须添加 AWS CodeStar 通知所需的策略。有关更多信息,请参阅 配置通知的 Amazon SNS 主题 和 了解通知内容和安全性:
通知和 AWS CodeStar 通知
通知是开发工具控制台的一项功能,它具有自己的 API,即 AWS CodeStar 通知。它还具有自己的 AWS 资源类型(通知规则)、权限和事件。通知规则的事件将记录在 AWS CloudTrail 中。可以通过 IAM 策略允许或拒绝 API 操作。
存储库的通知规则的事件
类别 | 事件 | 事件 ID |
---|---|---|
注释 |
提交时 拉取请求时 |
|
审批 |
状态已更改 规则覆盖 |
|
拉取请求 |
已创建 源代码已更新 状态已更改 已合并 |
|
分支和标签 |
已创建 Deleted (已删除) Updated |
codecommit-repository-branches-and-tags-updated |
构建项目的通知规则的事件
类别 | 事件 | 事件 ID |
---|---|---|
构建状态 |
Failed Succeeded 进行中 Stopped (已停止) |
|
构建阶段 |
失败 成功 |
|
部署应用程序上的通知规则事件
类别 | 事件 | 事件 ID |
---|---|---|
部署 |
Failed Succeeded Started |
codedeploy-application-deployment-started |
管道的通知规则的事件
类别 | 事件 | 事件 ID |
---|---|---|
操作执行 |
Succeeded Failed 已取消 Started |
|
阶段执行 |
Started Succeeded 已恢复 已取消 已失败 |
|
管道执行 |
Failed 已取消 Started 已恢复 Succeeded 已取代 |
|
手动审批 |
Failed 需要 Succeeded |
codepipeline-pipeline-manual-approval-succeeded |