調節 API 請求以獲得較佳輸送 - Amazon API Gateway

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

調節 API 請求以獲得較佳輸送

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

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

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

身為 API 開發人員,您可以設定個別 API 階段或方法的目標限制,來改善您帳戶中所有 API 的整體效能。或者,您可以啟用用量計劃,根據指定的請求速率和配額來對用戶端提交的請求量設定調節。

如何在 API Gateway 中套用調節限制設定

在設定 API 的調節和配額前,先了解 Amazon API Gateway 如何套用設定會有所幫助。

Amazon API Gateway 提供四種基本類型的調節相關設定:

  • AWS 節流限制適用於一個區域中的所有帳戶和客戶。這些限制設定的存在是為防止 API 和帳戶接收的請求過多。這些限制由客戶設定, AWS 且無法變更。

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

  • API 型限制、階段型調節限制則會套用到某特定階段的 API 方法層級。您可以為所有方法做相同設定,或為每個方法做不同的調節設定。請注意,這些限制不能高於 AWS 節流限制。

  • 用戶端型調節限制會套用至用戶端,這類用戶端採用與用量計劃關聯的 API 金鑰做為用戶端識別符。請注意,這些限制不能高於帳戶型限制。

系統會以如下順序套用 API Gateway 調節相關設定:

每個區域的帳戶層級調節

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

在用量計劃中設定 API 層級和階段層級調節目標

用量計劃中,您可以在 API 或階段層級為所有方法設定方法型限流。您可以指定限流速率,也就是將權杖新增至權杖儲存貯體的速率 (以每秒請求數計算)。您也可以指定限流暴量,也就是權杖儲存貯體的容量。

您可以使用 AWS CLI、SDK 和建立 AWS Management Console 使用方案。如需如何建立使用量計劃的詳細資訊,請參閱使用 API 金鑰建立及使用用量計劃

設定階段層級限流目標

您可以使用 AWS CLI、SDK 和建立階段層級節流目標。 AWS Management Console

如需如何使用建立階段層級節流目 AWS Management Console 標的相關資訊,請參閱。更新階段設定如需如何使用 AWS CLI 建立階段層級節流目標的相關資訊,請參閱建立階段。

在用量計劃中設定方法層級調節目標

您可以在 Usage Plans (用量計劃) 中在方法層級設定其他調節目標,如 建立用量計劃 中的程序所示。若要在 API Gateway 主控台中設定這些限制,請在設定方法調節 設定中指定 Resource=<resource>Method=<method>。例如,例PetStore如,您可以指定Resource=/petsMethod=GET