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

Alibaba Cloud SDK:SDK の統合

最終更新日:Jun 17, 2026

Alibaba Cloud SDK をプロジェクトに統合することで、OpenAPI 呼び出しを簡素化し、機能統合を加速させ、メンテナンスコストを削減できます。本トピックでは、SDK のインストールと基本的な使用方法について説明します。

前提条件

Node.js 8.x 以降

SDK のインストール

V1.0 Node.js SDK は汎化呼び出し (CommonRequest) のみをサポートしており、@alicloud/pop-core 依存関係のみが必要です。次のコマンドを実行してインストールします。

npm install @alicloud/pop-core

SDK の使用

V1.0 Node.js SDK は、RPC と ROA の 2 つの呼び出しスタイルをサポートしています。以下の例では、RPC に Elastic Compute Service (ECS) DescribeInstances オペレーション、ROA に Container Service for Kubernetes (ACK) DescribeClustersV1 オペレーションを使用します。

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

すべての OpenAPI オペレーションは、@alicloud/pop-core が提供する RPCClient または ROAClient を使用して呼び出します。オペレーションを呼び出す前に、クライアントを初期化する必要があります。次の例ではアクセスキーペアを使用します。その他の初期化方法については、「STS トークンを使用したクライアントの初期化」をご参照ください。

説明

この例では、環境変数から認証情報を取得します。コードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を設定してください。詳細については、「Linux、macOS、および Windows システムでの環境変数の設定」をご参照ください。

RPCクライアント

// RPC クライアントを初期化する
const Core = require('@alicloud/pop-core');
var client = new Core({
  // 必須。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'],
  // http(s)://<product_endpoint> 形式のドメイン名。 HTTPS の使用を推奨します。 ECS の例: https://ecs.cn-hangzhou.aliyuncs.com
  endpoint: 'https://ecs.cn-hangzhou.aliyuncs.com',
  // クラウド製品の API バージョン。 ECS の例: 2014-05-26
  apiVersion: '2014-05-26'
});

ROAクライアント

// ROA クライアントを初期化する
var ROAClient = require('@alicloud/pop-core').ROAClient;
var roaClient = new ROAClient({
  // 必須。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'],
  // http(s)://<product_endpoint> 形式のドメイン名。 HTTPS の使用を推奨します。 Container Service の例: https://cs.cn-chengdu.aliyuncs.com
  endpoint: 'https://cs.cn-chengdu.aliyuncs.com',
  // クラウド製品の API バージョン。 Container Service の例: 2015-12-15
  apiVersion: '2015-12-15'
});

2. リクエストパラメーターの構築

リクエストには、OpenAPI オペレーション名、リクエストパラメーターオブジェクト、およびランタイムパラメーターオブジェクトの 3 つのパラメーターが必要です。

説明

ローカルファイルのアップロードはサポートされていません。ローカルファイルをアップロードする場合は、V2.0 SDK を使用してください。

RPC呼び出しパラメーター

// OpenAPI オペレーション名
var action = 'DescribeInstances'
// リクエストパラメーター
var params = {
  "RegionId": "cn-hangzhou",
  "InstanceIds": "[\"i-bp67************\", \"i-7xva************\", … \"i-7xvc************\"]"
}
// ランタイムパラメーター
var requestOption = {
  method: 'POST',
  formatParams: false,
};

ROA呼び出しパラメーター

// リクエストメソッド
const method = "GET"
// パスパラメーター
const uriPattern = '/api/v1/clusters';
// クエリパラメーター
var queryParams = {
  "cluster_type": "Kubernetes",
  "name": "cluster-demo"
};
// JSON 文字列形式のリクエストボディ。 例: `{"nodepool_info":{"name":"nodepool-test","type":"ess"}}`;
const body = "";
// カスタムリクエストヘッダー
const headers = {
  "Content-Type": "application/json"
};
// ランタイムパラメーター
const options = {
  timeout: 3000, // デフォルト 3000 ms
};

3. リクエストの送信

ステップ 1 で作成したクライアントのrequest オペレーションを呼び出し、ステップ 2 で構築したパラメーターを渡します。

RPC呼び出し

// リクエストを送信する
client.request(action, params, requestOption).then((result) => {
  console.log(JSON.stringify(result));
}, (ex) => {
  console.log(ex);
})

ROA呼び出し

// リクエストを送信する
roaClient.request(method, uriPattern, queryParams, body, headers, options)
  .then((response) => {
    console.log('ROA Response:', response);
  })
  .catch((error) => {
    console.error('ROA Error:', error);
  });

4. 例外の処理

デフォルトでは、API レスポンスの Code フィールドが200OKSuccess、またはsuccessでない場合、例外がスローされます。プログラムでカスタムエラーコードを定義できます。詳細については、「例外処理」をご参照ください。

完全なコード例

RPC呼び出し

// RPC クライアントを初期化する
const Core = require('@alicloud/pop-core');

var client = new Core({
  // 必須。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'],
  // http(s)://<product_endpoint> 形式のドメイン名。 HTTPS の使用を推奨します。 ECS の例: https://ecs.cn-hangzhou.aliyuncs.com
  endpoint: 'https://ecs.cn-hangzhou.aliyuncs.com',
  // クラウド製品の API バージョン。 ECS の例: 2014-05-26
  apiVersion: '2014-05-26'
});

// OpenAPI オペレーション名
var action = 'DescribeInstances'

// リクエストパラメーター
var params = {
  "RegionId": "cn-hangzhou",
  "InstanceIds": "[\"i-bp67************\", \"i-7xva************\", … \"i-7xvc************\"]"
}

// ランタイムパラメーター
var requestOption = {
  method: 'POST',
  formatParams: false,
};

// リクエストを送信する
client.request(action, params, requestOption).then((result) => {
  console.log(JSON.stringify(result));
}, (ex) => {
  console.log(ex);
})

ROA呼び出し

const ROAClient = require('@alicloud/pop-core').ROAClient;

// ROA クライアントを初期化する
var roaClient = new ROAClient({
  // 必須。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'],
  // http(s)://<product_endpoint> 形式のドメイン名。 HTTPS の使用を推奨します。 Container Service の例: https://cs.cn-chengdu.aliyuncs.com
  endpoint: 'https://cs.cn-chengdu.aliyuncs.com',
  // クラウド製品の API バージョン。 Container Service の例: 2015-12-15
  apiVersion: '2015-12-15'
});

// リクエストメソッド
const method = "GET"
// パスパラメーター
const uriPattern = '/api/v1/clusters';
// クエリパラメーター
var queryParams = {
  "cluster_type": "Kubernetes",
  "name": "cluster-demo"
};
// JSON 文字列形式のリクエストボディ。 例: `{"nodepool_info":{"name":"nodepool-test","type":"ess"}}`;
const body = "";
// カスタムリクエストヘッダー
const headers = {
  "Content-Type": "application/json"
};
// ランタイムパラメーター
const options = {
  timeout: 3000, // デフォルト 3000 ms
};

// リクエストを送信する
roaClient.request(method, uriPattern, queryParams, body, headers, options)
  .then((response) => {
    console.log('ROA Response:', response);
  })
  .catch((error) => {
    console.error('ROA Error:', error);
  });

関連ドキュメント

  • RPC および ROA の詳細については、「OpenAPIスタイル」をご参照ください。

  • プロキシやタイムアウト設定などの高度な SDK 設定の詳細については、「高度な設定」をご参照ください。

  • アクセスキーペアの作成方法については、「アクセスキーペアの作成」をご参照ください。