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)) }