

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

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

您可以使用開發人員工具主控台或 AWS CLI 來建立通知規則。您可以將 Amazon SNS 主題建立為通知規則的目標，做為建立規則的一部分。如果您想要使用 AWS Chatbot 用戶端做為目標，您必須先建立該用戶端，才能建立規則。如需詳細資訊，請參閱[設定 Slack 頻道的 AWS Chatbot 用戶端](notifications-chatbot.md#notifications-chatbot-configure-client)。<a name="notification-rule-create-console"></a>

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

1. 開啟位於 https：//[https://console.aws.amazon.com/codesuite/settings/notifications](https://console.aws.amazon.com/codesuite/settings/notifications/) 的 AWS 開發人員工具主控台。

1. 使用導覽列瀏覽至資源。
   + 針對 CodeBuild，請選擇 **Build (建置)**，選擇 **Build projects (建置專案)**，然後選擇一個建置專案。
   + 針對 CodeCommit，選擇 **Source (來源)**，選擇 **Repositories (儲存庫)**，然後選擇一個儲存庫。
   + 針對 CodeDeploy，選擇 **Applications (應用程式)**，然後選擇一個應用程式。
   + 針對 CodePipeline，選擇 **Pipeline (管道)**，選擇 **Pipelines (管道)**，然後選擇一個管道。

1. 在資源頁面上，選擇 **Notify (通知)**，然後選擇 **Create notification rule (建立通知規則)**。您也可以前往資源的 **Settings (設定)** 頁面，前往 **Notifications (通知)** 或 **Notification rules (通知規則)**，然後選擇 **Create notification rule (建立通知規則)**。

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

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

   如需詳細資訊，請參閱[了解通知內容和安全性](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. 在 **Targets (目標)** 中，執行下列其中一個動作：
   + 如果您已設定要與通知搭配使用的資源，請在**選擇目標類型**中，**AWS Chatbot (Slack)**、**AWS Chatbot (Microsoft Teams)** 或 **SNS topic**。在**選擇目標**中，選擇用戶端的名稱 （適用於在 AWS Chatbot 中設定的 Slack 或 Microsoft Teams 用戶端） 或 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 用戶端](notifications-chatbot.md#notifications-chatbot-configure-client)。
如果您想要使用現有的 Amazon SNS 主題做為目標，除了該主題可能存在的任何其他政策之外，還必須新增 AWS CodeStar Notifications 所需的政策。如需詳細資訊，請參閱[設定通知的 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 為 *123456789012* 之 AWS 帳戶中名為 *MyDemoRepo* **MyNotificationRule**之儲存庫的通知規則。建立分支和標籤時，含有完整詳細資訊類型的通知會傳送到名為 *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\$1Juan* 的標籤金鑰/值對。

   ```
   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"
       }
   }
   ```