從 AWS CodeCommit 事件執行自訂動作 - AWS 方案指引

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

從 AWS CodeCommit 事件執行自訂動作

創建者:阿卜杜拉希·奧拉耶 (AWS)

環境:PoC 或試點

技術: DevOps; 管理與治理

AWS 服務:AWS CodeCommit;Amazon SNS

Summary

當您使用 AWS CodeCommit 儲存庫存放程式碼時,您可能想要監控儲存庫,並在特定事件發生時啟動動作工作流程。例如,您可能想要在使用者在提交中對某行程式碼進行註解時傳送電子郵件通知,或啟動 AWS Lambda 函數,在提交後對儲存庫內容執行安全掃描。此模式概述了為自訂動作配置 CodeCommit 存放庫的步驟。該模式使用 AWS CodeCommit 通知規則擷取感興趣的事件,然後將這些事件傳送到設定的目標。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 熟悉 Git 命令。

  • AWS CodeCommit,設定完成。如需指示,請參閱設定 AWS CodeCommit

  • (建議使用) 已安裝和設定的 AWS Command Line Interface (AWS CLI) (AWS CLI)。如需指示,請參閱 AWS CLI 入門。

架構

AWS 程式碼提交事件、Amazon SNS 訂閱和產生動作的架構圖。

工具

AWS 服務

  • AWS CodeCommit 是全受管的原始檔控制服務,可託管安全的 Git 儲存庫。它可讓團隊在安全且可高度擴展的生態系統中輕鬆協作程式碼。 CodeCommit 無需操作您自己的原始檔控制系統,也不必擔心擴充其基礎架構

  • Amazon Simple Notification Service (Amazon SNS) 是一種 Web 服務,可讓應用程式、最終使用者和裝置立即從雲端傳送和接收通知。Amazon SNS 針對高輸送量、以推送為基礎的簡訊提供主題 (通訊管道)。 many-to-many 使用 Amazon SNS 主題,發佈者可以將訊息分發給大量訂閱者以進行 parallel 處理,包括 Amazon Simple Queue Service (Amazon SQS) 佇列、AWS Lambda 函數和 HTTP/S 網路掛鉤。您也可以使用 Amazon SNS 透過行動推送、簡訊和電子郵件傳送通知給最終使用者。

史诗

任務描述所需技能

創建一個 CodeCommit 存儲庫。

使用 CodeCommit 主控台或 AWS CLI 建立 CodeCommit 存放庫。如需指示,請參閱建立 CodeCommit 存放庫

DevOps 工程師

將內容推送至 CodeCommit 儲存庫。

建立儲存庫之後,請使用 Git 命令將內容新增至其中。您可以從電腦移轉現有 Git 儲存庫的內容,或是本機、未建立版本控制的內容。如需指示,請參閱將檔案新增至儲存庫遷移到 AWS CodeCommit

DevOps 工程師
任務描述所需技能

建立 SNS 主題。

此 SNS 主題會從中接收事件 CodeCommit。如需指示,請參閱建立 Amazon SNS 主題

雲端架構師、 DevOps 工程師

建立自訂動作的資源。

對於要執行的自訂動作,您必須建立對應的資源。例如,如果您的自訂動作是執行 Lambda 程式碼並將訊息傳送至 SQS 佇列,您必須建立 Lambda 函數和 SQS 佇列。電子郵件和 SMS 通知之類的操作不需要資源。如需詳細資訊,請參閱 AWS 文件,了解您所建立的資源類型。

雲端架構師、 DevOps 工程師

訂閱 SNS 主題的自訂動作資源。

根據自訂動作,您可以建立適當通訊協定的訂閱。例如,您可以訂閱電子郵件通知的電子郵件地址、訂閱 Lambda 函數來執行自訂程式碼,或訂閱 SQS 佇列以傳送事件到 Amazon SQS。對於電子郵件和 SMS 之類的訂閱協議,您需要分別從發送到電子郵件或電話號碼的鏈接確認訂閱。如需指示,請參閱訂閱 Amazon SNS 主題

雲端架構師、 DevOps 工程師
任務描述所需技能

建立存 CodeCommit 放庫的通知規則。

建立通知規則時,請選取應起始通知的 Git 事件,選取 SNS 主題做為目標類型,然後選取您先前建立的 SNS 主題。您也可以為存放庫設定多個目標。如需指示,請參閱建立通知規則

DevOps 工程師

測試自訂動作。

執行其中一個設定為起始通知的事件。例如,如果您選取該事件作為觸發程序,請建立提取要求。您應該會看到自訂動作正在執行中。例如,如果您訂閱 SNS 主題的電子郵件地址,您應該會收到電子郵件通知。

DevOps 工程師

相關資源