全部产品
Search
文档中心

Elastic Compute Service:Contoh penggunaan ECS SDK V2.0 untuk Node.js

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menginstal Elastic Compute Service (ECS) SDK V2.0 untuk Node.js dan memberikan contoh penggunaannya untuk memanggil operasi API ECS. Dalam contoh ini, operasi DescribeInstances digunakan untuk menanyakan informasi tentang Instance ECS.

Prasyarat

  1. Pengguna Resource Access Management (RAM) dengan izin minimum harus masuk menggunakan pasangan AccessKey-nya. Hindari menggunakan akun Alibaba Cloud karena memiliki izin penuh yang dapat menjadi risiko keamanan signifikan jika terganggu. Untuk panduan membuat pasangan AccessKey, lihat Buat pasangan AccessKey.

  2. Pengguna RAM harus diizinkan mengelola sumber daya ECS. Contoh ini memerlukan akses baca-saja, dan kebijakan sistem AliyunECSReadonlyAccess digunakan. Sesuaikan izin berdasarkan kebutuhan bisnis Anda.

    1. Buat kebijakan kustom.

      Untuk panduan pembuatan kebijakan kustom, lihat Buat kebijakan kustom dan Otorisasi RAM.

      ECS menyediakan template kebijakan kustom berdasarkan praktik terbaik. Gunakan template tersebut untuk menetapkan kebijakan sesuai kebutuhan. Untuk detail lebih lanjut, lihat Kebijakan Kustom.

    2. Gunakan kebijakan sistem.

      Untuk informasi lebih lanjut tentang kebijakan sistem yang didukung oleh ECS dan izin mereka, lihat Kebijakan Sistem untuk ECS.

  3. Pasangan AccessKey harus dikonfigurasi dalam variabel lingkungan. Untuk panduan konfigurasi, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.

Instalasi SDK

Untuk petunjuk instalasi SDK V2.0 untuk Node.js, kunjungi Pusat SDK. Jalankan perintah berikut di terminal untuk menginstal SDK ECS:

npm install --save @alicloud/ecs20140526@4.3.0

Gunakan SDK

1. Inisialisasi klien

Alibaba Cloud SDK mendukung berbagai kredensial akses, seperti pasangan AccessKey dan Token Layanan Keamanan (STS), untuk menginisialisasi klien. Untuk detail lebih lanjut, lihat Kelola kredensial akses. Contoh berikut menginisialisasi klien menggunakan pasangan AccessKey.

Contoh TypeScript

import Ecs20140526, * as $Ecs20140526 from '@alicloud/ecs20140526';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';

export class Client {
    static createClient() {
        let config = new $OpenApi.Config({
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID disetel dalam lingkungan runtime.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET disetel dalam lingkungan runtime.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint: `ecs-cn-hangzhou.aliyuncs.com`,
        });
        return new Ecs20140526(config);
    }
}

Contoh JavaScript

const Ecs20140526 = require('@alicloud/ecs20140526');
const OpenApi = require('@alicloud/openapi-client');

class Client {
    static createClient() {
        const config = new OpenApi.Config({
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID disetel dalam lingkungan runtime.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET disetel dalam lingkungan runtime.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint: `ecs-cn-hangzhou.aliyuncs.com`,
        });
        return new Ecs20140526.default(config);
    }
}

2. Bangun objek permintaan

Sebelum membangun objek permintaan, lihat DescribeInstances untuk detail parameter.

Catatan

Nama objek permintaan harus dalam format {Nama API}Request. Sebagai contoh, objek permintaan untuk DescribeInstances adalah DescribeInstancesRequest.

Contoh TypeScript

// Bangun objek permintaan.
const describeInstancesRequest = new Ecs20140526.DescribeInstancesRequest({
    regionId: "cn-hangzhou",
});

Contoh JavaScript

// Bangun objek permintaan.
const describeInstancesRequest = new Ecs20140526.DescribeInstancesRequest({
    regionId: "cn-hangzhou",
});

3. Lakukan panggilan

Saat memanggil operasi API melalui klien, Anda dapat mengonfigurasi parameter runtime seperti timeout dan pengaturan proxy. Untuk informasi lebih lanjut, lihat Pengaturan Lanjutan.

