Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS代码管道以不如单独运行步骤有用的格式向S3添加工件_Amazon Web Services_Amazon S3_Aws Codepipeline - Fatal编程技术网

Amazon web services AWS代码管道以不如单独运行步骤有用的格式向S3添加工件

Amazon web services AWS代码管道以不如单独运行步骤有用的格式向S3添加工件,amazon-web-services,amazon-s3,aws-codepipeline,Amazon Web Services,Amazon S3,Aws Codepipeline,我已经建立了一个代码管道,最终目标是让核心服务作为私有maven repo驻留在S3上,供其他管道依赖。当核心服务更新并推送到AWS CodeCommit时,管道应该运行、测试它,使用maven docker映像构建一个jar,然后将生成的jar推送到S3,其他应用程序可以根据需要访问它 不幸的是,虽然CodeBuild服务正是按照我所希望的方式工作的,将XYZCore.jar上传到bucket上的/release,但自动管道本身并没有。相反,它上传到“xyzcorepipline”文件夹,其中

我已经建立了一个代码管道,最终目标是让核心服务作为私有maven repo驻留在S3上,供其他管道依赖。当核心服务更新并推送到AWS CodeCommit时,管道应该运行、测试它,使用maven docker映像构建一个jar,然后将生成的jar推送到S3,其他应用程序可以根据需要访问它


不幸的是,虽然CodeBuild服务正是按照我所希望的方式工作的,将XYZCore.jar上传到bucket上的/release,但自动管道本身并没有。相反,它上传到“xyzcorepipline”文件夹,其中包含构建的输入和输出工件。输出工件本身是一个zip文件,它只是一个随机字符串。我检查了管道,它正确地使用了服务,但是管道特定的构建总是在那里输出,而CodeBuild服务的独立构建则输出我希望的方式,这使我能够利用版本控制之类的功能。对我来说,修复设置以使两个版本匹配的最佳方法是什么?

不幸的是,CodePipeline不支持此用例


作为一种解决方法,您可以通过从buildspec.yml post_build调用AWS CLI(AWS S3 cp…)将工件上载到S3。

谢谢。我可能不得不这样做——我希望避免这样做,因为CodeBuild服务的工作方式正是我所希望的。@A.McDaniel请注意,即使
BUILD
失败,
POST\u BUILD
也会执行。这允许您恢复部分工件以调试生成/测试失败,但在您的情况下可能不是所需的行为。此处描述了生成后执行标准: