Topik ini menjelaskan cara mengonfigurasi periode timeout di Alibaba Cloud SDK V1.0 untuk Go.
Metode
Tingkat prioritas metode untuk mengonfigurasi periode timeout permintaan baca adalah sebagai berikut (dari tertinggi ke terendah): gunakan objek permintaan, inisialisasi klien SDK, gunakan objek Config saat menginisialisasi klien SDK, gunakan konfigurasi default di pustaka inti, dan gunakan pengaturan default.
Tingkat prioritas metode untuk mengonfigurasi periode timeout permintaan koneksi adalah sebagai berikut (dari tertinggi ke terendah): gunakan objek permintaan, inisialisasi klien SDK, dan gunakan pengaturan default.
Gunakan pengaturan default. Periode timeout default untuk permintaan koneksi adalah 5.000 milidetik, sedangkan untuk permintaan baca adalah 10.000 milidetik.
PentingDi pustaka inti Alibaba Cloud SDK untuk Go, konfigurasi tertentu digunakan untuk mengonfigurasi periode timeout permintaan baca dari beberapa operasi API. Jika konfigurasi tersebut ada, maka konfigurasi tersebut akan digunakan sebagai nilai default. Untuk informasi lebih lanjut, lihat api_timeout.go.
Gunakan objek permintaan. Metode ini hanya berlaku untuk permintaan saat ini.
import ( "fmt" "os" "time" "github.com/aliyun/alibaba-cloud-sdk-go/sdk" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" ecs "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs" ) func main() { config := sdk.NewConfig() // Gunakan AccessKey ID dan Rahasia AccessKey dari Pengguna Resource Access Management (RAM). credential := credentials.NewAccessKeyCredential(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) client, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential) if err != nil { panic(err) } // Buat permintaan. request := ecs.CreateDescribeRegionsRequest() // Konfigurasikan periode timeout untuk permintaan. Pengaturan ini hanya berlaku untuk permintaan saat ini. request.SetConnectTimeout(10 * time.Second) request.SetReadTimeout(5 * time.Second) // Tentukan HTTPS sebagai protokol. request.Scheme = "https" // Parameter permintaan. request.InstanceChargeType = "PrePaid" // Metode tagihan instance. request.ResourceType = "instance" // Jenis sumber daya. // Kirim permintaan dan dapatkan respons. response, err := client.DescribeRegions(request) if err != nil { fmt.Print(err.Error()) } fmt.Printf("response is %#v\n", response) }Inisialisasi klien SDK. Metode ini berlaku untuk semua permintaan yang dikirim menggunakan klien SDK.
import ( "fmt" "os" "time" "github.com/aliyun/alibaba-cloud-sdk-go/sdk" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" ecs "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs" ) func main() { config := sdk.NewConfig() // Gunakan AccessKey ID dan Rahasia AccessKey dari Pengguna RAM. credential := credentials.NewAccessKeyCredential(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) client, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential) if err != nil { panic(err) } // Konfigurasikan periode timeout pada klien SDK. Pengaturan ini berlaku untuk semua permintaan yang dikirim menggunakan klien SDK. client.SetConnectTimeout(10 * time.Second) client.SetReadTimeout(5 * time.Second) // Buat permintaan. request := ecs.CreateDescribeRegionsRequest() // Tentukan HTTPS sebagai protokol. request.Scheme = "https" // Parameter permintaan. request.InstanceChargeType = "PrePaid" // Metode tagihan instance. request.ResourceType = "instance" // Jenis sumber daya. // Kirim permintaan dan dapatkan respons. response, err := client.DescribeRegions(request) if err != nil { fmt.Print(err.Error()) } fmt.Printf("response is %#v\n", response) }Gunakan objek Config saat menginisialisasi klien SDK. Metode ini berlaku untuk semua klien SDK yang diinisialisasi menggunakan objek Config.
import ( "fmt" "os" "time" "github.com/aliyun/alibaba-cloud-sdk-go/sdk" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" ecs "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs" ) func main() { config := sdk.NewConfig() // Gunakan objek Config untuk mengonfigurasi periode timeout. config.Timeout = 5 * time.Second // Gunakan AccessKey ID dan Rahasia AccessKey dari Pengguna RAM. credential := credentials.NewAccessKeyCredential(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) client, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential) if err != nil { panic(err) } // Buat permintaan. request := ecs.CreateDescribeRegionsRequest() // Tentukan HTTPS sebagai protokol. request.Scheme = "https" // Parameter permintaan. request.InstanceChargeType = "PrePaid" // Metode tagihan instance. request.ResourceType = "instance" // Jenis sumber daya. // Kirim permintaan dan dapatkan respons. response, err := client.DescribeRegions(request) if err != nil { fmt.Print(err.Error()) } fmt.Printf("response is %#v\n", response) }