创建通知规则 - 开发工具控制台

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

创建通知规则

您可以使用开发工具控制台或 AWS CLI 创建通知规则。您可以在创建规则的过程中,创建一个 Amazon SNS 主题来用作通知规则的目标。如果要将 AWS Chatbot 客户端用作目标,您必须先创建该客户端,然后才能创建规则。有关更多信息,请参阅为 Slack 通道配置 AWS Chatbot 客户端

创建通知规则(控制台)

  1. 打开 https://console.aws.amazon.com/codesuite/settings/notifications 上的 AWS 开发工具控制台。

  2. 使用导航栏导航到该资源。

    • 对于 CodeBuild,选择 Build (构建),选择 Build projects (构建项目),然后选择一个构建项目。

    • 对于 CodeCommit,选择 Source (源),选择 Repositories (存储库),并选择一个存储库。

    • 对于 CodeDeploy,请选择 Applications (应用程序),然后选择一个应用程序。

    • 对于 CodePipeline,请选择 Pipeline (管道),再选择 Pipelines (管道),然后选择一个管道。

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

  4. Notification name (通知名称) 中,输入规则的名称。

  5. 如果您只想在通知中包含提供给 Amazon EventBridge 的信息,则在 Detail type (详细信息类型) 中,选择 Basic (基本)。如果您希望包含提供给 Amazon EventBridge 的信息以及资源服务或通知管理器可能提供的信息,选择 Full (完整)

    有关更多信息,请参阅了解通知内容和安全性

  6. Events that trigger notifications (触发通知的事件) 中,选择要为其发送通知的事件。有关资源的事件类型,请参阅以下内容:

  7. 目标中,执行下列操作之一:

    • 如果您已将资源配置为与通知一起使用,请在选择目标类型中,选择 AWS Chatbot (Slack)AWS Chatbot (Microsoft Teams)SNS 主题。在 选择目标中,选择客户端的名称(对于在 AWS Chatbot 中配置的 Slack 或 Microsoft Teams 客户端)或 Amazon SNS 主题的 Amazon 资源名称(ARN)(对于已使用通知所需策略配置的 Amazon SNS 主题)。

    • 如果您尚未将资源配置为与通知一起使用,请选择 Create target (创建目标),然后选择 SNS topic (SNS 主题)。在 codestar-notifications- 之后提供主题的名称,然后选择 Create (创建)

    注意
    • 如果您在创建通知规则的过程中创建 Amazon SNS 主题,则为您应用允许通知功能将事件发布到主题的策略。使用为通知规则创建的主题有助于确保您仅订阅要接收有关此资源的通知的那些用户。

    • 您不能在创建通知规则的过程中创建 AWS Chatbot 客户端。如果您选择 AWS Chatbot (Slack) 或 AWS Chatbot (Microsoft Teams),则将看到一个按钮,指示您在 AWS Chatbot 中配置客户端。选择该选项将打开 AWS Chatbot 控制台。有关更多信息,请参阅为 Slack 通道配置 AWS Chatbot 客户端

    • 如果要使用现有 Amazon SNS 主题作为目标,则在该主题可能存在的任何其他策略之外,您还必须为 AWS CodeStar 通知添加所需的策略。有关更多信息,请参阅 配置通知的 Amazon SNS 主题了解通知内容和安全性

  8. 选择 Submit (提交),然后查看通知规则。

    注意

    用户必须订阅并确认订阅您指定为规则目标的 Amazon SNS 主题,然后才能收到通知。有关更多信息,请参阅为用户订阅用于通知的 Amazon SNS 主题

创建通知规则 (AWS CLI)

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

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

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

  2. 在纯文本编辑器中打开 JSON 文件,然后对其进行编辑,以包括该规则所需的资源、事件类型和 Amazon SNS 目标。

    以下示例显示了一个名为 MyNotificationRule 的通知规则,应用于 ID 123456789012 的 AWS 账户名为 MyDemoRepo 的存储库。在创建分支和标签时,具有完整详情类型的通知将发送到名为 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" }

    保存该文件。

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

    aws codestar-notifications create-notification-rule --cli-input-json file://rule.json
  4. 如果成功,该命令将返回通知规则的 ARN,类似于以下内容。

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

列出通知规则的事件类型 (AWS CLI)

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

    aws codestar-notifications list-event-types --filters Name=SERVICE_NAME,Value=CodeDeploy
  2. 此命令生成类似于下述信息的输出。

    { "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" } ] }

向通知规则添加标签 (AWS CLI)

  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
  2. 此命令生成类似于下述信息的输出。

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