AWS codecommit 觸發jenkins工做

在gitlab和github上面都有直接發送webhook的配置,可是在AWS上面是沒有的直接配置webhook觸發jenkins構建的設置的。git

經過查看AWS多個service的官方文檔,找到了解決方案,方案以下:

(1)在codecommit上面配置觸發器    -->  (2)當有代碼提交時,觸發SNS發送主題消息到SQS隊列   --> (3) jenkins檢測到配置好的隊列裏邊有消息,進行構建github

如下是詳細實現步驟:

1.建立一個AWS SNS主題:

在建立SNS主題前請確保你已經具備訪問SNS主題的權限,如下爲建立SNS主題的詳細步驟:web

1)登錄AWS SNS控制檯;async

2)在建立主題部分輸入主題名稱(自定義);分佈式

3)選擇**建立主題,**將建立主題並打開主題名稱顯示頁面。微服務

主題的名稱ARN,(可選)顯示名稱主題全部者的AWS帳戶ID顯示在「 **詳細信息」**部分中,gitlab

4)上一步中的主題ARN會在codecommit存儲庫建立AWS SNS主題觸發器中用到。測試

2.建立一個AWS SQS消息隊列:

1)進入 Amazon SQS 控制檯;ui

2)單擊當即開始使用tmt_send-receive-async-messages_1b插件

3)建立 Amazon SQS 隊列

在此步驟中,您將建立和配置一個 Amazon SQS 隊列。隊列是一種可靠且高度可擴展的緩衝區,用於當消息在分佈式應用程序或微服務間傳送時存儲它們。隊列能夠幫助應用程序解除耦合、鏈接微服務、批量處理任務或存儲通知

輸入隊列名稱(自定義),選擇標準隊列。

tmt_send-receive-async-messages_2a

4)而後點擊下方的快速建立就建立好了;

5)選擇隊列,訂閱隊列到主題,到此隊列就配置好了。

3.CodeCommit 存儲庫建立 Amazon SNS 主題觸發器

登錄到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)選擇建立觸發器以完成觸發器的建立操做.

4.配置jenkins:

在jenkins的主頁中的系統管理,系統設置。

在下方找到AWS SQS隊列的配置,(須要提早安裝AWS SQS的相關插件),訪問密鑰ID和密鑰是對SQS有訪問權限的用戶。

能夠進行測試訪問,成功後應用保存,退出。能夠提交代碼進行測試。

相關文章
相關標籤/搜索