清理 AWS CodePipeline 中的旧文件

Cleaning Up Old Files in AWS CodePipeline

我已将 CodePipeline 设置为从我的 Github 存储库构建静态 Vue 站点并将其部署到 S3 存储桶。但由于构建的文件具有散列名称(例如 app.2c71f2bb.js),在每次部署后,旧文件仍保留在存储桶中。我想知道处理这个问题的常用方法是什么?我该怎么做呢?

将 CodePipeline 中的 CodeBuild 操作放入 运行 一些自定义 aws cli 命令以删除 S3 对象。确保您的 CodeBuild 服务角色有权执行相关的 AWS API 操作。

在不知道管道中的阶段的情况下,我假设您已经定义了一个 CodeBuild 步骤,因为您提到了构建。

签出 > 构建 > 部署 (S3)

删除部署步骤并将其添加到 CodeBuild,

            post_build:
              commands:
              - aws s3 sync ${LOCAL_FILES} s3://${S3_BUCKET_NAME} --delete

执行此操作时,您需要将相关权限添加到您的 CodeBuild 角色,而不是 CodePipeline 角色。

  1. aws s3 rm s3://BUCKET_NAME --recursive. (空桶的当前数据)
  2. cd 到您要上传的文件夹中。
  3. aws s3 同步。 s3://BUCKET_NAME.(将所有文件上传到给定的存储桶中)