【问题标题】:AWS Codepipeline Deploy to S3 with a --delete flagAWS Codepipeline 使用 --delete 标志部署到 S3
【发布时间】:2023-03-10 06:06:02
【问题描述】:

AWS Codepipeline 支持deploying to S3

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

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

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

我想使用 Codepipeline 部署到 S3,其行为与

aws s3 sync ./dist s3://mywebsite-bucket.com/ --acl public-read --delete

注意--delete 标志。

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

【问题讨论】:

    标签: angular amazon-web-services amazon-s3 aws-codepipeline


    【解决方案1】:

    我使用类似的设置,因为带有 --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 相同的结果。

    【讨论】:

    • 我明白这一点,问题是当 S3 是deployment provider 时,如何在代码管道中获得这种效果。 不可能,我肯定会恢复使用你在答案中显示的方式使用代码构建
    • 抱歉,我错过了您只想使用 s3 作为部署选项的地方。正确,这是不可能的,因为部署本质上使用 cp 而不是 sync --delete。当前不允许删除其他配置。但是你的管道结构是什么?如果您要执行 cli 命令,那么为了实现您需要在部署之前进行构建。 --更新答案以反映
    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 2018-05-16
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    相关资源
    最近更新 更多