amazon-web-services - AWS CodeBuild 可以输出解压缩的工件吗?
问题描述
所以我有一个 CodeBuild 流程,我希望它的输出是一个嵌套的 Cloudformation 堆栈和一个可部署的压缩 Lambda,两者都被推送到一个 S3 存储桶。
我可以通过pip install awscli
然后aws s3 cp #{stuff}
in进行输出过程buildspec.yml
,但是在阅读 CodeBuild 文档时,感觉我真的应该使用OutputArtifacts
这一点。
所以..我删除了上面的awscli
东西,在我的代码管道OutputArtifacts
的阶段添加了一个块,然后在 .CodeBuild
artifacts
buildspec.yml
一切正常,CodeBuild 将输出工件转储到 S3 .. 但问题是它们被压缩了。这不好,因为我需要另一个“主”CF 堆栈才能通过 S3 存储桶/密钥引用将生成/输出的 CF 模板作为嵌套堆栈引用。
当我查看 CodeBuild 文档时,我找不到任何关于输出解压缩工件的参考。
关于如何实现这一目标的任何想法?我应该坚持awscli
吗?
解决方案
创建或更新 CodeBuild 项目时,将 ProjectArtifact 类型设置为 S3 并将打包设置为 none,如https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html#CodeBuild-Type-ProjectArtifacts-packaging中所述.
但是,仅当您将 CodeBuild 用作独立设备时,上述步骤才有效。在 CodePipeline 的上下文中使用 CodeBuild 时,您的管道将定义源和工件详细信息。在这种情况下,您最好的选择是在管道的构建步骤中使用 awscli 复制到 s3。
推荐阅读
- mysql - 在多表连接查询中从表中选择所有列时,获取时间会增加
- jenkins - 无法通过 Jenkins 打开 GUI 应用程序
- angularjs - 如何获取最后一行的值并将其分配给angularjs中的文本框
- keycloak - Keycloak:专用 Infinispan 集群的远程存储配置
- excel - 步骤发出错误声音但没有描述
- macos - 为什么 VSCode 不将 settings.json 保存在 ~/.vscode 中,它保存已安装的扩展?
- php - 我在以下 php 代码中遇到搜索错误
- multithreading - 运行时线程访问冲突错误
- javascript - 实时拖放移动
- excel - 为什么循环在第一次成功查找时终止?