AWS codecommit 觸發jenkins工作
在gitlab和github上面都有直接傳送webhook的配置,但是在AWS上面是沒有的直接配置webhook觸發jenkins構建的設定的。
通過檢視AWS多個service的官方文件,找到了解決方案,方案如下:
(1)在codecommit上面配置觸發器 --> (2)當有程式碼提交時,觸發SNS傳送主題訊息到SQS佇列 --> (3) jenkins檢測到配置好的佇列裡邊有訊息,進行構建
以下是詳細實現步驟:
1.建立一個AWS SNS主題:
在建立SNS主題前請確保你已經具有訪問SNS主題的許可權,以下為建立SNS主題的詳細步驟:
1)登陸AWS SNS控制檯;
2)在建立主題部分輸入主題名稱(自定義);
3)選擇**建立主題,**將建立主題並開啟主題名稱顯示頁面。
主題的名稱,ARN,(可選)顯示名稱和主題所有者的AWS賬戶ID顯示在“ **詳細資訊”**部分中,
4)上一步中的主題ARN會在codecommit儲存庫建立AWS SNS主題觸發器中用到。
2.建立一個AWS SQS訊息佇列:
1)進入 Amazon SQS 控制檯;
2)單擊立即開始使用
3)建立 Amazon SQS 佇列
在此步驟中,您將建立和配置一個 Amazon SQS 佇列。佇列是一種可靠且高度可擴充套件的緩衝區,用於當訊息在分散式應用程式或微服務間傳送時儲存它們。佇列可以幫助應用程式解除耦合、連線微服務、批量處理任務或儲存通知
輸入佇列名稱(自定義),選擇標準佇列。
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有訪問許可權的使用者。
可以進行測試訪問,成功後應用儲存,退出。可以提交程