All Products
Search
Document Center

Alibaba Cloud SDK:Gunakan Alibaba Cloud Go SDK dengan IDE

Last Updated:Jun 03, 2026

Mulai menggunakan Alibaba Cloud Go SDK dengan Visual Studio Code (VS Code) di Windows.

Prasyarat

Gunakan SDK

Gunakan proyek contoh dari OpenAPI Explorer

Catatan

Pengunduhan proyek contoh mungkin gagal. Jika demikian, gunakan SDK dalam proyek yang sudah ada sebagai gantinya.

  1. 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.

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

  2. 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.

    1716346635851_0B018C7F-D759-497b-B529-58E23E4AC41B

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

    image

  4. Di VS Code, klik File > Open Folder dan pilih folder hasil ekstraksi.

  5. Klik Terminal > New Terminal untuk membuka terminal di bagian bawah.

    image

  6. Jalankan perintah berikut untuk memperbarui dependensi modul.

    go mod tidy
  7. Jalankan perintah berikut untuk mengeksekusi kode contoh dalam paket main.

    go run ./main
  8. Verifikasi hasilnya. Tekan Ctrl+F di Terminal dan cari statusCode. Respons "statusCode": 200 menunjukkan keberhasilan.

    image

Gunakan SDK dalam proyek yang sudah ada

  1. Di VS Code, klik File > Open Folder dan buat atau pilih folder proyek, misalnya `gosdkproject`.

  2. Klik Terminal > New Terminal, lalu jalankan go mod init gosdkprojects untuk menginisialisasi proyek Go.

    image

  3. Dapatkan SDK.

    Di SDK Center, pilih produk cloud seperti ECS, atur SDK Version ke V2.0, dan atur Language ke Go.

    image

  4. Instal SDK.

    Salin perintah instalasi ke terminal lalu jalankan.

    image

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

    image

  6. Inisialisasi client.

    Inisialisasi client ECS sebelum memanggil API ECS apa pun.

    Penting
    1. Inisialisasi client memerlukan Pasangan Kunci Akses (AccessKey pair). Buat AccessKey.

    2. Setelah Anda mendapatkan Pasangan Kunci Akses, konfigurasikan sebagai variabel lingkungan. Konfigurasikan variabel lingkungan di sistem Linux, macOS, dan Windows.

    3. 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)
    }
    
  7. Panggil API. Tinjau Dokumentasi API untuk API yang dituju. Contoh berikut memanggil API `DescribeRegions` milik ECS.

    Catatan

    Setiap 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)
    }
    
  8. Tangani exception.

    Alibaba Cloud Go SDK mengembalikan error untuk penanganan exception standar (Penanganan exception). Untuk situasi tak terduga, gunakan panic bersama defer dan recover. panic menghentikan eksekusi secara langsung. Di dalam blok defer, recover menangkap 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))
    }
    
  9. Di terminal, jalankan go run untuk mengeksekusi kode.

    image

Referensi

Dokumentasi lanjutan