[英]How to Trigger codepipeline with s3 with dynamic s3 object key?
我有一个桶,其对象的名称为 commitId。 我想将这些 commitID 传递到我的代码管道并将这些 id 用于松弛消息。
我试图在将 zip 文件上传到 s3 时触发 Codepipeline,但是正如我在文档中看到的那样,它只能使用 static 存储桶密钥触发。 我想用任何文件名触发
https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-S3.html我正在处理一个用例,其中 s3 中上传的 object 将具有动态 object 密钥。
如何处理这种情况?
我已经阅读了这个问题,所以我知道将 s3 与 lambda 一起使用,然后使用 lambda 触发管道,但这仍然不起作用,因为我需要将 zip 文件传递给 codebuild
TL;DR 让 Lambda 在commit_id.txt
中记录 ID 并将其添加到包中。
我知道你想在任意 object 时执行管道,比如a5bf8c1.zip
添加到 S3 路径,比如MyPipelineBucket/commits/
。 管道有一个 S3 源,比如MyPipelineBucket/source.zip
。 您的管道执行还需要文件名值 ( a5bf8c1
)。
MyPipelineBucket/commits/
前缀上应用object 键名过滤。commit_id.txt
文件。 使用 SDK,从 S3 获取MyPipelineBucket/commits/a5bf8c1.zip
包。 将commit_id.txt
添加到包中。 将新包放入MyPipelineBucket/source.zip
。 这将触发执行。COMMIT_ID=$(cat commit_id.txt)
echo COMMIT_ID # -> a5bf8c1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.