クラシック SDK で API リクエストの接続タイムアウトと読み取りタイムアウトを設定します。
重要
各 API オペレーションには、「${APIオペレーション名}${Request}」というフォーマットで命名された固有のリクエストオブジェクトがあります(例:DescribeInstancesRequest)。
タイムアウト期間
-
Connect Time:SDK からサーバーへの TCP 接続を確立するためのタイムアウトです。
-
Read Time:接続が確立された後、リクエストを送信して完全なレスポンスを受信するまでのタイムアウトです。
クラシック SDK では、タイムアウト期間が次の優先順位で適用されます:リクエストレベルの設定、クライアントレベルの設定、デフォルト値。デフォルトの接続タイムアウトは 5 秒、デフォルトの読み取りタイムアウトは 10 秒です。
IClientProfile profile = DefaultProfile.GetProfile(
// リージョン ID。
"<your-region-id>",
// 環境変数から RAM ユーザーの AccessKey ID を取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 環境変数から RAM ユーザーの AccessKey secret を取得します。
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
// クライアントレベルのタイムアウト設定。この設定は、このクライアントからのすべてのリクエストに適用されます。
client.SetConnectTimeoutInMilliSeconds(1024);
client.SetReadTimeoutInMilliSeconds(2048);
// リクエストレベルのタイムアウト設定。この設定は、現在のリクエストにのみ適用されます。次のコードでは、ECS の DescribeInstancesRequest を例として使用しています。
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.SetConnectTimeoutInMilliSeconds(1024);
request.SetReadTimeoutInMilliSeconds(2048);