すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:ECS Node.js V2.0 SDK の呼び出し例

最終更新日:Jan 06, 2026

このトピックでは、Node.js V2.0 ソフトウェア開発キット (SDK) のインストール方法と使用方法について説明し、DescribeInstances API 操作を使用して 1 つ以上の Elastic Compute Service (ECS) インスタンスの詳細をクエリする例を示します。

前提条件

  1. 最小限必要な権限を持つ Resource Access Management (RAM) ユーザーが、その AccessKey ペアを使用してログインします。Alibaba Cloud アカウントはすべての権限を持っており、その AccessKey ペアが漏洩すると重大なセキュリティリスクをもたらすため、使用することは推奨されません。AccessKey ペアの作成方法の詳細については、「AccessKey ペアの作成」をご参照ください。

  2. RAM ユーザーに ECS リソースを管理する権限が付与されていること。この例では読み取り専用アクセスが必要であり、AliyunECSReadonlyAccess システムポリシーが使用されます。ビジネス要件に応じて権限を付与してください。

    1. カスタムポリシーの作成

      カスタムポリシーの作成に関するガイダンスについては、「カスタムポリシーの作成」および「RAM での権限付与」をご参照ください。

      ECS は、ベストプラクティスに基づいたカスタムポリシーテンプレートを提供しています。これらのポリシーテンプレートを参照して、ニーズに応じたポリシーを迅速に作成できます。詳細については、「カスタムポリシー」をご参照ください。

    2. システムポリシーの使用

      ECS がサポートするシステムポリシーとその権限の詳細については、「ECS のシステムポリシー」をご参照ください。

  3. AccessKey ペアが環境変数に設定されていること。詳細については、「Linux、macOS、Windows で環境変数を設定する」をご参照ください。

SDK のインストール

Node.js V2.0 SDK は、SDK センターからインストールできます。または、次のコマンドをコピーしてターミナルで実行して、ECS SDK をインストールすることもできます:

npm install --save @alicloud/ecs20140526@4.3.0

SDK の使用

1. クライアントの初期化

Alibaba Cloud SDK は、AccessKey やセキュリティトークンサービス (STS) トークンなど、複数の種類のアクセス認証情報をサポートしてクライアントを初期化します。その他のメソッドの詳細については、「アクセス認証情報の管理」をご参照ください。この例では、AccessKey を使用してクライアントを初期化する方法を示します。

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({
           // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID が設定されていることを確認してください。
           accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
           // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
           accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
           endpoint: `ecs.cn-hangzhou.aliyuncs.com`,
       });
       return new Ecs20140526(config);
   }
}

JavaScript の例

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

class Client {
  static createClient() {
    const config = new OpenApi.Config({
      // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID が設定されていることを確認してください。
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
      accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
      endpoint: `ecs.cn-hangzhou.aliyuncs.com`,
    });
    return new Ecs20140526.default(config);
  }
}

2. API 操作のリクエストオブジェクトの作成

リクエストオブジェクトを作成する前に、操作の API ドキュメント を参照して、そのパラメーターに関する情報を取得してください。

説明

リクエストオブジェクトの命名規則は {APIName}Request です。たとえば、DescribeInstances 操作のリクエストオブジェクトは DescribeInstancesRequest です。

TypeScript の例

// リクエストオブジェクトを作成します。
const describeInstancesRequest = new Ecs20140526.DescribeInstancesRequest({
  regionId: "cn-hangzhou",
});

JavaScript の例

// リクエストオブジェクトを作成します。
const describeInstancesRequest = new Ecs20140526.DescribeInstancesRequest({
  regionId: "cn-hangzhou",
});

3. 呼び出しの開始

クライアントから OpenAPI 操作を呼び出すときに、タイムアウトやプロキシ設定などの実行時パラメーターを設定できます。詳細については、「高度な設定」をご参照ください。

説明

レスポンスオブジェクトの命名規則は {APIName}Response です。たとえば、DescribeInstances 操作のレスポンスオブジェクトは DescribeInstancesResponse です。

TypeScript の例

// 実行時設定オブジェクトを作成します。
const runtime = new $Util.RuntimeOptions();
// リクエストを開始します。  
const describeInstancesResponse = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);

JavaScript の例

// 実行時設定オブジェクトを作成します。
const runtime = new Util.RuntimeOptions();
// リクエストを開始します。  
const describeInstancesResponse = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);

4. 例外の処理

Node.js SDK は、Promise と async/await を使用して非同期操作を処理します。また、開発者が API 呼び出しにおける潜在的なエラーをキャッチして処理するのに役立つエラー処理メカニズムも提供します。API 呼び出しが失敗すると、Alibaba Cloud SDK は Error オブジェクトをスローします。SDK は例外を UnretryableError と ResponseError に分類します。

  • UnretryableError:このエラーは通常、ネットワークの問題によって発生します。このエラーは、ネットワーク問題の最大リトライ回数に達した後にスローされます。

  • ResponseError:これはビジネス関連の例外です。

堅牢で安定したシステムを確保するためには、例外の伝播、ログの記録、回復の試行など、適切な対策を講じる必要があります。

5. 完全な例

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({
            // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID が設定されていることを確認してください。
            accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
            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();
        // リクエストオブジェクトを作成します。
        const describeInstancesRequest = new $Ecs20140526.DescribeInstancesRequest({
            regionId: "cn-hangzhou",
        });
        // 実行時設定オブジェクトを作成します。
        const runtime = new $Util.RuntimeOptions();
        try {
            // リクエストを開始し、レスポンスを取得します。
            const response = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);
            console.log('Describe Instances Response:', JSON.stringify(response.body));
        } catch (error) {
            // このエラーはデモ目的でのみ出力されます。例外は慎重に処理してください。プロジェクトで例外を無視しないでください。
            console.error('Error occurred:', error);
        }
    }
}

Client.main();

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({
      // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID が設定されていることを確認してください。
      accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
      // 必須。環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。
      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();
    // リクエストオブジェクトを作成します。
    const describeInstancesRequest = new Ecs20140526.DescribeInstancesRequest({
      regionId: "cn-hangzhou",
    });
    // 実行時設定オブジェクトを作成します。
    const runtime = new Util.RuntimeOptions();
    try {
      // リクエストを開始し、レスポンスを取得します。
      const response = await client.describeInstancesWithOptions(describeInstancesRequest, runtime);
      console.log('Describe Instances Response:', JSON.stringify(response.body));
    } catch (error) {
      // このエラーはデモ目的でのみ出力されます。例外は慎重に処理してください。プロジェクトで例外を無視しないでください。
      // エラーメッセージ
      console.log('Error occurred:', error.message);
    }
  }
}

Client.main();

詳細情報

上記の方法に加えて、一般化された呼び出しを使用して ECS OpenAPI 操作を呼び出すこともできます。詳細については、「一般化された呼び出し」をご参照ください。

V1.0 SDK の詳細については、「V1.0 Node.js SDK」をご参照ください。