Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

再試行とタイムアウト - SDK for .NET (バージョン 3)

のバージョン 4 (V4) SDK for .NET はプレビュー中です。プレビューでこの新しいバージョンに関する情報を確認するには、 AWS SDK for .NET (バージョン 4 プレビュー) デベロッパーガイドを参照してください。

SDK の V4 はプレビュー中であるため、コンテンツは変更される可能性があることに注意してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

のバージョン 4 (V4) SDK for .NET はプレビュー中です。プレビューでこの新しいバージョンに関する情報を確認するには、 AWS SDK for .NET (バージョン 4 プレビュー) デベロッパーガイドを参照してください。

SDK の V4 はプレビュー中であるため、コンテンツは変更される可能性があることに注意してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

再試行とタイムアウト

AWS SDK for .NET では、 AWS サービスへの HTTP リクエストの再試行回数とタイムアウト値を設定できます。再試行とタイムアウトのデフォルト値がアプリケーションで適切でない場合は、特定の要件に対してそれらの値を調整できますが、それによってアプリケーションの動作にどのように影響するかを理解しておくことが重要です。

再試行とタイムアウトに使用する値を決定するには、以下の点を検討します。

  • ネットワーク接続が低下した、または AWS サービスにアクセスできない場合、 AWS SDK for .NET とアプリケーションはどのように応答する必要がありますか? 呼び出しがすぐに失敗するか、またはユーザーに代わって呼び出しが再試行され続けるか、どちらが適切か。

  • 応答性が必要なユーザー対応アプリケーションまたはウェブサイトであるか、またはレイテンシーの増加に耐性があるバックグラウンド処理ジョブであるか。

  • アプリケーションが低レイテンシーの信頼性の高いネットワークでデプロイされているか、または信頼性が低い接続でリモートの場所にデプロイされているか。

再試行

概要

AWS SDK for .NET は、サーバー側のスロットリングや接続の切断が原因で失敗したリクエストを再試行できます。サービス設定クラスの 2 つのプロパティを使用して、サービスクライアントの再試行動作を指定します。サービス設定クラスは、AWS SDK for .NET API リファレンスの抽象 Amazon.Runtime.ClientConfig クラスからこれらのプロパティを継承します。

  • RetryMode では、Amazon.Runtime.RequestRetryMode 列挙で定義される 3 つの再試行モードのいずれかを指定します。

    アプリケーションのデフォルト値は、AWS_RETRY_MODE環境変数または共有設定ファイルの retry_mode AWS 設定を使用して制御できます。

  • MaxErrorRetry では、サービスクライアントレベルで許可される再試行の回数を指定します。SDK では、指定した回数だけ操作が再試行された後に、失敗となり、例外がスローされます。

    アプリケーションのデフォルト値は、 AWS_MAX_ATTEMPTS環境変数または共有設定ファイルの max_attempts AWS 設定を使用して制御できます。

これらのプロパティの詳細な説明は、AWS SDK for .NET API リファレンスの抽象 Amazon.Runtime.ClientConfig クラスに記載されています。RetryMode の各値は、次の表に示すように、デフォルトでは MaxErrorRetry の特定の値に対応します。

RetryMode Corresponding MaxErrorRetry (Amazon DynamoDB) Corresponding MaxErrorRetry (all others)
Legacy 10 4
Standard 10 2
Adaptive (experimental) 10 2

行動

アプリケーションの起動時

アプリケーションの起動時に、RetryMode および MaxErrorRetry のデフォルト値が SDK によって設定されます。これらのデフォルト値は、他の値を指定しない限り、サービスクライアントを作成するときに使用されます。

  • 環境でプロパティが設定されていない場合は、RetryMode のデフォルトが Legacy として設定され、MaxErrorRetry のデフォルトが上記の表の対応する値で設定されます。

  • 環境で再試行モードが設定されている場合は、その値が RetryMode のデフォルトとして使用されます。MaxErrorRetry のデフォルトは、最大エラー数の値も環境で設定されていない限り、上記の表の対応する値で設定されます (次の説明を参照)。

  • 環境で最大エラー数の値が設定されている場合は、その値が MaxErrorRetry のデフォルトとして使用されます。Amazon DynamoDB はこのルールの例外です。MaxErrorRetry のデフォルトの DynamoDB 値は、常に上記の表の値になります。

アプリケーションの実行時

サービスクライアントを作成すると、RetryMode および MaxErrorRetry の次のデフォルト値を使用できます。または、前述したように、他の値を指定することもできます。他の値を指定するには、サービスクライアントを作成する際に、AmazonDynamoDBConfigAmazonSQSConfig など、サービス設定オブジェクトを作成して含めます。

サービスクライアントの作成後にこれらの値を変更することはできません。

考慮事項

再試行が発生すると、リクエストのレイテンシーが増加します。アプリケーションでのリクエストレイテンシーの合計とエラー発生率の制限に基づいて、再試行回数を設定する必要があります。

タイムアウト

AWS SDK for .NET では、リクエストタイムアウトとソケットの読み取り/書き込みタイムアウト値をサービスクライアントレベルで設定できます。これらの値は、抽象 Amazon.Runtime.ClientConfig クラスの Timeout プロパティと ReadWriteTimeout プロパティで指定されます。これらの値は、 AWS サービスクライアントオブジェクトによって作成された HttpWebRequest オブジェクトの Timeoutおよび ReadWriteTimeoutプロパティとして渡されます。デフォルトでは、Timeout の値は 100 秒であり、ReadWriteTimeout の値は 300 秒です。

ネットワークのレイテンシーが大きい場合、または操作が再試行される条件が存在する場合に、長いタイムアウト値と大きい再試行回数を使用すると、一部の SDK 操作が応答していないように見えることがあります。

注記

ポータブルクラスライブラリ (PCL) をターゲット AWS SDK for .NET とする のバージョンは、 クラスではなく HttpClient HttpWebRequest クラスを使用し、タイムアウトプロパティのみをサポートします。

デフォルトのタイムアウト値の例外を次に示します。これらの値は、タイムアウト値を明示的に設定するとオーバーライドされます。

次の例では、標準再試行モード、3 回の最大再試行、10 秒のタイムアウト、および 10 秒の読み取り/書き込みタイムアウト (該当する場合) を指定する方法を示しています。AmazonS3Client コンストラクタには AmazonS3Config オブジェクトが指定されています。

var s3Client = new AmazonS3Client( new AmazonS3Config { Timeout = TimeSpan.FromSeconds(10), // NOTE: The following property is obsolete for // versions of the SDK for .NET that target .NET Core. ReadWriteTimeout = TimeSpan.FromSeconds(10), RetryMode = RequestRetryMode.Standard, MaxErrorRetry = 3 });
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.