繁体   English   中英

AWS Cloudfront 错误? 部署时失效的最大次数?

[英]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.

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