Topik ini menjelaskan cara menggunakan Alibaba Cloud SDK untuk Go di Lingkungan Pengembangan Terpadu (IDE) pada Windows. Contoh ini menggunakan Visual Studio (VS) Code.
Prasyarat
Go sudah terinstal. Untuk informasi lebih lanjut, lihat Instal Go di Windows.
VS Code sudah terinstal. Untuk informasi lebih lanjut tentang cara menginstal VS Code, lihat Bangun lingkungan pengembangan Go di Windows.
Gunakan SDK
Gunakan proyek sampel yang disediakan di OpenAPI Explorer
Anda mungkin tidak dapat mengunduh proyek sampel untuk operasi API tertentu. Dalam hal ini, gunakan SDK dalam proyek yang ada.
Buka OpenAPI Explorer. Cari operasi API yang ingin digunakan. Dalam contoh ini, operasi DescribeRegions dari Elastic Compute Service (ECS) digunakan. Masukkan "DescribeRegions" di kotak pencarian dan klik nama operasi di hasil pencarian untuk membuka halaman debugging API.

Di tab Parameters di kolom tengah, tentukan parameter sesuai kebutuhan Anda. Saat menentukan parameter, baca informasi di tab Document di kolom paling kanan. Pastikan Anda memahami catatan penggunaan operasi dan deskripsi setiap parameter. Perhatikan informasi terkait tagihan.
Dalam contoh ini, operasi DescribeRegions mendukung tiga parameter permintaan.
Parameter
Wajib
Deskripsi
InstanceChargeType
Tidak
Metode penagihan instance. Wilayah yang didukung bervariasi berdasarkan metode penagihan. Nilai default: PrePaid, yang menunjukkan metode penagihan langganan.
ResourceType
Tidak
Jenis sumber daya. Wilayah yang didukung bervariasi berdasarkan jenis sumber daya. Nilai default: instance.
AcceptLanguage
Tidak
Bahasa dalam mana respons akan dikembalikan. Nilai default: zh-CN.

Di tab SDK Sample Code di kolom paling kanan, pilih bahasa pemrograman dan klik Download Project untuk mengunduh proyek SDK lengkap ke komputer Anda. Kemudian, ekstrak paket tersebut.

Buka VS Code, pilih File > Open Folder di bilah navigasi atas, lalu pilih folder yang telah diekstrak.
Di bilah navigasi atas konsol VS Code, pilih Terminal > New Terminal. Jendela TERMINAL akan muncul di bagian bawah konsol.

Jalankan perintah berikut di terminal untuk merapikan dan memperbarui dependensi modul saat ini:
go mod tidyJalankan kode demo SDK. Jalankan perintah berikut di terminal untuk menjalankan kode sampel di file utama:
go run ./mainLihat hasilnya. Klik di mana saja di terminal dan tekan
Ctrl+Funtuk mencaristatusCode. Jika"statusCode":200ditampilkan, panggilan berhasil.
Gunakan SDK di proyek yang ada
Buka VS Code dan pilih File > Open Folder di bilah navigasi atas. Buat dan pilih folder proyek atau pilih folder proyek yang sudah ada. Dalam contoh ini, folder bernama gosdkproject dibuat dan dipilih.
Di bilah navigasi atas, pilih Terminal > New Terminal. Jendela TERMINAL akan muncul di bagian bawah konsol. Jalankan perintah
go mod init gosdkprojectsdi terminal untuk menginisialisasi proyek Go.
Dapatkan SDK.
Kunjungi SDK Center dan pilih layanan cloud yang SDK-nya ingin digunakan. Dalam contoh ini, ECS digunakan. Pilih V2.0 sebagai versi SDK dan Go sebagai bahasa pemrograman.

Instal SDK.
Salin perintah instalasi ke terminal dan tekan tombol Enter.

Buat file .go. Klik ikon New File... di sebelah kanan nama proyek dan masukkan nama file seperti ecsDescribeRegions.go.

