本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:設定 CloudWatch 事件規則以接收管道狀態變更的電子郵件通知
在中設定管道之後 AWS CodePipeline,您可以設定「 CloudWatch 事件」規則,以便在管線的執行狀態發生變更時傳送通知,或在管線中的階段或動作中發生變更。如需使用 CloudWatch 事件設定管線狀態變更通知的詳細資訊,請參閱監控 CodePipeline 事件。
在本教學中,您會設定通知,在管道狀態變更為 FAILED (失敗) 時傳送電子郵件。本教學課程會在建立 CloudWatch 事件規則時使用輸入轉換器方法。它會將訊息結構描述詳細資訊轉換成可供人閱讀的文字訊息。
注意
當您為本教學課程建立資源 (例如 Amazon SNS 通知和 CloudWatch 事件規則) 時,請確定資源建立在與管道相同的 AWS 區域中。
步驟 1:使用 Amazon SNS 設定電子郵件通知
Amazon SNS 協調主題的使用,將訊息傳遞給訂閱的端點或用戶端。使用 Amazon SNS 建立通知主題,然後使用您的電子郵件地址訂閱主題。Amazon SNS 主題將新增為您的 CloudWatch 事件規則的目標。如需詳細資訊,請參閱《Amazon Simple Notification Service 開發人員指南》。
在 Amazon SNS 中建立或識別主題。 CodePipeline 將使用 CloudWatch 事件透過 Amazon SNS 傳送通知給此主題。建立主題:
-
開啟 Amazon SNS 主控台,網址為 https://console.aws.amazon.com/sns
。 -
請選擇建立主題。
-
在 Create new topic (建立新主題) 對話方塊中,針對 Topic name (主題名稱),輸入主題的名稱 (例如
PipelineNotificationTopic
)。 -
請選擇建立主題。
如需詳細資訊,請參閱 Amazon SNS 開發人員指南中的建立主題。
讓一或多個收件人訂閱主題來接收電子郵件通知。讓收件人訂閱主題:
-
在 Amazon SNS 主控台的「主題」清單中,選取新主題旁邊的核取方塊。選擇 Actions, Subscribe to topic (動作、訂閱主題)。
-
在 Create subscription (建立訂閱) 對話方塊中,確認 ARN 有出現在 Topic ARN (主題 ARN) 中。
-
對於通訊協定,選擇電子郵件。
-
針對 Endpoint (端點),輸入收件人的完整電子郵件地址。
-
選擇 Create Subscription (建立訂閱)。
-
Amazon SNS 會傳送訂閱確認電子郵件給收件者。若要接收電子郵件通知,收件人必須選擇此電子郵件中的 Confirm subscription (確認訂閱) 連結。收件者按一下連結後,如果訂閱成功,Amazon SNS 會在收件者的網頁瀏覽器中顯示確認訊息。
如需詳細資訊,請參閱 Amazon SNS 開發人員指南中的訂閱主題。
步驟 2:建立規則並將 SNS 主題新增為目標
建立 CloudWatch 事件通知規則 CodePipeline 作為事件來源。
請在以下位置開啟 CloudWatch 主控台。
https://console.aws.amazon.com/cloudwatch/ -
在導覽窗格中,選擇 Events (事件)。
-
選擇建立規則。在 Event source (事件來源) 下,選擇 AWS CodePipeline。針對事件類型,選擇管道執行狀態變更。
-
選擇 Specific state(s) (特定狀態),然後選擇
FAILED
。 -
選擇 Edit (編輯),開啟 Event Pattern Preview (事件模式預覽) 窗格的 JSON 編輯器。使用您管道的名稱新增
pipeline
參數,如下列名為 "myPipeline" 管道的範例所示。您可以複製此處的事件模式並將其貼到主控台中:
{ "source": [ "aws.codepipeline" ], "detail-type": [ "CodePipeline Pipeline Execution State Change" ], "detail": { "state": [ "FAILED" ], "pipeline": [ "myPipeline" ] } }
-
在 Targets (目標) 中,選擇 Add target (新增目標)。
-
在目標清單中,選擇 SNS topic (SNS 主題)。針對 Topic (主題),輸入您建立的主題。
-
展開 Configure input (設定輸入),然後選擇 Input Transformer (輸入轉換器)。
-
在 Input Path (輸入路徑) 方塊中,輸入下列鍵/值對。
{ "pipeline" : "$.detail.pipeline" }
在 Input Template (輸入範本) 方塊中,輸入下列內容:
"The Pipeline <pipeline> has failed."
-
選擇設定詳細資訊。
-
在 Configure rule details (設定規則詳細資訊) 頁面上,輸入名稱及選擇性描述。針對 State (狀態),將 Enabled (啟用) 保留在選取狀態。
-
選擇建立規則。
-
確認現在 CodePipeline 正在發送構建通知。例如,檢查您的收件匣中是否有組建通知電子郵件。
-
若要變更規則的行為,請在 CloudWatch 主控台中選擇規則,然後選擇 [動作] > [編輯]。編輯規則,選擇 Configure details (設定詳細資訊),然後選擇 Update rule (更新規則)。
若要停止使用規則傳送組建通知,請在 CloudWatch 主控台中選擇規則,然後選擇 [動作] > [停用]。
若要刪除規則,請在 CloudWatch 主控台中選擇規則,然後選擇 [動作] > [刪除]。
步驟 3:清除資源
在您完成本教學之後,您應該刪除管道以及其所使用的資源,如此您才不會因為持續使用那些資源而付費。
如需如何清理 SNS 通知和刪除 Amazon CloudWatch 事件規則的相關資訊,請參閱清理 (取消訂閱 Amazon SNS 主題) 和 Amazon CloudWatch 事件 API 參考資料DeleteRule
中的參考資料。