在gitlab和github上面都有直接發送webhook的配置,可是在AWS上面是沒有的直接配置webhook觸發jenkins構建的設置的。git
(1)在codecommit上面配置觸發器 --> (2)當有代碼提交時,觸發SNS發送主題消息到SQS隊列 --> (3) jenkins檢測到配置好的隊列裏邊有消息,進行構建github
在建立SNS主題前請確保你已經具備訪問SNS主題的權限,如下爲建立SNS主題的詳細步驟:web
1)登錄AWS SNS控制檯;async
2)在建立主題部分輸入主題名稱(自定義);分佈式
3)選擇**建立主題,**將建立主題並打開主題名稱顯示頁面。微服務
主題的名稱,ARN,(可選)顯示名稱和主題全部者的AWS帳戶ID顯示在「 **詳細信息」**部分中,gitlab
4)上一步中的主題ARN會在codecommit存儲庫建立AWS SNS主題觸發器中用到。測試
1)進入 Amazon SQS 控制檯;ui
2)單擊當即開始使用插件
3)建立 Amazon SQS 隊列
在此步驟中,您將建立和配置一個 Amazon SQS 隊列。隊列是一種可靠且高度可擴展的緩衝區,用於當消息在分佈式應用程序或微服務間傳送時存儲它們。隊列能夠幫助應用程序解除耦合、鏈接微服務、批量處理任務或存儲通知
輸入隊列名稱(自定義),選擇標準隊列。
4)而後點擊下方的快速建立就建立好了;
5)選擇隊列,訂閱隊列到主題,到此隊列就配置好了。
登錄到AWS 控制檯(固然了,也能夠經過AWS CLI進行添加)
進入到codecommit服務配置中,地址:https://console.aws.amazon.com/codesuite/codecommit/home;
進入其中的一個存儲庫,會出現分支及設置選項:
選擇觸發器,
選擇建立觸發器,進行以下操做:
1)在觸發器名稱中輸入名稱(自定義);
2)在事件中,選擇將觸發 Amazon SNS 主題以發送通知的存儲庫事件:
若是選擇全部存儲庫事件,則沒法選擇任何其餘事件。要選擇事件的子集,請刪除 All repository events,而後從列表中選擇一個或多個事件。例如,若是但願觸發器只在用戶在 CodeCommit 存儲庫中建立分支或標籤時運行,請刪除全部存儲庫事件,而後選擇建立分支或標記。
3)若是但願觸發器應用於存儲庫的全部分支,請在分支中,將選定內容保留爲空,由於此默認選項會自動將觸發器應用於全部分支。若是但願此觸發器僅應用於特定分支,請從存儲庫分支列表中選擇最多 10 個分支名稱;
4)在選擇要使用的服務中,選擇 Amazon SNS;
5)在 Amazon SNS 中,從列表中選擇主題名稱或輸入主題的 ARN;
6)在自定義數據中,提供包含在 Amazon SNS 主題發送的通知中的任何信息(例如,開發人員在討論該存儲庫中的開發工做時使用的 IRC 通道)。該字段是一個字符串。它不能用於傳遞任何動態參數
7)選擇測試觸發器。確認是否已正確配置 CodeCommit 與 Amazon SNS 主題之間的訪問。它經過 Amazon SNS 主題使用存儲庫中的數據(若是可用)發送測試通知。若是沒有真實數據可用,測試通知將包含示例數據.
8)選擇建立觸發器以完成觸發器的建立操做.
在jenkins的主頁中的系統管理,系統設置。
在下方找到AWS SQS隊列的配置,(須要提早安裝AWS SQS的相關插件),訪問密鑰ID和密鑰是對SQS有訪問權限的用戶。
能夠進行測試訪問,成功後應用保存,退出。能夠提交代碼進行測試。