

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

# 为 AWS CodeCommit 存储库中的事件配置通知
<a name="how-to-repository-email"></a>

您可以为存储库设置通知规则，以便存储库用户可以收到有关您指定的存储库事件类型的电子邮件。当事件与通知规则设置匹配时，将发送通知。您可以创建一个 Amazon SNS 主题以供通知使用，也可以使用您的 Amazon Web Services 账户中的现有主题。您可以使用 CodeCommit 控制台和 AWS CLI 来配置通知规则。

![\[在 CodeCommit 存储库中配置的通知规则\]](http://docs.aws.amazon.com/zh_cn/codecommit/latest/userguide/images/create-notification-rule-repository.png)


**Topics**
+ [

## 使用存储库通知规则
](#how-to-repository-email-using)
+ [

# 创建通知规则
](notification-rule-create.md)
+ [

# 更改或禁用通知
](how-to-repository-email-console-edit.md)
+ [

# 删除通知
](how-to-repository-email-delete.md)

## 使用存储库通知规则
<a name="how-to-repository-email-using"></a>

配置通知规则可在有人执行影响其他用户的操作时发送电子邮件，从而帮助您的存储库用户了解情况。例如，您可以将通知规则配置为在有人对提交发表评论时发送通知。在此配置中，当一个存储库用户对某个提交中的一行代码发表评论时，其他存储库用户就会收到电子邮件。他们可以登录并查看评论。对评论的响应也会生成电子邮件，以便存储库用户随时了解。

通知规则与仓库触发器不同，也不同于您可以在 2019 年 11 月 5 日之前在 CodeCommit 控制台中配置的通知。
+ 虽然您可以配置触发器来使用 Amazon SNS 发送有关某些存储库事件的电子邮件，但这些事件仅限于操作事件，例如创建分支和将代码推送到分支。触发器不使用 CloudWatch 事件规则来评估存储库事件。其范围更加局限。有关如何使用触发器的更多信息，请参阅[管理存储库触发器](how-to-notify.md)。
+ 2019 年 11 月 5 日之前配置的通知的可用事件类型更少，并且无法配置为与 Amazon Chime 聊天室或 Slack 通道集成。您可以继续使用于 2019 年 11 月 5 日之前配置的通知，但不能创建此类型的通知。相反，可以创建和使用通知规则。我们建议使用通知规则并禁用或删除于 2019 年 11 月 5 日之前创建的通知。有关更多信息，请参阅[创建通知规则](notification-rule-create.md)和[删除通知](how-to-repository-email-delete.md)。

# 创建通知规则
<a name="notification-rule-create"></a>

您可以使用通知规则来通知用户重要更改，例如在存储库中创建推送请求时。通知规则指定用于发送通知的事件和 Amazon SNS 主题。有关更多信息，请参阅[什么是通知？](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html)



**注意**  
此功能在欧洲地区（米兰）区域不可用。要了解如何以该区域提供的体验配置通知，请参阅[配置存储库通知](https://github.com/awsdocs/aws-codecommit-user-guide/blob/master/doc_source/how-to-repository-email-create.2.md)。

您可以使用控制台或 AWS CLI 为创建通知规则 AWS CodeCommit。<a name="notification-rule-create-console"></a>

# 创建通知规则（控制台）
<a name="notification-rule-create-console"></a>

1. 登录 AWS 管理控制台 并打开 CodeCommit 控制台，网址为[https://console.aws.amazon.com/codecommit/](https://console.aws.amazon.com/codecommit/)。

1. 选择 **Repositories (存储库)**，然后选择要在其中添加通知规则的存储库。

1. 在存储库页面上，选择**通知**，然后选择 **Create notification rule (创建通知规则)**。您也可以转到存储库的**设置**页面，然后选择 **Create notification rule (创建通知规则)**。

1. 在 **Notification name（通知名称）**中，输入规则的名称。

1. 如果您只想在通知中 EventBridge 包含提供给 Amazon 的信息，请在 “**详情类型**” 中选择 “**基本**”。如果您想包括提供给 Amazon 的信息 EventBridge 以及可能由 CodeCommit 或通知管理器提供的信息，请选择 “**全**部”。

   有关更多信息，请参阅[了解通知内容和安全性](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security.html#security-notifications)。

1.  在 **Events that trigger notifications（触发通知的事件）**中，选择要为其发送通知的事件。有关更多信息，请参阅[存储库上的通知规则的事件](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#events-ref-repositories)。

1. 在**目标**中，执行下列操作之一：
   + 如果您已将资源配置为与通知一起使用，请在**选择目标类型**中，选择**聊天应用程序中的 Amazon Q 开发者版（Slack）**或 **SNS 主题**。在**选择目标**中，选择客户端的名称（对于在聊天应用程序的 Amazon Q 开发者版中配置的 Slack 客户端）或 Amazon SNS 主题的 Amazon 资源名称（ARN）（对于已使用通知所需策略配置的 Amazon SNS 主题）。
   + 如果您尚未将资源配置为与通知一起使用，请选择**创建目标**，然后选择 **SNS 主题**。在 **codestar-notifications-** 之后提供主题的名称，然后选择**创建**。
**注意**  
如果您在创建通知规则的过程中创建 Amazon SNS 主题，则为您应用允许通知功能将事件发布到主题的策略。使用为通知规则创建的主题有助于确保您仅订阅要接收有关此资源的通知的那些用户。
您不能在创建通知规则的过程中在聊天应用程序中创建 Amazon Q 开发者版。如果您在聊天应用程序（Slack）中选择 Amazon Q 开发者版，您会看到一个按钮，引导您在聊天应用程序的 Amazon Q 开发者版中配置客户端。选择该选项后，会在聊天应用程序控制台中打开 Amazon Q 开发者版。有关更多信息，请参阅[在聊天应用程序中配置通知与 Amazon Q 开发者版之间的集成](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/notifications-chatbot.html)。
如果要使用现有 Amazon SNS 主题作为目标，则在该主题可能存在的任何其他策略之外，您还必须为 AWS CodeStar 通知添加所需的策略。有关更多信息，请参阅[为通知配置 Amazon SNS 主题](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/set-up-sns.html)以及[了解通知内容和安全性](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security.html#security-notifications)。

1. 要完成规则创建，请选择**提交**。

1. 您必须为用户订阅规则的 Amazon SNS 主题，然后他们才能接收通知。有关更多信息，请参阅[为用户订阅作为目标的 Amazon SNS 主题](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/subscribe-users-sns.html)。您还可以在聊天应用程序中设置通知与 Amazon Q 开发者版之间的集成，以将通知发送到 Amazon Chime 聊天室。有关更多信息，请参阅[在聊天应用程序中配置通知与 Amazon Q 开发者版之间的集成](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/notifications-chatbot.html)。<a name="notification-rule-create-cli"></a>

# 创建通知规则（AWS CLI）
<a name="notification-rule-create-cli"></a>

1. 在终端或命令提示符处，运行 **create-notification rule** 命令以生成 JSON 骨架：

   ```
   aws codestar-notifications create-notification-rule --generate-cli-skeleton > rule.json
   ```

   您可以将此文件命名为所需的任意名称。在本示例中，文件命名为 *rule.json*。

1. 在纯文本编辑器中打开 JSON 文件，然后对其进行编辑，以包括该规则所需的资源、事件类型和目标。以下示例显示了名为 ID *123456789012* 的 AWS 账户*MyDemoRepo*中名**MyNotificationRule**为存储库的通知规则。具有完整详细信息的通知将发送到创建分支和标签*MyNotificationTopic*时命名的 Amazon SNS 主题：

   ```
   {
       "Name": "MyNotificationRule",
       "EventTypeIds": [
           "codecommit-repository-branches-and-tags-created"
       ],
       "Resource": "arn:aws:codecommit:us-east-1:123456789012:MyDemoRepo",
       "Targets": [
           {
               "TargetType": "SNS",
               "TargetAddress": "arn:aws:sns:us-east-1:123456789012:MyNotificationTopic"
           }
       ],
       "Status": "ENABLED",
       "DetailType": "FULL"
   }
   ```

   保存该文件。

1. 通过使用您刚编辑的文件，在终端或命令行上，再次运行 **create-notification-rule** 命令以创建通知规则：

   ```
   aws codestar-notifications create-notification-rule --cli-input-json  file://rule.json
   ```

1. 如果成功，该命令将返回通知规则的 ARN，类似于以下内容：

   ```
   {
       "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE"
   }
   ```

# 更改或禁用通知
<a name="how-to-repository-email-console-edit"></a>

您可以使用 AWS CodeCommit 控制台更改 2019 年 11 月 5 日之前创建的通知的配置方式，包括向用户发送电子邮件的事件类型和用于发送有关存储库的电子邮件的 Amazon SNS 主题。您还可以使用 CodeCommit 控制台管理订阅主题的电子邮件地址和终端节点的列表或禁用通知。<a name="how-to-repository-email-change-console"></a>

**更改通知设置**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在**存储库**中，选择要在其中配置于 2019 年 11 月 5 日之前创建的通知的存储库名称。

1. 在导航窗格中，选择**设置**，然后选择**通知**。如果您看到一个横幅，告知您有通知而不是通知规则，请选择 **Manage existing notifications (管理现有通知)**。

1. 选择**编辑**。

1. 进行更改，然后选择 **Save**。

禁用通知是临时阻止用户接收有关存储库事件的电子邮件的简便方法。

要永久删除于 2019 年 11 月 5 日之前创建的通知，请按照 [删除通知](how-to-repository-email-delete.md) 中的步骤进行操作。<a name="how-to-repository-email-disable-console"></a>

**禁用通知**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在 **Repositories (存储库)** 中，选择要在其中禁用通知的存储库的名称。

1. 在导航窗格中，选择**设置**，然后选择**通知**。选择 **Manage existing notifications (管理现有通知)**。

1. 选择**编辑**，然后在 **事件状态** 中，使用滑块以关闭 **Enable notifications (启用通知)**。选择**保存**。

1. 事件状态将更改为**已禁用**。将不会发送关于事件的电子邮件。禁用通知后，存储库 CloudWatch 的事件规则将自动禁用。请勿在 CloudWatch 事件控制台中手动更改其状态。

# 删除通知
<a name="how-to-repository-email-delete"></a>

如果您不想再使用在 2019 年 11 月 5 日之前为存储库创建的通知，则可以删除与该通知关联的 Amazon CloudWatch Events 规则。这将自动删除通知。这不会删除任何订阅或用于通知的 Amazon SNS 主题。

**注意**  
如果您从控制台更改了存储库的名称，2019 年 11 月 5 日之前创建的通知将继续工作，无需修改。但是，如果您从命令行或使用 API 更改了存储库的名称，通知将不再有效。还原通知的最简单的方法是删除通知设置并再次配置。<a name="how-to-repository-email-delete-console"></a>

**删除通知设置**

1. 在 [https://console.aws.amazon.com/codesuite/codemmit](https://console.aws.amazon.com/codesuite/codecommit/home) /home 打开 CodeCommit 控制台。

1. 在 **Repositories (存储库)** 中，选择要在其中删除于 2019 年 11 月 5 日之前创建的通知的存储库名称。

1. 在导航窗格中，选择**设置**，然后选择**通知**。如果您看到一个横幅，告知您有通知而不是通知规则，请选择 **Manage existing notifications (管理现有通知)**。

1. 在**CloudWatch 事件规则**中，复制为通知创建的规则的名称。

1. 登录 AWS 管理控制台 并打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1. 在**事件**中，选择**规则**。在**名称**中，粘贴为通知创建的规则的名称。选择规则，然后在**操作**中，选择**删除**。

1. [（可选）要在删除通知设置后更改或删除用于通知的 Amazon SNS 主题，请访问 v3/home 上的 Amazon SNS 控制台。https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)有关更多信息，请参阅 [Amazon Simple Notification Service 开发人员指南](https://docs.aws.amazon.com/sns/latest/dg/)中的[清除](https://docs.aws.amazon.com/sns/latest/dg/CleanUp.html)。