建立通知規則 - 開發人員工具主控台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立通知規則

您可以使用開發人員工具主控台或 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. Targets (目標) 中,執行下列其中一個動作:

    • 如果您已設定要與通知搭配使用的資源,請在選擇目標類型中,AWS Chatbot (Slack)AWS Chatbot (Microsoft Teams) 或 SNS topic。在選擇目標中,選擇用戶端的名稱 (適用於在 AWS Chatbot 中設定的 Slack 或 Microsoft Team 用戶端),或 Amazon SNS 主題的 Amazon Resource Name (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 Notifications 新增必要政策。如需詳細資訊,請參閱設定通知的 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 的通知規則,用於 AWS 帳戶 (ID 為 123456789012) 中的 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" } }