使用 --delete 标志将 AWS Codepipeline 部署到 S3

AWS Codepipeline Deploy to S3 with a --delete flag

AWS Codepipeline 支持 deploying to S3

我有一个 Angular SPA,我正在将其作为静态网站部署到 S3(使用 Cloudfront 等)

当我执行 ng build --prod 命令时,我包含 outputHashing,这将更改随时间部署的文件名。

然而,在我的 Codepipeline 中部署到 S3 时,它不会删除 old js/css 具有不同哈希值的文件,而是不断添加新文件

我想使用 Codepipeline 以与

相同的行为部署到 S3
aws s3 sync ./dist s3://mywebsite-bucket.com/ --acl public-read --delete

注意 --delete 标志。

部署到 S3 时是否可以在 Codepipeline 中设置?

我使用类似的设置,因为使用 --delete 的 s3 部署目前不可能。相反,请参阅下面的 bash 命令,使用代码构建阶段在代码管道中进行部署。

echo "Syncing directory files to s3"
aws s3 sync ./dist s3://mywebsite-bucket.com/ \
--grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers \
--delete

注意,grants 命令将实现与 --acl public-read 相同的结果。