通知概念 - 開發人員工具主控台

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

通知概念

如果您瞭解概念和術語,設定和使用通知會比較容易。以下是使用通知時需要瞭解的一些概念。

通知

通知是一種訊息,其中包含您和開發人員使用的資源中所發生事件的相關資訊。您可以設定通知,以便資源 (例如組建專案、儲存庫、部署應用程式或管道) 的使用者根據您建立的通知規則,接收您指定之事件類型相關的電子郵件。

AWS CodeCommit 的通知可以透過使用工作階段標籤來包含使用者身分資訊,例如顯示名稱或電子郵件地址。CodeCommit 支援使用工作階段標籤,這類標籤是您在擔任 IAM 角色、使用臨時憑證,或在 AWS Security Token Service (AWS STS) 中聯合使用者時所傳遞且為索引鍵值組的屬性。您也可以將這類標籤與 IAM 使用者建立關聯。CodeCommit 在通知內容中包含 displayNameemailAddress (如果這些標籤存在)。如需詳細資訊,請參閱在 CodeCommit 中使用標籤提供其他身分資訊

重要

通知包含專案特定資訊,例如組建狀態、部署狀態、具有註解的程式碼行,以及管道核准。通知內容可能隨著新功能加入而變更。定期檢閱通知規則的目標和 Amazon SNS 主題訂閱者,才是安全性最佳實務。如需更多詳細資訊,請參閱 了解通知內容和安全性

通知規則

通知規則是您建立的 AWS 資源,用來指定傳送通知的時間與位置。其可定義:

  • 建立通知的條件。這些條件是以您選擇的事件 (資源類型特有的事件) 為基礎。支援的資源類型包括 AWS CodeBuild 中的組建專案、AWS CodeDeploy 中的部署應用程式、AWS CodePipeline 中的管道,以及 AWS CodeCommit 中的儲存庫。

  • 通知的傳送目標。您可以針對一個通知規則最多指定 10 個目標。

通知規則的範圍侷限於個別組建專案、部署應用程式、管道及儲存庫。通知規則同時具有使用者定義的易用名稱和 Amazon Resource Name (ARN)。通知規則必須在資源所在的相同 AWS 區域中建立。例如,如果您的建置專案位於美國東部 (俄亥俄)區域,則通知規則也必須在美國東部 (俄亥俄)區域中建立。

您可以針對一個資源最多定義 10 個通知規則。

事件

事件是您想要監控之資源的狀態變更。每個資源都有您可從中選擇的事件類型清單。當您在資源上設定通知規則時,您可以指定導致傳送通知的事件。例如,如果您在 CodeCommit 中設定儲存庫的通知,並針對 Pull request (提取請求)Branches and tags (分支與標籤) 選取 Created (已建立),則每當該儲存庫中的使用者建立提取請求、分支或 Git 標籤時,都會傳送通知。

詳細資訊類型

當您建立通知規則時,可以選擇通知中包含的細節層次和 detail type (詳細資訊類型) (Full (完整)Basic (基本))。Full (完整) 設定 (預設) 包含通知中可用於事件的所有資訊,包括服務特定事件提供的所有增強資訊。Basic (基本) 設定僅包含可用資訊的子集合。

下表列出特定事件類型可用的增強資訊,並說明詳細資訊類型之間的差異。

服務 事件 完整包含 基本不包括

CodeCommit:

遞交時的註解

提取請求的註解

所有事件詳細資訊和註解的內容,包括任何回覆或註解對話。它也包含行號和對其進行註釋的程式碼行。

註解的內容、行號、程式碼行,或任何註解對話。

CodeCommit:

已建立提取請求

所有事件詳細資訊,以及與目的地分支相關之提取請求中新增、修改或刪除的檔案數目。

沒有檔案清單或關於提取請求來源分支是否已新增、修改或刪除檔案的詳細資訊。

CodePipeline

需要手動核准

所有事件詳細資訊和自訂資料 (如果已設定)。通知也包含管道中必要核准的連結。

沒有自訂資料或連結。

CodePipeline

動作執行失敗

管道執行失敗

階段執行失敗

所有事件詳細資訊和失敗的錯誤訊息內容。

沒有錯誤訊息內容。

目標

目標是接收來自通知規則之通知的位置。允許的目標類型是為 Slack 頻道或 Microsoft Team 頻道設定的 Amazon SNS 主題和 AWS Chatbot 用戶端。任何訂閱目標的使用者都會收到您在通知規則中指定之事件的相關通知。

如果您想要擴展通知的範圍,可以手動設定通知與 AWS Chatbot 之間的整合,以便將通知傳送到 Amazon Chime 聊天室。然後,您可以選擇為該 AWS Chatbot 用戶端設定的 Amazon SNS 主題,做為通知規則的目標。如需更多詳細資訊,請參閱 將通知與 AWS Chatbot 和 Amazon Chime 整合

