amazon-web-services - AWS CodeBuild 可以输出解压缩的工件吗?

标签 amazon-web-services aws-codebuild

所以我有一个 CodeBuild 过程,我希望它的输出是一个嵌套的 Cloudformation 堆栈和一个压缩的 Lambda 可部署文件,两者都被推送到一个 S3 存储桶。

我可以通过 pip install awscli 执行输出过程,然后在 buildspec.yml 中执行 aws s3 cp #{stuff},但是阅读 CodeBuild 文档,感觉我真的应该为此使用 OutputArtifacts

所以 .. 我删除了上面的 awscli 东西,将一个 OutputArtifacts block 添加到我的代码管道的 CodeBuild 阶段,并添加一个artifacts block 到 buildspec.yml

一切正常,CodeBuild 将输出工件转储到 S3 ..但问题是它们被压缩了。这不好,因为我需要另一个“主”CF 堆栈才能通过 S3 存储桶/ key 引用将生成/输出的 CF 模板引用为嵌套堆栈。

当我查看 CodeBuild 文档时,我找不到任何关于输出解压缩工件的引用。

关于如何实现这一点有什么想法吗?我应该坚持使用 awscli 吗?

最佳答案

创建或更新 CodeBuild 项目时,将 ProjectArtifact 类型设置为 S3 并将打包设置为无,如 https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html#CodeBuild-Type-ProjectArtifacts-packaging 中所述.

但是,上述步骤仅在您将 CodeBuild 用作独立版本时才有效。在 CodePipeline 的上下文中使用 CodeBuild 时,您的管道定义源和工件详细信息。在这种情况下,您最好的选择是在管道的构建步骤中使用 awscli 复制到 s3。

关于amazon-web-services - AWS CodeBuild 可以输出解压缩的工件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57336854/

相关文章:

java - 如何使用 Java 创建多语言 Alexa Skill?

image - Amazon S3 中合理的文件命名

docker - Amazon ECR 的拉取访问被拒绝,存储库不存在或可能需要 'docker login'

amazon-web-services - AWS CodeDeploy 无法部署 lambda 函数

amazon-web-services - Cognito注册时电话号码格式无效

node.js - AWS CDK以及如何在不卡住的情况下更新ECS

node.js - 在 NodeJS 中使用 AWS-SDK 调用本地 Lambda

amazon-web-services - YAML_FILE_ERROR 消息 : Expected Commands[0] to be of string type:

amazon-web-services - aws-cdk 中的 AWS CodeBuild Webhook

terraform - 如何在 Terraform 中为 AWS CodeBuild 项目设置 'Source version'