全部产品
Search
文档中心

Alibaba Cloud SDK:Gunakan Alibaba Cloud SDK untuk Go di IDE

更新时间:Jul 06, 2025

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

Gunakan SDK

Gunakan proyek sampel yang disediakan di OpenAPI Explorer

Catatan

Anda mungkin tidak dapat mengunduh proyek sampel untuk operasi API tertentu. Dalam hal ini, gunakan SDK dalam proyek yang ada.

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

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

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

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

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

    image

  4. Buka VS Code, pilih File > Open Folder di bilah navigasi atas, lalu pilih folder yang telah diekstrak.

  5. Di bilah navigasi atas konsol VS Code, pilih Terminal > New Terminal. Jendela TERMINAL akan muncul di bagian bawah konsol.

    image

  6. Jalankan perintah berikut di terminal untuk merapikan dan memperbarui dependensi modul saat ini:

    go mod tidy
  7. Jalankan kode demo SDK. Jalankan perintah berikut di terminal untuk menjalankan kode sampel di file utama:

    go run ./main
  8. Lihat hasilnya. Klik di mana saja di terminal dan tekan Ctrl+F untuk mencari statusCode. Jika "statusCode":200 ditampilkan, panggilan berhasil.

    image

Gunakan SDK di proyek yang ada

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

  2. Di bilah navigasi atas, pilih Terminal > New Terminal. Jendela TERMINAL akan muncul di bagian bawah konsol. Jalankan perintah go mod init gosdkprojects di terminal untuk menginisialisasi proyek Go.

    image

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

    image

  4. Instal SDK.

    Salin perintah instalasi ke terminal dan tekan tombol Enter.

    image

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

    image

  6. Inisialisasi klien.

    Untuk memanggil API ECS, Anda harus menginisialisasi klien ECS terlebih dahulu.

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

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

    3. 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)
    }
    
  7. Panggil operasi API. Sebelum memanggil operasi API, baca Dokumentasi API yang sesuai. Dalam contoh ini, operasi DescribeRegions dari ECS digunakan.

    Catatan

    Setiap 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)
    }
    
  8. 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 panic dan recover untuk menangani pengecualian. Saat panic digunakan untuk menangani pengecualian di Go, itu segera menghentikan eksekusi fungsi saat ini. Dalam hal ini, panic umumnya digunakan bersama dengan defer untuk menangkap panic saat ini dengan menggunakan recover di defer untuk memulihkan proses eksekusi normal. Oleh karena itu, penggunaan yang tepat dari panic, defer, dan recover dapat 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))
    }
    
  9. Jalankan kode menggunakan perintah go run di terminal.

    image

Operasi terkait

Operasi lanjutan