清理 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 角色。
- aws s3 rm s3://BUCKET_NAME --recursive. (空桶的当前数据)
- cd 到您要上传的文件夹中。
- aws s3 同步。 s3://BUCKET_NAME.(将所有文件上传到给定的存储桶中)
我已将 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 角色。
- aws s3 rm s3://BUCKET_NAME --recursive. (空桶的当前数据)
- cd 到您要上传的文件夹中。
- aws s3 同步。 s3://BUCKET_NAME.(将所有文件上传到给定的存储桶中)