Mulai menggunakan Alibaba Cloud Go SDK dengan Visual Studio Code (VS Code) di Windows.
Prasyarat
-
Go telah diinstal. Instal Go di Windows.
-
VS Code telah diinstal. Siapkan lingkungan pengembangan Go di Windows.
Gunakan SDK
Gunakan proyek contoh dari OpenAPI Explorer
Pengunduhan proyek contoh mungkin gagal. Jika demikian, gunakan SDK dalam proyek yang sudah ada sebagai gantinya.
-
Buka halaman API Debugging di Portal OpenAPI. Pilih produk cloud dan API. Contoh ini menggunakan API ECS DescribeRegions. Masukkan DescribeRegions di bilah pencarian dan klik nama API tersebut.

-
Di tab Parameter Settings, masukkan parameter yang diperlukan. Tab Document di sebelah kanan menyediakan deskripsi API, catatan, informasi penagihan, dan detail parameter.
API DescribeRegions mendukung tiga parameter:
Nama Parameter
Wajib
Deskripsi
InstanceChargeType
Opsional
Wilayah yang didukung bervariasi berdasarkan metode penagihan. Default: PrePaid.
ResourceType
Opsional
Wilayah yang didukung bervariasi berdasarkan jenis resource. Default: instance.
AcceptLanguage
Opsional
Bahasa hasil yang dikembalikan. Default: zh-CN.

-
Di tab SDK Sample, pilih bahasa lalu klik Download Project. Ekstrak proyek yang telah diunduh.

-
Di VS Code, klik File > Open Folder dan pilih folder hasil ekstraksi.
-
Klik Terminal > New Terminal untuk membuka terminal di bagian bawah.

-
Jalankan perintah berikut untuk memperbarui dependensi modul.
go mod tidy -
Jalankan perintah berikut untuk mengeksekusi kode contoh dalam paket main.
go run ./main -
Verifikasi hasilnya. Tekan
Ctrl+Fdi Terminal dan caristatusCode. Respons"statusCode": 200menunjukkan keberhasilan.
Gunakan SDK dalam proyek yang sudah ada
-
Di VS Code, klik File > Open Folder dan buat atau pilih folder proyek, misalnya `gosdkproject`.
-
Klik Terminal > New Terminal, lalu jalankan
go mod init gosdkprojectsuntuk menginisialisasi proyek Go.
-
Dapatkan SDK.
Di SDK Center, pilih produk cloud seperti ECS, atur SDK Version ke V2.0, dan atur Language ke Go.

-
Instal SDK.
Salin perintah instalasi ke terminal lalu jalankan.

-
Buat file .go. Di samping nama proyek, klik New File... dan masukkan nama file, misalnya `ecsDescribeRegions.go`.

-
Inisialisasi client.
Inisialisasi client ECS sebelum memanggil API ECS apa pun.
PentingInisialisasi client memerlukan Pasangan Kunci Akses (AccessKey pair). Buat AccessKey.
Setelah Anda mendapatkan Pasangan Kunci Akses, konfigurasikan sebagai variabel lingkungan. Konfigurasikan variabel lingkungan di sistem Linux, macOS, dan Windows.
Konfigurasi endpoint: Endpoints.
package main import ( "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient menginisialisasi dan mengembalikan client ECS. // Fungsi ini tidak menerima parameter, tetapi memerlukan agar variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah disetel. // return *ecs20140526.Client // return error: Mengembalikan objek error non-nil jika terjadi kesalahan selama pembuatan client. func CreateClient() (_result *ecs20140526.Client, _err error) { // Inisialisasi objek openapi.Config untuk mengonfigurasi client ECS. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Buat dan kembalikan instans client ECS menggunakan konfigurasi tersebut. return ecs20140526.NewClient(config) } -
Panggil API. Tinjau Dokumentasi API untuk API yang dituju. Contoh berikut memanggil API `DescribeRegions` milik ECS.
CatatanSetiap API memiliki objek permintaan terpisah yang mengikuti konvensi penamaan `${NamaAPI}${Request}`, seperti `DescribeRegionsRequest`.
package main import ( "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient menginisialisasi dan mengembalikan client ECS. // Fungsi ini tidak menerima parameter, tetapi memerlukan agar variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah disetel. // return *ecs20140526.Client // return error: Mengembalikan objek error non-nil jika terjadi kesalahan selama pembuatan client. func CreateClient() (_result *ecs20140526.Client, _err error) { // Inisialisasi objek openapi.Config untuk mengonfigurasi client ECS. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Buat dan kembalikan instans client ECS menggunakan konfigurasi tersebut. return ecs20140526.NewClient(config) } // Fungsi InvokeApi memanggil API DescribeRegions milik ECS untuk mengkueri informasi wilayah yang tersedia. // // Nilai kembalian: // _result: Mengembalikan pointer bertipe *ecs20140526.DescribeRegionsResponse, yang berisi informasi wilayah yang dikueri. // _err: Mengembalikan pesan kesalahan bertipe error. Nilai ini tidak kosong jika terjadi kesalahan selama pemanggilan. func InvokeApi()(_result *ecs20140526.DescribeRegionsResponse, _err error) { // Buat client ECS. client, _err := CreateClient() if _err != nil { // Jika terjadi kesalahan selama pembuatan client, kembalikan pesan kesalahan secara langsung. return _result, _err } // Buat permintaan DescribeRegions. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Ajukan permintaan DescribeRegions dan kembalikan hasilnya. return client.DescribeRegions(describeRegionsRequest) } -
Tangani exception.
Alibaba Cloud Go SDK mengembalikan error untuk penanganan exception standar (Penanganan exception). Untuk situasi tak terduga, gunakan
panicbersamadeferdanrecover.panicmenghentikan eksekusi secara langsung. Di dalam blokdefer,recovermenangkap panic dan melanjutkan eksekusi normal.package main import ( "fmt" "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient menginisialisasi dan mengembalikan client ECS. // Fungsi ini tidak menerima parameter, tetapi memerlukan agar variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah disetel. // return *ecs20140526.Client // return error: Mengembalikan objek error non-nil jika terjadi kesalahan selama pembuatan client. func CreateClient() (_result *ecs20140526.Client, _err error) { // Inisialisasi objek openapi.Config untuk mengonfigurasi client ECS. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Buat dan kembalikan instans client ECS menggunakan konfigurasi tersebut. return ecs20140526.NewClient(config) } // Fungsi InvokeApi memanggil API DescribeRegions milik ECS untuk mengkueri informasi wilayah yang tersedia. // // Nilai kembalian: // _result: Mengembalikan pointer bertipe *ecs20140526.DescribeRegionsResponse, yang berisi informasi wilayah yang dikueri. // _err: Mengembalikan pesan kesalahan bertipe error. Nilai ini tidak kosong jika terjadi kesalahan selama pemanggilan. func InvokeApi() (_result *ecs20140526.DescribeRegionsResponse, _err error) { // Buat client ECS. client, _err := CreateClient() if _err != nil { // Jika terjadi kesalahan selama pembuatan client, kembalikan pesan kesalahan secara langsung. return _result, _err } // Buat permintaan DescribeRegions. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Ajukan permintaan DescribeRegions dan kembalikan hasilnya. return client.DescribeRegions(describeRegionsRequest) } // Fungsi ini memperoleh informasi wilayah dengan memanggil API, serta memulihkan dan menangani exception saat terjadi. func main() { // Gunakan defer hanya dalam skenario seperti rekursi mendalam atau error tak terduga. defer func() { if err := tea.Recover(recover()); err != nil { // Saat exception tertangkap, tangani berdasarkan jenis exception tersebut. if sdkError, ok := err.(*tea.SDKError); ok { // Cetak pesan kesalahan SDK, kode kesalahan, dan data terkait. fmt.Println(tea.StringValue(sdkError.Message)) fmt.Println(tea.StringValue(sdkError.Code)) fmt.Println(tea.StringValue(sdkError.Data)) } else { // Cetak pesan kesalahan jenis lainnya. fmt.Println(err) } } }() // Panggil API untuk mendapatkan hasilnya. result, _ := InvokeApi() // Iterasi dan cetak informasi wilayah dalam hasil tersebut. for _, region := range result.Body.Regions.Region { fmt.Println("regionId: " + tea.StringValue(region.RegionId)) } // Cetak RequestId. fmt.Println("RequestId: " + tea.StringValue(result.Body.RequestId)) } -
Di terminal, jalankan
go rununtuk mengeksekusi kode.