重试机制

本节主要介绍升级版 SDK 的重试机制。

升级版 SDK 对 OpenAPI 请求中遇到网络问题的情况会进行重试,对于业务报错则不会重试。在请求中通过运行时参数配置重试,优先级为 RuntimeOption -> 默认;默认不会进行重试,如果打开重试配置未配置重试次数,则默认最多重试3次,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',
      // 设置打开重试
      autoretry: true,
      // 设置重试次数
      maxAttempts: 3,
    });
    const client = new Ecs20140526(config);
    const request = new $Ecs20140526.ModifySecurityGroupRuleRequest({
      resourceOwnerAccount: "test",
      resourceOwnerId: 1,
      ownerAccount: "test",
      regionId: "test",
    });
    // 创建RuntimeObject实例并设置运行参数。
    const runtime = new $Util.RuntimeOptions({
      // 设置打开重试
      autoretry: true,
      // 设置重试次数
      maxAttempts: 3,
    });
    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',
    // 设置打开重试
    autoretry: true,
    // 设置重试次数
    maxAttempts: 3,
  });
  const client = new Ecs20140526(config);
  const request = new ModifySecurityGroupRuleRequest({
    resourceOwnerAccount: "test",
    resourceOwnerId: 1,
    ownerAccount: "test",
    regionId: "test",
  });
  // 创建RuntimeObject实例并设置运行参数。
  const runtime = new RuntimeOptions({
    // 设置打开重试
    autoretry: true,
    // 设置重试次数
    maxAttempts: 3,
  });
  const resp = await client.modifySecurityGroupRuleWithOptions(request, runtime);
  console.log(resp.headers);
  console.log(resp.body);
}
阿里云首页 阿里云SDK 相关技术圈