將請求限制到您的 HTTP API,以便在 API Gateway 中獲得更好的輸送量 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將請求限制到您的 HTTP API,以便在 API Gateway 中獲得更好的輸送量

您可以為您的 API 設定調節,以防止 API 接收過多請求。調節會依最佳作法來套用,它們都應該視為目標,而非確定的請求上限。

API Gateway 會使用字符儲存貯體演算法將字符計算為請求,進而調節傳送給 API 的請求量。具體而言,API Gateway 會按區域檢查帳戶中所有 API 的速率和爆量請求次數。在字符儲存貯體演算法中,爆量可以實現預先定義的超限,但在某些情況下,其他因素也可能導致超限。

提交的請求量超出穩定狀態請求率和爆量限制時,API Gateway 會開始調節請求量。此時用戶端可能會收到 429 Too Many Requests 的錯誤回應。發現這類例外狀況時,用戶端可以採用限制速率的方式來重新提交失敗的請求。

身為 API 開發人員,您可以設定個別 API 階段或路由的目標限制,來改善您帳戶中所有 API 的整體效能。

每個區域的帳戶層級調節

預設情況下,API Gateway 會按區域限制 AWS 帳戶內所有 API 的每秒穩定狀態請求量 (RPS)。它還會按區域限制 AWS 帳戶內所有 API 的爆量 (即儲存貯體大小上限)。在 API Gateway 中,爆量限制代表 API Gateway 傳回 429 Too Many Requests 錯誤回應前可實現的並行請求提交數上限。如需有關調節配額的詳細資訊,請參閱 Amazon API Gateway 配額和重要備註

帳戶型限制會套用至指定區域內某帳戶的所有 API。帳戶層級速率限制可按請求提高。使用較短逾時值和較小酬載的 API 可擁有更高的上限。如需請求提高區域內帳戶層級的調節限制,請與 AWS 支援中心聯絡。如需詳細資訊,請參閱 Amazon API Gateway 配額和重要備註。請注意,這些限制不能高於 AWS 節流限制。

路由層級調節

您可以設定路由層級調節,來覆寫特定階段或 API 中個別路由的帳戶層級請求調節限制。預設路由調節限制不能超出帳戶層級速率限制。

您可以使用 AWS CLI設定路由層級的節流設定。下列命令會針對指定的 API 階段和路由設定自訂調節。

aws apigatewayv2 update-stage \ --api-id a1b2c3d4 \ --stage-name dev \ --route-settings '{"GET /pets":{"ThrottlingBurstLimit":100,"ThrottlingRateLimit":2000}}'