

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

# 設定 AWS CodeCommit 儲存庫中事件的通知
<a name="how-to-repository-email"></a>

您可以設定儲存庫的通知規則，使得儲存庫使用者會收到有關您指定的儲存庫事件類型的電子郵件。當事件符合通知規則設定時會傳送通知。您可以建立用於通知的 Amazon SNS 主題，或在您的 Amazon Web Services 帳戶中使用現有的主題。您可以使用 CodeCommit 主控台和 AWS CLI 來設定通知規則。

![\[CodeCommit 儲存庫中設定的通知規則\]](http://docs.aws.amazon.com/zh_tw/codecommit/latest/userguide/images/create-notification-rule-repository.png)


**Topics**
+ [使用儲存庫通知規則](#how-to-repository-email-using)
+ [建立通知規則](notification-rule-create.md)
+ [變更或停用通知](how-to-repository-email-console-edit.md)
+ [刪除通知](how-to-repository-email-delete.md)

## 使用儲存庫通知規則
<a name="how-to-repository-email-using"></a>

設定通知規則可在在有人採取的動作會影響其他使用者時傳送電子郵件，藉以協助您的儲存庫使用者。例如，您可以設定一個通知規則，在對遞交進行評論時傳送通知。在此組態中，當儲存庫使用者對遞交中的某個程式碼行進行評論時，其他儲存庫中使用者會收到一封電子郵件。他們可以登入和檢視評論。對評論的回應也會產生電子郵件，使得儲存庫使用者可掌握資訊。

通知規則與儲存庫觸發條件不同，它們也與您在 2019 年 11 月 5 日之前可在 CodeCommit 主控台中設定的通知不同。
+ 雖然您可以設定觸發條件來使用 Amazon SNS 來傳送一些儲存庫事件的相關電子郵件，但這些事件僅限於操作事件，例如建立分支和將程式碼推送至分支。觸發不會使用 CloudWatch Events 規則來評估儲存庫事件。它們的範圍更有限。如需如何使用觸發的詳細資訊，請參閱[管理儲存庫的觸發](how-to-notify.md)。
+ 在 2019 年 11 月 5 日之前設定的通知可用的事件類型較少，而且無法設定為與 Amazon Chime 聊天室或 Slack 頻道整合。您可以繼續使用在 2019 年 11 月 5 日之前設定的通知，但無法建立此類型的通知。請改為建立並使用通知規則。建議您使用通知規則，並停用或刪除 2019 年 11 月 5 日之前建立的通知。如需詳細資訊，請參閱[建立通知規則](notification-rule-create.md)及[刪除通知](how-to-repository-email-delete.md)。

# 建立通知規則
<a name="notification-rule-create"></a>

您可以使用通知規則來通知使用者重要的變更，例如：在儲存庫中建立提取請求時。通知規則會同時指定用於傳送通知的事件和 Amazon SNS 主題。如需詳細資訊，請參閱[什麼是通知？](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html)



**注意**  
此功能不適用於歐洲 （米蘭） 區域。若要了解如何在該區域中可用的體驗中設定通知，請參閱[設定儲存庫通知](https://github.com/awsdocs/aws-codecommit-user-guide/blob/master/doc_source/how-to-repository-email-create.2.md)。

您可以使用 主控台或 AWS CLI 來建立 的通知規則 AWS CodeCommit。<a name="notification-rule-create-console"></a>

# 建立通知規則 (主控台)
<a name="notification-rule-create-console"></a>

1. 登入 AWS 管理主控台 並開啟 CodeCommit 主控台，網址為 https：//[https://console.aws.amazon.com/codecommit/](https://console.aws.amazon.com/codecommit/)。

1. 選擇 **Repositories (儲存庫)**，然後選擇您要新增通知規則的儲存庫。

1. 在儲存庫頁面中，選擇 **Notify (通知)**，然後選擇 **Create notification rule (建立通知規則)**。您也可以移至儲存庫的 **Settings (設定)** 頁面，然後選擇 **Create notification rule (建立通知規則)**。

1. 在 **Notification name (通知名稱)** 中，輸入規則的名稱。

1. 如果您只希望提供給 Amazon EventBridge 的資訊包含在通知中，請在 **Detail type (詳細資訊類型)** 中，選擇 **Basic (基本)**。如果您想要包含提供給 Amazon EventBridge 的資訊，以及 CodeCommit 或通知管理員可能提供的資訊，請選擇**完整**。

   如需詳細資訊，請參閱[了解通知內容與安全性](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security.html#security-notifications)。

1.  在 **Events that trigger notifications (觸發通知的事件)** 中，選取您要傳送通知的事件。如需詳細資訊，請參閱[儲存庫上通知規則的事件](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#events-ref-repositories)。

1. 在 **Targets (目標)** 中，執行下列其中一個動作：
   + 如果您已將資源設定為搭配通知使用，請在**選擇目標類型****中選擇聊天應用程式 (Slack) 中的 Amazon Q Developer** 或 **SNS 主題**。在**選擇目標**中，選擇用戶端的名稱 （適用於聊天應用程式中在 Amazon Q Developer 中設定的 Slack 用戶端） 或 Amazon SNS 主題的 Amazon Resource Name (ARN) （適用於已設定通知所需政策的 Amazon SNS 主題）。
   + 如果您尚未設定要與通知搭配使用的資源，請選擇 **Create target (建立目標)**，然後選擇 **SNS topic (SNS 主題)**。在 **codestar-notifications-** 之後，提供主題名稱，然後選擇 **Create (建立)**。
**注意**  
如果您在建立通知規則的過程中建立 Amazon SNS 主題，將會為您套用允許通知功能將事件發佈至主題的政策。使用針對通知規則建立的主題，有助於確保您只訂閱需要接收此資源相關通知的使用者。
您無法在聊天應用程式用戶端中建立 Amazon Q Developer，作為建立通知規則的一部分。如果您在聊天應用程式 (Slack) 中選擇 Amazon Q Developer，您會看到一個按鈕，指示您在聊天應用程式中設定 Amazon Q Developer 中的用戶端。選擇該選項會在聊天應用程式主控台中開啟 Amazon Q Developer。如需詳細資訊，請參閱[聊天應用程式中設定通知與 Amazon Q Developer 之間的整合](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. 若要完成建立規則，請選擇 **Submit (提交)**。

1. 您必須為使用者訂閱規則的 Amazon SNS 主題，才能接收通知。如需詳細資訊，請參閱[訂閱使用者成為目標的 Amazon SNS 主題](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/subscribe-users-sns.html)。您也可以在聊天應用程式中設定通知與 Amazon Q Developer 之間的整合，將通知傳送至 Amazon Chime 聊天室。如需詳細資訊，請參閱[聊天應用程式中設定通知與 Amazon Q Developer 之間的整合](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 codestar-notifications create-notification-rule --generate-cli-skeleton > rule.json
   ```

   您可以將檔案命名為任何您想要的名稱。在此範例中，檔案命名為 *rule.json*。

1. 在純文字編輯器中開啟 JSON 檔案，並編輯成包含您想要用於規則的資源、事件類型和目標。下列範例顯示 ID **MyNotificationRule** 為 *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"
   }
   ```

   儲存檔案。

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="how-to-repository-email-console-edit"></a>

您可以使用 AWS CodeCommit 主控台來變更 2019 年 11 月 5 日之前建立的通知設定方式，包括傳送電子郵件給使用者的事件類型，以及用於傳送儲存庫相關電子郵件的 Amazon SNS 主題。您也可以使用 CodeCommit 主控台來管理訂閱主題的電子郵件地址和端點清單，或停用通知。<a name="how-to-repository-email-change-console"></a>

**變更通知設定**

1. 在 https：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在 **Repositories (儲存庫)** 中，選擇您要設定 2019 年 11 月 5 日前建立之通知所在的儲存庫名稱。

1. 在導覽窗格中，選擇 **Settings (設定)**，然後選擇 **Notifications (通知)**。如果有橫幅通知您有通知而非通知規則，請選擇 **Manage existing notifications (管理現有通知**)。

1. 選擇**編輯**。

1. 進行變更，然後選擇 **Save ** (儲存變更)。

停用通知是暫時防止使用者接收有關儲存庫事件之電子郵件的一個簡單方法。

若要永久刪除 2019 年 11 月 5 日之前建立的通知，請依照 [刪除通知](how-to-repository-email-delete.md) 中的步驟進行操作。<a name="how-to-repository-email-disable-console"></a>

**若要關閉通知**

1. 在 https：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在 **Repositories (儲存庫)** 中，選擇您要停用通知所在儲存庫的名稱。

1. 在導覽窗格中，選擇 **Settings (設定)**，然後選擇 **Notifications (通知)**。選擇 **Manage existing notifications (管理現有通知)**。

1. 選擇 **Edit (編輯)**, 然後在 **Event status (事件狀態)** 中使用滑桿來關閉 **Enable notifications (啟用通知)**。選擇**儲存**。

1. 事件狀態會變更為 **Disabled (已停用)**。不會傳送關於事件的電子郵件。當您停用通知時，會自動停用儲存庫的 CloudWatch Events 規則。請勿在 CloudWatch Events 主控台中手動變更其狀態。

# 刪除通知
<a name="how-to-repository-email-delete"></a>

如果您不想再使用 2019 年 11 月 5 日之前為儲存庫建立的通知，您可以刪除與通知相關聯的 Amazon CloudWatch Events 規則。這將自動刪除通知。它不會刪除任何訂閱或用於通知的 Amazon SNS 主題。

**注意**  
如果您從主控台變更儲存庫的名稱，不需修改，2019 年 11 月 5 日前建立的通知即可繼續運作。不過，如果您從命令列或使用 API 變更儲存庫的名稱，通知將不再運作。還原通知最簡單的方法是刪除通知設定，然後再次對其進行設定。<a name="how-to-repository-email-delete-console"></a>

**刪除通知設定**

1. 在 https：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在 **Repositories (儲存庫)** 中，選擇您要移除 2019 年 11 月 5 日前建立之通知的所在儲存庫名稱。

1. 在導覽窗格中，選擇 **Settings (設定)**，然後選擇 **Notifications (通知)**。如果有橫幅通知您有通知而非通知規則，請選擇 **Manage existing notifications (管理現有通知**)。

1. 在 **CloudWatch event rule (CloudWatch 事件規則)** 中，複製為通知建立的規則名稱。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在 **Events (事件)** 中，選擇 **Rules (規則)**。在 **Name (名稱)** 中，貼上為通知建立的規則名稱。選擇規則，然後在 **Actions (動作)** 中選擇 **Delete (刪除)**。

1. （選用） 若要在刪除通知設定後變更或刪除用於通知的 Amazon SNS 主題，請前往 Amazon SNS 主控台，網址為 https：//[https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)。如需詳細資訊，請參閱《[Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/)》中的[清除](https://docs.aws.amazon.com/sns/latest/dg/CleanUp.html)。