All Products
Search
Document Center

Alibaba Cloud SDK:Configure a timeout period

Last Updated:Jul 08, 2024

This topic describes how to configure a timeout period in Alibaba Cloud SDK V2.0 for Go.

Methods

Note

The priority levels of methods that are used to configure a timeout period are listed in descending order: use RuntimeOptions, use a Config object when you initialize an SDK client, and use the default settings.

  • Use the default settings. The default timeout period for connection requests is 5,000 milliseconds and the default timeout period for read requests is 10,000 milliseconds.

  • Use RuntimeOptions.

    package main import (	"encoding/json"	"fmt"	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"	ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v3/client"	util "github.com/alibabacloud-go/tea-utils/v2/service"	"github.com/alibabacloud-go/tea/tea" ) func main() {	config := &openapi.Config{	// Obtain the AccessKey ID of the Resource Access Management (RAM) user from environment variables.	AccessKeyId: tea.String("<AccessId>"),	// Obtain the AccessKey secret of the RAM user from environment variables.	AccessKeySecret: tea.String("<AccessSecret>"),	// Region ID	RegionId: tea.String("<RegionId>"),	}	client, _err := ecs20140526.NewClient(config)	if _err != nil {	panic(_err)	}	describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}	// Create a RuntimeObject instance and configure runtime parameters.	runtime := &util.RuntimeOptions{}	// Configure a timeout period. Unit: milliseconds.	runtime.ConnectTimeout=tea.Int (10000) // Set the timeout period to 10,000 milliseconds for connection requests.	runtime.ReadTimeout=tea.Int (10000) // Set the timeout period to 10,000 milliseconds for read requests.	resp, _err := client.DescribeRegionsWithOptions(describeRegionsRequest, runtime)	if _err != nil {	panic(_err)	}	body, err := json.Marshal(resp.Body)	if err != nil {	panic(err)	}	fmt.Printf("body: %s\n", string(body)) } 
  • Use a Config object when you initialize an SDK client.

    package main import (	"encoding/json"	"fmt"	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"	ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v3/client"	util "github.com/alibabacloud-go/tea-utils/v2/service"	"github.com/alibabacloud-go/tea/tea" ) func main() {	config := &openapi.Config{	// Obtain the AccessKey ID of the RAM user from environment variables.	AccessKeyId: tea.String("<AccessId>"),	// Obtain the AccessKey secret of the RAM user from environment variables.	AccessKeySecret: tea.String("<AccessSecret>"),	// Region ID	RegionId: tea.String("<RegionId>"),	// Configure a timeout period. Unit: milliseconds.	ConnectTimeout: tea.Int(10000), // Configure the timeout period for connection requests. Unit: milliseconds.	ReadTimeout: tea.Int(10000), // Configure the timeout period for read requests. Unit: milliseconds.	}	client, _err := ecs20140526.NewClient(config)	if _err != nil {	panic(_err)	}	describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}	// Create a RuntimeObject instance and configure runtime parameters.	runtime := &util.RuntimeOptions{}	resp, _err := client.DescribeRegionsWithOptions(describeRegionsRequest, runtime)	if _err != nil {	panic(_err)	}	body, err := json.Marshal(resp.Body)	if err != nil {	panic(err)	}	fmt.Printf("body: %s\n", string(body)) }