1. 程式人生 > >AWS codecommit 觸發jenkins工作

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)單擊立即開始使用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有訪問許可權的使用者。

可以進行測試訪問,成功後應用儲存,退出。可以提交程