繁体   English   中英

如何在部署后处理云端缓存

[英]How to handle cloudfront cache after deployment

我们在S3中使用了Angular2代码。我们通过Cloudfront访问它。 它工作正常。 但是在部署到Angular2之后,我们希望每个代码都能从Cloudfront中失效。 部署后清除缓存的最佳方法是什么? 如何处理云端缓存?

您需要调用CloudFront API(或使用Web控制台)来使缓存无效。 这是文档

您可以在aws-cli的帮助下执行部署和缓存失效。

#!/bin/bash

# enable cloudfront cli
aws configure set preview.cloudfront true

# deploy angular bundles
aws s3 sync $LOCAL s3://$S3_BUCKET \
    --region=eu-central-1 \
    --cache-control max-age=$CACHE_TIME

# invalidate cache in cloudfront
aws cloudfront create-invalidation \
    --distribution-id $CLOUDFRONT_DISTRO_ID \
    --paths "/*"

请注意,这些解决方案的一个问题(正如我发现的那样)是CloudFront Invalidation可能会在CodeDeploy完成部署到所有EC2实例之前运行。

部分因素是您的部署配置,以及您拥有的EC2实例数。 我正在考虑为这种获得部署状态的进程添加一些检查,并在成功后失效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM