我正在寻找一种在S3中创建或更新文件时触发Jenkins作业的方法。 我似乎无法用通常的搜索手段找到任何东西。总是将工件上传到S3,但很少下载,即便如此,我似乎找不到触发实际更新过程的方法。 我目前唯一可以弄清楚如何执行此操作的方法是定期同步文件并将哈希值与先前版本进行比较,但这是一个非常糟糕的解决方案。 这背后的想法是让一个代理机构(无法访问我们的Jenkins)上传他们的构建工件并从中触发部署。
答案 0 :(得分:2)
您可以将SNS通知组合用于S3存储桶https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html和Jenkins AWS SQS插件中的新工件,以触发构建(https://github.com/jenkinsci/aws-sqs-plugin)
AWS SQS插件需要一些手动配置,但它应该有效。
S3 Upload
> SNS Notification
> Publish to SQS
> Trigger Jenkins Build
理想情况下,詹金斯会这样直截了当:S3 Upload
> SNS Notification
> Publish to Jenkins HTTP Endpoint
> Trigger Jenkins Build
希望这有帮助
答案 1 :(得分:1)
我们可以编写一个icron作业,如果是linux或powershell脚本,如果是windows,它会查询给定字符串的特定s3存储桶,如果找到则可以触发Jenkins作业。 为此,如果我们尝试添加IAM角色,则Jenkins实例必须位于AWS本身,否则我们需要添加aws凭据。