[英]AWS Cloudfront error? invalidation max times while deploying?
我从 gitlab 部署某些东西时遇到错误。
$ aws cloudfront create-invalidation --distribution-id=EVB1B2B3B4B56 --paths "/*"
**An error occurred (ServiceUnavailable) when calling the CreateInvalidation operation (reached max retries: 2): CloudFront encountered an internal error. Please try again.**
我通过从 AWS 控制台手动创建失效来解决它,它可以工作。 这种情况发生有时会导致这个错误,当时我是手动做的。 什么是永久解决方案? 请帮我解决这个问题。
在将同一个应用程序部署到多个发行版时创建多个失效时,我遇到了类似的问题。 该错误仍然是随机发生的,有时只是稍后重试部署工作正常,而其他人在不同的发行版上失败。
我在github
aws-cdk
存储库中发现了一个相关问题,显示相同的错误, AWS Cloudfront API
在高峰时段似乎存在错误。
来自 CloudFront 团队:
CreateInvalidation API 在日常流量高峰期间出现高故障率。 它将返回高达 50% 的请求的故障。 这主要是由于 API 的容量有限。
我们有证据表明,即使在高峰期重试六次后,一些请求也失败了。 我们正在努力改进这一点,但没有快速解决方法,我们预计到 2022 年第一季度末它会变得更好。
我仍然没有找到一个“干净”的解决方案,我所做的是在我的CLI
脚本中处理错误并自动重试,直到它最终成功。
与其增加重试次数,不如在部署中引入退避/重试代码。
例如,当收到上述错误后退并等待五分钟,然后再次尝试失效。
并且考虑到将 cron 作业配置为按小时、30 分钟等精确运行的人数,也许选择了一个随机的分钟值来运行?
您可以直接在命令中使用增加重试次数:
AWS_MAX_ATTEMPTS=10 aws cloudfront create-invalidation --distribution-id=EVB1B2B3B4B56 --paths "/*"
当 CloudFront API 遇到流量高峰时,您通常会收到此错误。 不能保证成功命中端点,但您仍然有更少的机会错过所有重试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.