Catatan

Nama objek respons harus dalam format {Nama API}Response. Sebagai contoh, objek respons untuk DescribeInstances adalah DescribeInstancesResponse.

Contoh TypeScript

// Buat objek konfigurasi runtime.
const runtime = new $Util.RuntimeOptions();
// Lakukan permintaan.  
const describeInstancesResponse = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);

Contoh JavaScript

// Buat objek konfigurasi runtime.
const runtime = new Util.RuntimeOptions();
// Lakukan permintaan.  
const describeInstancesResponse = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);

4. Tangani Pengecualian

SDK untuk Node.js menggunakan Promise dan async/await untuk operasi asinkron serta menyediakan mekanisme penanganan kesalahan untuk menangkap dan mengelola pengecualian selama pemanggilan API. Saat pemanggilan API gagal, Alibaba Cloud SDK melempar objek Error. SDK untuk Node.js mengategorikan pengecualian menjadi UnretryableError dan ResponseError.

  • UnretryableError: Jenis pengecualian ini disebabkan oleh masalah jaringan. Ketika jumlah maksimum percobaan ulang tercapai, UnretryableError dilemparkan.

  • ResponseError: Jenis pengecualian ini disebabkan oleh kesalahan bisnis.

Kami merekomendasikan agar Anda menangani pengecualian dengan benar melalui operasi seperti pelaporan pengecualian, pencatatan log, dan percobaan ulang. Ini membantu memastikan ketangguhan dan stabilitas sistem Anda.

5. Contoh kode

Contoh TypeScript

import * as $Util from '@alicloud/tea-util';
import Ecs20140526, * as $Ecs20140526 from '@alicloud/ecs20140526';
import * as $OpenApi from '@alicloud/openapi-client';

export class Client {
    static createClient() {
        let config = new $OpenApi.Config({
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID disetel dalam lingkungan runtime.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET disetel dalam lingkungan runtime.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint: `ecs-cn-hangzhou.aliyuncs.com`,
        });
        return new Ecs20140526(config);
    }
    static async main(): Promise<void> {
        const client = Client.createClient();
        // Bangun objek permintaan.
        const describeInstancesRequest = new $Ecs20140526.DescribeInstancesRequest({
            regionId: "cn-hangzhou",
        });
        // Buat objek konfigurasi runtime.
        const runtime = new $Util.RuntimeOptions();
        try {
            // Lakukan permintaan dan tangkap respons.
            const response = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);
            console.log('Respons Deskripsi Instance:', JSON.stringify(response.body));
        } catch (error) {
            // Tangani pengecualian dengan hati-hati di proyek Anda. Jangan abaikan mereka.
            console.error('Terjadi kesalahan:', error);
        }
    }
}

Client.main();

Contoh JavaScript

const Ecs20140526 = require('@alicloud/ecs20140526');
const OpenApi = require('@alicloud/openapi-client');
const Util = require('@alicloud/tea-util');

class Client {
    static createClient() {
        const config = new OpenApi.Config({
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID disetel dalam lingkungan runtime.
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET disetel dalam lingkungan runtime.
            accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint: `ecs-cn-hangzhou.aliyuncs.com`,
        });
        return new Ecs20140526.default(config);
    }

    static async main() {
        const client = Client.createClient();
        // Bangun objek permintaan.
        const describeInstancesRequest = new Ecs20140526.DescribeInstancesRequest({
            regionId: "cn-hangzhou",
        });
        // Buat objek konfigurasi runtime.
        const runtime = new Util.RuntimeOptions();
        try {
            // Lakukan permintaan dan tangkap respons.
            const response = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);
            console.log('Respons Deskripsi Instance:', JSON.stringify(response.body));
        } catch (error) {
            // Tangani pengecualian dengan hati-hati di proyek Anda. Jangan abaikan mereka.
            console.error('Terjadi kesalahan:', error.message);
        }
    }
}

Client.main();

Referensi

Untuk metode alternatif memanggil operasi ECS OpenAPI, lihat Panggilan generik.

Untuk informasi tentang SDK V1.0, lihat V1.0 Node.js SDK.