如果您選擇使用 AWS Chatbot 用戶端做為目標,則必須先在 AWS Chatbot 中建立該用戶端。當您選擇 AWS Chatbot 用戶端做為通知規則的目標時,系統會為該 AWS Chatbot 用戶端設定 Amazon SNS 主題,其中包含將通知傳送至 Slack 或 Microsoft Team 頻道所需的所有政策。您不需要為 AWS Chatbot 用戶端設定任何現有的 Amazon SNS 主題。

您可以選擇將 Amazon SNS 主題建立為目標,做為建立通知規則的一部分 (建議)。您也可以選擇與通知規則相同 AWS 區域中的現有 Amazon SNS 主題,但必須使用必要的政策進行設定。您用於目標的 Amazon SNS 主題必須位於您的 AWS 帳戶中。該主題也必須位於與通知規則以及建立規則的 AWS 資源相同的 AWS 區域中。

例如,如果您為美國東部 (俄亥俄)區域中的儲存庫建立通知規則,Amazon SNS 主題也必須存在該區域中。如果您在建立通知規則的過程中建立了 Amazon SNS 主題,該主題會設定所需的政策,允許將事件發佈至主題。這是處理目標和通知規則的最佳方法。如果您選擇使用已存在的主題或手動建立主題,則必須設有必要的許可,使用者才會收到通知。如需更多詳細資訊,請參閱 設定通知的 Amazon SNS 主題

注意

如果您要使用現有 Amazon SNS 主題而非建立新主題,請在 Targets (目標) 中選擇其 ARN。請確定主題具有適當的存取政策,而且訂閱者清單只包含允許查看資源相關資訊的使用者。如果 Amazon SNS 主題在 2019 年 11 月 5 日之前用於 CodeCommit 通知,該主題將包含允許 CodeCommit 發佈至該主題的政策,其中包含 AWS CodeStar Notifications 所需許可以外的不同許可。不建議使用這些主題。如果您希望針對該體驗建立一個政策,除了已存在的政策之外,您還必須為 AWS CodeStar Notifications 新增必要的政策。如需詳細資訊,請參閱設定通知的 Amazon SNS 主題了解通知內容和安全性

通知功能與 AWS CodeStar Notifications

雖然通知是開發人員工具主控台的一項功能,但有自己的 API,即 AWS CodeStar Notifications。也有自己的 AWS 資源類型 (通知規則)、許可和事件。通知規則的事件會記錄在 AWS CloudTrail 中。可透過 IAM 政策允許或拒絕 API 動作。

儲存庫上通知規則的事件

類別 事件 事件 ID

說明

遞交時

提取請求時

codecommit-repository-comments-on-commits

codecommit-repository-comments-on-pull-requests

核准

狀態已變更

規則覆寫

codecommit-repository-approvals-status-changed

codecommit-repository-approvals-rule-override

提取請求

已建立

來源已更新

狀態已變更

已合併

codecommit-repository-pull-request-created

codecommit-repository-pull-request-source-updated

codecommit-repository-pull-request-status-changed

codecommit-repository-pull-request-merged

分支和標籤

已建立

Deleted (已刪除)

Updated

codecommit-repository-branches-and-tags-created

codecommit-repository-branches-and-tags-deleted

codecommit-repository-branches-and-tags-updated

建置專案上通知規則的事件

類別 事件 事件 ID

組建狀態

失敗

Succeeded

進行中

已停止

codebuild-project-build-state-failed

codebuild-project-build-state-succeeded

codebuild-project-build-state-in-progress

codebuild-project-build-state-stopped

組建階段

失敗

Success (成功)

codebuild-project-build-phase-failure

codebuild-project-build-phase-success

部署應用程式上通知規則的事件

類別 事件 事件 ID

部署

失敗

Succeeded

已開始

codedeploy-application-deployment-failed

codedeploy-application-deployment-succeeded

codedeploy-application-deployment-started

管道上通知規則的事件

類別 事件 事件 ID

動作執行

Succeeded

失敗

已取消

已開始

codepipeline-pipeline-action-execution-succeeded

codepipeline-pipeline-action-execution-failed

codepipeline-pipeline-action-execution-canceled

codepipeline-pipeline-action-execution-started

階段執行

已開始

Succeeded

繼續

已取消

失敗

codepipeline-pipeline-stage-execution-started

codepipeline-pipeline-stage-execution-succeeded

codepipeline-pipeline-stage-execution-resumed

codepipeline-pipeline-stage-execution-canceled

codepipeline-pipeline-stage-execution-failed

管道執行

失敗

已取消

已開始

繼續

Succeeded

已取代

codepipeline-pipeline-pipeline-execution-failed

codepipeline-pipeline-pipeline-execution-canceled

codepipeline-pipeline-pipeline-execution-started

codepipeline-pipeline-pipeline-execution-resumed

codepipeline-pipeline-pipeline-execution-succeeded

codepipeline-pipeline-pipeline-execution-superseded

手動核准

失敗

需要

Succeeded

codepipeline-pipeline-manual-approval-failed

codepipeline-pipeline-manual-approval-needed

codepipeline-pipeline-manual-approval-succeeded