利用 AWS SQS 觸發 Jenkins Job 並將訊息資訊帶入 Job 參數

本文介紹如何用 AWS SQS 觸發 Jenkins Job,同時需要把訊息的詳細資訊當作參數給 Jenkins Job。

首先在 Jenkins 上安裝 AWS SQS Plugin

安裝完以後在 Jenkins ->Manage Jenkins -> Configure System 中設定 AWS SQS 設定如下圖:

在 Jenkins Job 中設定 trigger 條件如下圖:

此時往 SQS 發送消息便可看到 Job 被觸發了。

但要如何在 Jenkins Job 中獲取 SQS 訊息的詳細資訊呢?

我們看看 AWA SQS Plugin 的 source code 有片段如下:

可以看到此 Plugin 在觸發 Jenkins Job 時已經有把訊息的詳細資訊當作參數傳給 Job,

但實際在該 Job 中讀取這些參數只會得到空值。

從 Jenkins 官網說明得知為了避免 plugin 作者偷偷傳遞參數做壞事,只有使用者在 Jenkins Job 設定有定義的參數才能存取,因此修改 Jenkins Job 設定加入參數:

此時再發送訊息給 AWS SQS 時,可以看到 Job 在被觸發的同時也把 queue 的訊息資訊帶進來了。

此時就可以透過 SQS 觸發 Jenkins Job 的同時把一些額外資訊透過訊息一起傳給 Jenkins Job 了!

Like what you read? Give Genchi Lu a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.