Mulai gunakan Elastic Compute Service (ECS) SDK V2.0 untuk Java. Panduan ini menjelaskan cara menginstal SDK dan memanggil operasi DescribeInstances untuk menampilkan daftar instance ECS Anda.
Contoh lengkap yang dapat dijalankan tersedia di bagian bawah halaman ini. Setiap langkah berikut merupakan cuplikan dari contoh tersebut.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Pengguna RAM dengan izin minimum yang diperlukan. Hindari penggunaan akun root Alibaba Cloud—pasangan AccessKey-nya menimbulkan risiko keamanan signifikan jika dikompromikan.
Contoh ini memerlukan akses read-only. Lampirkan kebijakan sistem
AliyunECSReadonlyAccess, atau buat kebijakan kustom sesuai kebutuhan Anda. Lihat otorisasi RAM untuk ECS untuk mengetahui izin yang tersedia.
Pasangan AccessKey yang dikonfigurasi sebagai variabel lingkungan. Atur nilai berikut sebelum menjalankan kode apa pun. Untuk instruksi penyiapan, lihat Konfigurasi variabel lingkungan AccessKey.
Variabel lingkungan Nilai ALIBABA_CLOUD_ACCESS_KEY_IDID AccessKey Anda ALIBABA_CLOUD_ACCESS_KEY_SECRETSecret AccessKey Anda
Instal SDK
Contoh ini menggunakan Apache Maven. Untuk metode instalasi alternatif, lihat SDK Center.
Tambahkan dependensi ECS SDK ke bagian <dependencies> file pom.xml Anda, lalu perbarui proyek Maven Anda.
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>ecs20140526</artifactId>
<version>5.3.0</version>
</dependency>Gunakan SDK
Langkah-langkah berikut mengarah ke contoh lengkap di bagian bawah halaman ini.
Langkah 1: Inisialisasi client
Buat objek Config dengan kredensial dan titik akhir Anda, lalu berikan ke konstruktor Client.
import com.aliyun.ecs20140526.Client;
import com.aliyun.teaopenapi.models.Config;
private static Client createClient() throws Exception {
Config config = new Config()
// Membaca kredensial dari variabel lingkungan.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
// Temukan titik akhir yang tersedia di https://api.aliyun.com/product/Ecs
.setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
return new Client(config);
}SDK mendukung jenis kredensial lain—seperti pasangan AccessKey, token Security Token Service (STS), dan lainnya. Lihat Kelola kredensial akses untuk detail selengkapnya.
Langkah 2: Buat objek permintaan
Objek permintaan mengikuti konvensi penamaan {OperationName}Request. Untuk DescribeInstances, gunakan DescribeInstancesRequest.
// Buat objek permintaan dan atur wilayah target.
DescribeInstancesRequest request = new DescribeInstancesRequest().setRegionId("cn-hangzhou");Untuk daftar lengkap parameter, lihat referensi API DescribeInstances.
Langkah 3: Panggil operasi
Berikan objek permintaan dan objek RuntimeOptions ke metode client. Objek respons mengikuti konvensi penamaan {OperationName}Response.
// Konfigurasi parameter waktu proses seperti timeout dan pengaturan proxy.
RuntimeOptions runtime = new RuntimeOptions();
// Panggil DescribeInstances dan cetak badan respons.
DescribeInstancesResponse response = client.describeInstancesWithOptions(request, runtime);
System.out.println(response.body.toMap());Untuk mengonfigurasi timeout, retry, dan pengaturan proxy, lihat Pengaturan lanjutan.
Langkah 4: Tangani exception
SDK memunculkan dua jenis exception:
| Exception | Penyebab |
|---|---|
TeaUnretryableException | Kegagalan jaringan; muncul setelah jumlah maksimum retry habis |
TeaException | Kesalahan bisnis yang dikembalikan oleh API |
Catat exception, laporkan ke sistem pemantauan Anda, dan terapkan logika retry jika sesuai.
} catch (TeaUnretryableException ue) {
// Kegagalan tingkat jaringan setelah semua retry dilakukan.
ue.printStackTrace();
System.out.println(ue.getMessage());
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// Kesalahan bisnis dari API.
e.printStackTrace();
System.out.println(e.getCode());
System.out.println(e.getMessage()); // Menyertakan RequestId untuk tiket dukungan.
System.out.println(e.getData());
} catch (Exception e) {
e.printStackTrace();
}Contoh lengkap
Berikut adalah contoh lengkap yang dapat dijalankan yang menggabungkan semua langkah di atas.
import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeInstancesRequest;
import com.aliyun.ecs20140526.models.DescribeInstancesResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Sample {
private static Client createClient() throws Exception {
Config config = new Config()
// Membaca kredensial dari variabel lingkungan.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
// Temukan titik akhir yang tersedia di https://api.aliyun.com/product/Ecs
.setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
return new Client(config);
}
public static void main(String[] args) {
try {
Client client = Sample.createClient();
DescribeInstancesRequest request = new DescribeInstancesRequest()
.setRegionId("cn-hangzhou");
RuntimeOptions runtime = new RuntimeOptions();
DescribeInstancesResponse response = client.describeInstancesWithOptions(request, runtime);
System.out.println(response.body.toMap());
} catch (TeaUnretryableException ue) {
// Kegagalan tingkat jaringan setelah semua retry dilakukan.
ue.printStackTrace();
System.out.println(ue.getMessage());
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// Kesalahan bisnis dari API.
e.printStackTrace();
System.out.println(e.getCode());
System.out.println(e.getMessage());
System.out.println(e.getData());
} catch (Exception e) {
e.printStackTrace();
}
}
}Langkah selanjutnya
Pemanggilan generik — panggil operasi ECS OpenAPI apa pun tanpa metode SDK yang di-generate
Java SDK V1.0 — dokumentasi untuk versi SDK sebelumnya