

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

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

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



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

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

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

1. 选择**构建**，再选择**构建项目**，然后选择要在其中添加通知的构建项目。

1. 在构建项目页面上，选择**通知**，然后选择**创建通知规则**。您也可以转到构建项目的**设置**页面，然后选择**创建通知规则**。

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

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

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

1.  在**触发通知的事件**中，选择要为其发送通知的事件。有关详细信息，请参阅[构建项目的通知规则的事件](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#events-ref-buildproject)。

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 codestarnotifications create-notification-rule --generate-cli-skeleton > rule.json
   ```

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

1. 在纯文本编辑器中打开 JSON 文件，然后对其进行编辑，以包括该规则所需的资源、事件类型和目标。以下示例显示了一条**MyNotificationRule**为编译项目命名的通知规则，该项目*MyBuildProject*在 AWS 帐号中名为 ID *123456789012*。*codestar-notifications-MyNotificationTopic*当构建成功时，系统会向名为 Amazon SNS 主题的完整详细信息类型发送通知：

   ```
   {
       "Name": "MyNotificationRule",
       "EventTypeIds": [
           "codebuild-project-build-state-succeeded"
       ],
       "Resource": "arn:aws:codebuild:us-east-2:123456789012:MyBuildProject",
       "Targets": [
           {
               "TargetType": "SNS",
               "TargetAddress": "arn:aws:sns:us-east-2:123456789012:codestar-notifications-MyNotificationTopic"
           }
       ],
       "Status": "ENABLED",
       "DetailType": "FULL"
   }
   ```

   保存该文件。

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

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

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

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