Cloud-native API Gateway は、ルート単位のリトライポリシーをサポートしており、失敗したリクエストを自動的に再試行します。接続障害、バックエンドサービスの利用不可、特定の HTTP ステータスコードなど、リトライ条件を指定できます。
リトライ条件
バックエンドサービスが 5xx エラーを返すと、Cloud-native API Gateway は設定された回数まで自動的にリクエストを再試行します。
-
HTTP プロトコル のリトライ条件:
-
5xx:バックエンドサービスが
5xx応答を返すか、読み取り操作中に接続が切断・リセットされる、またはタイムアウトする場合。説明5xx条件には、connect-failureおよびrefused-stream条件が含まれます。 -
reset:読み取り操作中に接続が切断・リセットされる、またはタイムアウトする場合。
-
connect-failure:接続が切断されたためにリクエストが失敗する場合。
-
refused-stream:バックエンドサービスが
REFUSED_STREAMエラーコードでストリームをリセットする場合。 -
retriable-status-codes:応答内の HTTP ステータスコードが指定されたリトライステータスコードと一致する場合。
説明リトライステータスコードは、リトライ条件に
retriable-status-codesが指定されている場合にのみ使用できます。
-
-
gRPC プロトコル のリトライ条件:
-
cancelled:レスポンスヘッダー内の gRPC ステータスコードが
cancelledの場合。 -
deadline-exceeded:レスポンスヘッダー内の gRPC ステータスコードが
deadline-exceededの場合。 -
internal:レスポンスヘッダー内の gRPC ステータスコードが
internalの場合。 -
resource-exhausted:レスポンスヘッダー内の gRPC ステータスコードが
resource-exhaustedの場合。 -
unavailable:レスポンスヘッダー内の gRPC ステータスコードが
unavailableの場合。
-
ルートリトライポリシーの構成
-
API の管理方法に応じて、以下のいずれかの方法でリトライポリシーを構成できます。
インスタンス外の API
-
Cloud-native API Gateway コンソール にログインします。左側のナビゲーションウィンドウで API をクリックし、上部のメニューバーからリージョンを選択します。
-
HTTP API ページで、上部のドロップダウンリストを使用してターゲットインスタンスを選択します。特定のインスタンスまたは すべてのインスタンス を選択できます。
-
Routes で、対象のルートをクリックします。
インスタンス内の API
-
Cloud-native API Gateway コンソール にログインします。左側のナビゲーションウィンドウで インスタンス をクリックし、上部のメニューバーからリージョンを選択します。
-
インスタンス ページで、対象のゲートウェイインスタンスをクリックします。左側のナビゲーションウィンドウで API をクリックし、対象の API をクリックします。
-
Routes で、対象のルートをクリックします。
-
-
Configure Policy タブをクリックします。Inbound Processing セクションで、Enable Policy/Plug-in をクリックします。
-
Retry カードをクリックします。Add Policy: Retry パネルでパラメーターを構成し、Add をクリックします。
説明リトライポリシーを構成して有効化した後、期待どおりに動作することを確認してください。
パラメーター
説明
Enable
リトライポリシーを有効または無効にします。
-
有効:リトライポリシーがアクティブになります。
-
無効:リトライポリシーが非アクティブになります。
説明このポリシーが無効の場合、ゲートウェイはデフォルトのリトライ構成を使用します。デフォルトのリトライ回数は 2 回で、デフォルトリトライ条件は
connect-failure、refused-stream、unavailable、cancelled、およびretriable-status-codesです。Retry Times
失敗したリクエストに対する最大リトライ回数です。有効値:0 ~ 10。2 以下を推奨します。
説明0 を指定すると、リトライは無効になります。
Retry Condition
リトライをトリガーする条件です。複数の条件を選択できます。詳細については、「リトライ条件」をご参照ください。
Retry Status Code
リトライをトリガーする HTTP ステータスコードです。複数のコードを指定できます。
説明再試行状態コード パラメーターは、Retry Condition に
retriable-status-codesが選択されている場合にのみ構成できます。 -