全部产品
Search
文档中心

Alibaba Cloud SDK:Integrasikan dengan Alibaba Cloud SDK V1.0 untuk Go

更新时间:Jul 06, 2025

Untuk mempermudah pemanggilan API, disarankan mengintegrasikan Alibaba Cloud SDK ke dalam proyek Anda. SDK ini menyederhanakan proses pengembangan, mempercepat integrasi fitur, dan secara signifikan mengurangi biaya operasional dan pemeliharaan (O&M). Topik ini menjelaskan cara mengintegrasikan Alibaba Cloud SDK V1.0 untuk Go ke dalam proyek Anda serta cara menggunakan SDK untuk pengembangan.

Penting

Dukungan untuk Alibaba Cloud SDK V1.0 untuk Go telah berakhir. Untuk informasi lebih lanjut, lihat Akhir dukungan untuk Alibaba Cloud SDK V1.0 untuk Golang pada 1 Maret 2025. Disarankan menggunakan Alibaba Cloud SDK V2.0 untuk Go.

Prasyarat

Go versi 1.10.x telah terinstal.

Instal SDK

Saat menginstal Alibaba Cloud SDK V1.0 untuk Go, pustaka inti akan diinstal secara otomatis. Oleh karena itu, Anda hanya perlu menginstal SDK tersebut.

SDK layanan cloud

SDK layanan cloud mencakup objek permintaan yang diperlukan untuk memanggil operasi API dan objek respons. Contoh berikut menunjukkan cara menginstal SDK Elastic Compute Service (ECS). Jalankan perintah instalasi berikut di terminal atau antarmuka baris perintah (CLI):

go get github.com/aliyun/alibaba-cloud-sdk-go/services/ecs

SDK V1.0 untuk Go dari layanan Alibaba Cloud dinamai dalam format github.com/aliyun/alibaba-cloud-sdk-go/services/${Service code}.

Pustaka inti SDK

Pustaka inti SDK mencakup objek klien, logika tanda tangan, dan logika penanganan kesalahan, yang merupakan informasi yang diperlukan untuk memanggil operasi API. Untuk membuat panggilan generik, jalankan perintah berikut:

go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk

Gunakan SDK

Contoh berikut menunjukkan cara menggunakan Alibaba Cloud SDK V1.0 untuk memanggil operasi API DescribeInstances dari Elastic Compute Service (ECS).

1. Inisialisasi klien permintaan

Semua operasi API dipanggil menggunakan objek klien yang disediakan oleh pustaka SDK. Sebelum memanggil operasi API, Anda harus menginisialisasi klien permintaan. Dalam contoh ini, klien permintaan diinisialisasi menggunakan pasangan AccessKey. Untuk informasi lebih lanjut, lihat Kelola Kredensial Akses.

Catatan

Dalam contoh ini, pasangan AccessKey diperoleh dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET, yang harus dikonfigurasi sebelum menjalankan kode. Untuk informasi lebih lanjut, lihat Konfigurasikan Variabel Lingkungan di Linux, macOS, dan Windows.

import (
	"os"

	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
	config := sdk.NewConfig()
	credential, err := credentials.NewStaticAKCredentialsProviderBuilder().
		WithAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
		WithAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
		Build()
	if err != nil {
		panic(err)
	}
	// Inisialisasi klien layanan cloud
	ecsClient, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential)
	if err != nil {
		panic(err)
	}
}

2. Buat objek permintaan

Anda dapat menggunakan objek permintaan yang disediakan oleh SDK untuk mengenkapsulasi parameter permintaan.

Catatan

Berikan nama objek permintaan operasi API dalam format berikut: <Nama Operasi API>Request.

// Dalam kode contoh, pustaka Requests digunakan. Oleh karena itu, informasi berikut harus ditambahkan untuk mengimpor pustaka: "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests".

// Buat objek permintaan.
request := ecs.CreateDescribeInstancesRequest()
request.InstanceIds = "[\"i-bp1dXXXXXXXXXXXX\"]"
request.PageSize = requests.Integer("100")
request.PageNumber = requests.Integer("1")

3. Ajukan permintaan API

Gunakan klien permintaan yang dibuat di Langkah 1 untuk memanggil operasi API. Parameter permintaan operasi tersebut dienkapsulasi dalam objek permintaan yang dibuat di Langkah 2.

response, err := ecsClient.DescribeInstances(request)
if err != nil {
	panic(err)
}
fmt.Print(response.GetHttpContentString())

Kode Contoh Lengkap

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
	config := sdk.NewConfig()
	credential, err := credentials.NewStaticAKCredentialsProviderBuilder().
		WithAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
		WithAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
		Build()
	if err != nil {
		panic(err)
	}

	ecsClient, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential)
	if err != nil {
		panic(err)
	}

	// Buat objek permintaan.
	request := ecs.CreateDescribeInstancesRequest()
	request.InstanceIds = "[\"i-bp1dXXXXXXXXXXXX\"]"
	request.PageSize = requests.Integer("100")
	request.PageNumber = requests.Integer("1")

	response, err := ecsClient.DescribeInstances(request)
	if err != nil {
		panic(err)
	}
	fmt.Print(response.GetHttpContentString())
}

Referensi

  • Untuk informasi lebih lanjut tentang pengaturan SDK tingkat lanjut, seperti pengaturan proxy dan timeout, lihat Pengaturan Lanjutan.

  • Untuk informasi lebih lanjut tentang cara membuat pasangan AccessKey, lihat Buat Pasangan AccessKey.