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

时间:2017-02-26 16:14:34

标签: amazon-web-services caching amazon-s3 amazon-cloudfront

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

3 个答案:

答案 0 :(得分:4)

您需要调用CloudFront API(或使用Web控制台)使缓存无效。 Here is the documentation

答案 1 :(得分:2)

您可以在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 "/*"

答案 2 :(得分:1)

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

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