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有访问权限的用户。

能够进行测试访问,成功后应用保存,退出。能够提交代码进行测试。

相关文章
相关标签/搜索