Inisialisasi klien.
Untuk memanggil API ECS, Anda harus menginisialisasi klien ECS terlebih dahulu.
PentingAnda harus menggunakan pasangan AccessKey untuk menyelesaikan verifikasi identitas saat menginisialisasi klien. Dalam hal ini, Anda harus mendapatkan pasangan AccessKey terlebih dahulu. Untuk informasi lebih lanjut tentang cara mendapatkan pasangan AccessKey, lihat Buat pasangan AccessKey.
Setelah Anda mendapatkan pasangan AccessKey dari pengguna RAM, Anda harus mengonfigurasi pasangan AccessKey di variabel lingkungan. Untuk informasi lebih lanjut, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.
Untuk informasi lebih lanjut tentang cara mengonfigurasi titik akhir, lihat 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" ) // Fungsi CreateClient menginisialisasi dan mengembalikan klien ECS. // Fungsi ini tidak memerlukan argumen, tetapi Anda harus memastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi. // return *ecs20140526.Client // return error: Jika terjadi kesalahan selama pembuatan klien, objek error non-nil dikembalikan. func CreateClient() (_result *ecs20140526.Client, _err error) { // Inisialisasi objek openapi.Config untuk mengkonfigurasi klien 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"), } // Gunakan konfigurasi untuk membuat dan mengembalikan instance klien ECS. return ecs20140526.NewClient(config) }Panggil operasi API. Sebelum memanggil operasi API, baca Dokumentasi API yang sesuai. Dalam contoh ini, operasi DescribeRegions dari ECS digunakan.
CatatanSetiap operasi API memiliki objek permintaan, dinamai dalam format ${Nama API}${Request}. Contoh: 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" ) // Fungsi CreateClient menginisialisasi dan mengembalikan klien ECS. // Fungsi ini tidak memerlukan argumen, tetapi Anda harus memastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi. // return *ecs20140526.Client // return error: Jika terjadi kesalahan selama pembuatan klien, objek error non-nil dikembalikan. func CreateClient() (_result *ecs20140526.Client, _err error) { // Inisialisasi objek openapi.Config untuk mengkonfigurasi klien 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"), } // Gunakan konfigurasi untuk membuat dan mengembalikan instance klien ECS. return ecs20140526.NewClient(config) } // Fungsi InvokeApi digunakan untuk memanggil operasi DescribeRegions dari ECS untuk menanyakan wilayah yang tersedia. // // Response: // _result: mengembalikan pointer bertipe *ecs20140526.DescribeRegionsResponse, yang berisi wilayah yang diminta. // _err: mengembalikan pesan kesalahan bertipe error. Jika terjadi kesalahan selama pemanggilan, nilainya tidak kosong. func InvokeApi()(_result *ecs20140526.DescribeRegionsResponse, _err error) { // Buat klien ECS. client, _err := CreateClient() if _err != nil { // Jika terjadi kesalahan selama pembuatan klien, pesan kesalahan dikembalikan. return _result, _err } // Buat permintaan DescribeRegions. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Kirim permintaan DescribeRegions dan kembalikan hasilnya. return client.DescribeRegions(describeRegionsRequest) }Tangani pengecualian.
Alibaba Cloud SDK untuk Go menangani pengecualian dengan mengembalikan pesan kesalahan. Untuk informasi lebih lanjut, lihat Penanganan pengecualian. Namun, dalam situasi yang tidak terduga, Anda mungkin perlu menggunakan
panicdanrecoveruntuk menangani pengecualian. Saatpanicdigunakan untuk menangani pengecualian di Go, itu segera menghentikan eksekusi fungsi saat ini. Dalam hal ini, panic umumnya digunakan bersama dengan defer untuk menangkappanicsaat ini dengan menggunakanrecoverdideferuntuk memulihkan proses eksekusi normal. Oleh karena itu, penggunaan yang tepat daripanic,defer, danrecoverdapat membantu membangun logika penanganan kesalahan yang lebih kuat, terutama saat menangani kesalahan kritis yang dapat menyebabkan program mogok.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" ) // Fungsi CreateClient menginisialisasi dan mengembalikan klien ECS. // Fungsi ini tidak memerlukan argumen, tetapi Anda harus memastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi. // return *ecs20140526.Client // return error: Jika terjadi kesalahan selama pembuatan klien, objek error non-nil dikembalikan. func CreateClient() (_result *ecs20140526.Client, _err error) { // Inisialisasi objek openapi.Config untuk mengkonfigurasi klien 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"), } // Gunakan konfigurasi untuk membuat dan mengembalikan instance klien ECS. return ecs20140526.NewClient(config) } // Fungsi InvokeApi digunakan untuk memanggil operasi DescribeRegions dari ECS untuk menanyakan wilayah yang tersedia. // // Response: // _result: mengembalikan pointer bertipe *ecs20140526.DescribeRegionsResponse, yang berisi wilayah yang diminta. // _err: mengembalikan pesan kesalahan bertipe error. Jika terjadi kesalahan selama pemanggilan, nilainya tidak kosong. func InvokeApi() (_result *ecs20140526.DescribeRegionsResponse, _err error) { // Buat klien ECS. client, _err := CreateClient() if _err != nil { // Jika terjadi kesalahan selama pembuatan klien, pesan kesalahan dikembalikan. return _result, _err } // Buat permintaan DescribeRegions. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Kirim permintaan DescribeRegions dan kembalikan hasilnya. return client.DescribeRegions(describeRegionsRequest) } // Fungsi ini dapat memperoleh informasi wilayah dengan memanggil operasi API dan menangani serta memulihkan pengecualian. func main() { // Kami sarankan Anda hanya menggunakan defer untuk skenario rekursi mendalam atau kesalahan tak terduga. defer func() { if err := tea.Recover(recover()); err != nil { // Saat pengecualian tertangkap, tangani berdasarkan jenis pengecualian. if sdkError, ok := err.(*tea.SDKError); ok { // Tampilkan pesan kesalahan, kode kesalahan, dan data terkait. fmt.Println(tea.StringValue(sdkError.Message)) fmt.Println(tea.StringValue(sdkError.Code)) fmt.Println(tea.StringValue(sdkError.Data)) } else { // Tampilkan pesan kesalahan lainnya. fmt.Println(err) } } }() // Panggil operasi API untuk mendapatkan hasilnya. result, _ := InvokeApi() // Telusuri dan tampilkan wilayah yang dikembalikan. for _, region := range result.Body.Regions.Region { fmt.Println("regionId: " + tea.StringValue(region.RegionId)) } // Tampilkan ID permintaan. fmt.Println("RequestId: " + tea.StringValue(result.Body.RequestId)) }Jalankan kode menggunakan perintah
go rundi terminal.