

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

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

您可以使用开发者工具控制台或 AWS CLI 来创建通知规则。您可以在创建规则的过程中，创建一个 Amazon SNS 主题来用作通知规则的目标。如果您想使用 AWS Chatbot 客户端作为目标，则必须先创建该客户端，然后才能创建规则。有关更多信息，请参阅 [为 Slack 频道配置 AWS 聊天机器人客户端](notifications-chatbot.md#notifications-chatbot-configure-client)。<a name="notification-rule-create-console"></a>

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

1. 在[https://console.aws.amazon.com/codesuite/设置/ AWS](https://console.aws.amazon.com/codesuite/settings/notifications/) 通知中打开开发者工具控制台。

1. 使用导航栏导航到该资源。
   + 对于 CodeBuild，选择 “**构建****”，选择 “生成项目**”，然后选择生成项目。
   + 对于 CodeCommit，选择**源**，选择**存储库**，然后选择存储库。
   + 对于 CodeDeploy，选择**应用程序**，然后选择一个应用程序。
   + 对于 CodePipeline，选择 “**管****道”，选择 “管道**”，然后选择管道。

1. 在资源页面上，选择 **Notify (通知)**，然后选择 **Create notification rule (创建通知规则)**。您也可以转到资源的 **Settings (设置)** 页面，转到 **Notifications (通知)** 或 **Notification rules (通知规则)**，然后选择 **Create notification rule (创建通知规则)**。

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

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

   有关更多信息，请参阅 [了解通知内容和安全性](security.md#security-notifications)。

1.  在 **Events that trigger notifications（触发通知的事件）**中，选择要为其发送通知的事件。有关资源的事件类型，请参阅以下内容：
   + CodeBuild: [构建项目的通知规则的事件](concepts.md#events-ref-buildproject)
   + CodeCommit: [存储库的通知规则的事件](concepts.md#events-ref-repositories)
   + CodeDeploy: [部署应用程序上的通知规则事件](concepts.md#events-ref-deployapplication)
   + CodePipeline: [管道的通知规则的事件](concepts.md#events-ref-pipeline)

1. 在**目标**中，执行下列操作之一：
   + 如果您已将资源配置为与通知一起使用，请在**选择目标类型**中，选择 **AWS Chatbot (Slack)**、**AWS Chatbot (Microsoft Teams)** 或 **SNS 主题**。在**选择目标**中，选择客户名称（适用于在聊天 AWS 机器人中配置的 Slack 或 Microsoft Teams 客户端）或亚马逊 SNS 主题的亚马逊资源名称 (ARN)（适用于已经配置了通知所需策略的 Amazon SNS 主题）。
   + 如果您尚未将资源配置为与通知一起使用，请选择**创建目标**，然后选择 **SNS 主题**。在 **codestar-notifications-** 之后提供主题的名称，然后选择**创建**。
**注意**  
如果您在创建通知规则的过程中创建 Amazon SNS 主题，则为您应用允许通知功能将事件发布到主题的策略。使用为通知规则创建的主题有助于确保您仅订阅要接收有关此资源的通知的那些用户。
在创建通知规则的过程中，您无法创建 AWS Chatbot 客户端。如果你选择 AWS 聊天机器人（Slack）或聊天机器人 AWS （Microsoft Teams），你会看到一个按钮，指示你在聊天机器人中配置客户端。 AWS 选择该选项会打开 AWS Chatbot 控制台。有关更多信息，请参阅 [为 Slack 频道配置 AWS 聊天机器人客户端](notifications-chatbot.md#notifications-chatbot-configure-client)。
如果您想使用现有 Amazon SNS 主题作为目标，除了该主题可能存在的任何其他策略外，还必须添加所需的 AWS CodeStar 通知策略。有关更多信息，请参阅[配置通知的 Amazon SNS 主题](set-up-sns.md)和[了解通知内容和安全性](security.md#security-notifications)。


1. 选择 **Submit (提交)**，然后查看通知规则。
**注意**  
用户必须订阅并确认订阅您指定为规则目标的 Amazon SNS 主题，然后才能收到通知。有关更多信息，请参阅 [为用户订阅用于通知的 Amazon SNS 主题](subscribe-users-sns.md#set-up-sns-subscribe)。<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 文件，然后对其进行编辑，以包括该规则所需的资源、事件类型和 Amazon SNS 目标。

   以下示例显示了名为 ID 的 AWS 账户{{MyDemoRepo}}中名**MyNotificationRule**为存储库的通知规则{{123456789012}}。具有完整详细信息的通知将发送到创建分支和标签{{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="notification-rule-list-event-types"></a>

# 列出通知规则的事件类型 (AWS CLI)
<a name="notification-rule-list-event-types"></a>

1. 在终端或命令提示符处，运行 **list-event-types** 命令。您可以使用 `--filters` 选项将响应限制为特定资源类型或其他属性。例如，以下内容返回 CodeDeploy 应用程序的事件类型列表。

   ```
   aws codestar-notifications list-event-types --filters Name=SERVICE_NAME,Value=CodeDeploy
   ```

1. 此命令生成类似于下述信息的输出。

   ```
   {
       "EventTypes": [
           {
               "EventTypeId": "codedeploy-application-deployment-succeeded",
               "ServiceName": "CodeDeploy",
               "EventTypeName": "Deployment: Succeeded",
               "ResourceType": "Application"
           },
           {
               "EventTypeId": "codedeploy-application-deployment-failed",
               "ServiceName": "CodeDeploy",
               "EventTypeName": "Deployment: Failed",
               "ResourceType": "Application"
           },
           {
               "EventTypeId": "codedeploy-application-deployment-started",
               "ServiceName": "CodeDeploy",
               "EventTypeName": "Deployment: Started",
               "ResourceType": "Application"
           }
       ]
   }
   ```<a name="notification-rule-add-tag"></a>

# 向通知规则添加标签 (AWS CLI)
<a name="notification-rule-add-tag"></a>

1. 在终端或命令提示符处，运行 **tag-resource** 命令。例如，使用以下命令添加具有名称{{Team}}和值的标签键值对。{{Li\_Juan}}

   ```
   aws codestar-notifications tag-resource --arn arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/fe1efd35-EXAMPLE --tags Team=Li_Juan
   ```

1. 此命令生成类似于下述信息的输出。

   ```
   {
       "Tags": {
           "Team": "Li_Juan"
       }
   }
   ```