超时机制

本节主要介绍升级版 SDK 的超时机制。

升级版 SDK 将 Request 中的业务参数和这种运行时参数分开设置避免用户混淆,所以超时的设置升级版 SDK 的超时机制为 RuntimeOption -> Client 设置 -> 默认,优先级依次降低;默认连接超时为5秒,读超时为10秒,TypeScript 版:

import Ecs20140526, * as $Ecs20140526 from '@alicloud/ecs20140526';
import * as $OpenApi from '@alicloud/openapi-client';
import * as $Util from '@alicloud/tea-util';

export default class Client {
  static async main(): Promise<void> {
    const config = new $OpenApi.Config({
      // 您的AccessKey ID
      accessKeyId: 'AccessKeyId',
      // 您的AccessKey Secret
      accessKeySecret: 'AccessKeySecret',
      // 访问的区域
      regionId: 'RegionId',
      // 设置链接超时时间
      connectTimeout: 10000,
      // 设置读取超时时间
      readTimeout: 10000,
    });
    const client = new Ecs20140526(config);
    const request = new $Ecs20140526.ModifySecurityGroupRuleRequest({
      resourceOwnerAccount: "test",
      resourceOwnerId: 1,
      ownerAccount: "test",
      regionId: "test",
    });
    // 创建RuntimeObject实例并设置运行参数。
    const runtime = new $Util.RuntimeOptions({
      // 设置链接超时时间
      connectTimeout: 10000,
      // 设置读取超时时间
      readTimeout: 10000,
    });
    const resp = await client.modifySecurityGroupRuleWithOptions(request, runtime);
    console.log(resp.headers);
    console.log(resp.body);
  }
}

JavaScript 版:

const { default: Ecs20140526, ModifySecurityGroupRuleRequest } = require('@alicloud/ecs20140526');
const { Config } = require('@alicloud/openapi-client');
const { RuntimeOptions } = require('@alicloud/tea-util');

async function main() {
  const config = new Config({
    // 您的AccessKey ID
    accessKeyId: 'AccessKeyId',
    // 您的AccessKey Secret
    accessKeySecret: 'AccessKeySecret',
    // 访问的区域
    regionId: 'RegionId',
    // 设置链接超时时间
    connectTimeout: 10000,
    // 设置读取超时时间
    readTimeout: 10000,
  });
  const client = new Ecs20140526(config);
  const request = new ModifySecurityGroupRuleRequest({
    resourceOwnerAccount: "test",
    resourceOwnerId: 1,
    ownerAccount: "test",
    regionId: "test",
  });
  // 创建RuntimeObject实例并设置运行参数。
  const runtime = new RuntimeOptions({
    // 设置链接超时时间
    connectTimeout: 10000,
    // 设置读取超时时间
    readTimeout: 10000,
  });
  const resp = await client.modifySecurityGroupRuleWithOptions(request, runtime);
  console.log(resp.headers);
  console.log(resp.body);
}
阿里云首页 阿里云SDK 相关技术圈