簡體   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