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 フィールドが200、OK、Success、またはsuccessでない場合、例外がスローされます。プログラムでカスタムエラーコードを定義できます。詳細については、「例外処理」をご参照ください。
関連ドキュメント
-
RPC および ROA の詳細については、「OpenAPIスタイル」をご参照ください。
-
プロキシやタイムアウト設定などの高度な SDK 設定の詳細については、「高度な設定」をご参照ください。
-
アクセスキーペアの作成方法については、「アクセスキーペアの作成」をご参照ください。