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

IoT Platform:Node.js 用 SDK の使用例

最終更新日:Mar 27, 2025

Alibaba Cloud の Node.js SDK を活用して、DataService Studio 内で API 操作を簡単に呼び出し、特定のデータを取得できます。このトピックでは、Node.js SDK を使用してプリセットメトリックの API を呼び出す方法を、メソッドと例を挙げて説明します。

前提条件

  • プリセットメトリックの API を呼び出すには、プロダクトとデバイスが作成済みであり、データバックアップが完了していることを確認してください。詳細な手順については、「プリセットメトリックの API」をご参照ください。

  • プロダクトデータ API を呼び出す、またはサービス API をカスタマイズするには、対応する API が確立されていることを確認してください。詳細な手順については、「プロダクトデータ API」および「サービス API のカスタマイズ」をご参照ください。

詳細については、「参照ドキュメント」をご参照ください。

SDK のインストール

  1. Node.js 開発環境をセットアップするには、Node.js 公式 Web サイトにアクセスし、記載されているインストール手順に従ってください。

  2. Alibaba Cloud OpenAPI SDK をインストールするには、以下のコマンドを実行します。

    npm install @alicloud/openapi-client
    npm install @alicloud/iot20180120

リクエストの開始

以下は、[dataservice Studio] のプリセットメトリック API からデバイスの履歴数統計を呼び出す方法の例です。必要な API を呼び出すには、パラメーターの説明に基づいてコードを必要に応じて変更してください。

重要

DataService Studio API を呼び出す際の 1 つの Alibaba Cloud アカウントあたりの 1 秒あたりの最大リクエスト数 (QPS) は 100 であることに注意してください。

const Config = require('@alicloud/openapi-client').Config;
const ListAnalyticsDataRequest = require('@alicloud/iot20180120').ListAnalyticsDataRequest;
const IotClient = require('@alicloud/iot20180120');
const ListAnalyticsDataRequestCondition = require('@alicloud/iot20180120/dist/client').ListAnalyticsDataRequestCondition;
// クライアントの作成
const config = new Config();
config.endpoint = "iot.cn-shanghai.aliyuncs.com";
config.accessKeyId = "LTAI4FyDFmKN************";
config.accessKeySecret = "WF3onkl8cq3cTyVW8n************";
config.regionId = "cn-shanghai";
async function main() {
    const client = new IotClient.default(config);
    // リクエストオブジェクトの作成
    const listAnalyticsDataRequest = new ListAnalyticsDataRequest();
    // API パス
    listAnalyticsDataRequest.apiPath = '/iot-cn-npk1v******/system/query/hist_dev_cnt_stat'
    // ページングパラメーター: ページ番号
    listAnalyticsDataRequest.pageNum = 1;
    // ページングパラメーター: ページサイズ
    listAnalyticsDataRequest.pageSize = 100;
    // API が配置されているインスタンス ID
    listAnalyticsDataRequest.iotInstanceId = 'iot-cn-npk1v******' 
    // API のビジネス関連のリクエストパラメーター。Condition の構成については、以下の関連説明を参照してください。
    const conditions = [];
    const condition = new ListAnalyticsDataRequestCondition();
    condition.operate = '=';
    condition.fieldName = '__instance_id__';
    condition.value = 'iot-public'
    conditions.push(condition)
    const condition1 = new ListAnalyticsDataRequestCondition();
    condition1.operate = '=';
    condition1.fieldName = 'entityId';
    condition1.value = 'all'
    conditions.push(condition1)
    const condition2 = new ListAnalyticsDataRequestCondition();
    condition2.operate = '=';
    condition2.fieldName = 'statDate';
    condition2.value = '20210221'
    conditions.push(condition2)
    listAnalyticsDataRequest.condition = conditions;
    try {
        const response = await client.listAnalyticsData(listAnalyticsDataRequest)
        console.log(response)
    } catch (ex) {
        console.log(ex);
    }
}
main();
  • システムリクエストパラメーター:

    名前

    タイプ

    必須

    値の例

    説明

    endpoint

    String

    はい

    iot.cn-shanghai.aliyuncs.com

    Alibaba Cloud サービス API サーバーのエンドポイント。リージョンが IoT Platform プロダクトのリージョンと一致していることを確認してください。

    この例では、リージョンは中国東部 2 (cn-shanghai) です。

    accessKeyId

    String

    はい

    LTAI4FyDFmKN************

    IoT Platform コンソールに移動し、アカウントのプロフィール画像にカーソルを合わせて、アクセスキー管理 をクリックして、アクセスキー ID とアクセスキーシークレットを取得します。

    説明

    RAM (Resource Access Management) ユーザーは、IoT Platform リソースを管理するために、AliyunIOTFullAccess ポリシーがアタッチされている必要があります。そうでない場合、接続は失敗します。権限付与の詳細については、「RAM ユーザーに IoT Platform へのアクセス権を付与する」をご参照ください。

    accessKeySecret

    String

    はい

    WF3onkl8cq3cTyVW8n************

    regionId

    String

    はい

    cn-shanghai

    リージョンコード。サポートされているリージョンのリストについては、「サポートされているリージョン」をご参照ください。

    apiPath

    String

    はい

    iot-cn-npk1u******

    API 操作パス。 DataService Studio で API リストを表示し、[表示] をクリックして、API の製品ページで API Patch 値にアクセスします。 詳細については、「参照ドキュメント」をご参照ください。

    pageNum

    Integer

    ページングが有効な場合に必須

    1

    ページネーションのページ番号。

    pageSize

    Integer

    ページングが有効な場合に必須

    100

    1 ページあたりのエントリ数。最大 100。

    iotInstanceId

    String

    はい

    iot-cn-npk1v******

    API がデプロイされているインスタンス ID。

  • ビジネス関連のリクエストパラメーター:

    名前

    タイプ

    必須

    説明

    関連コード

    fieldName

    String

    はい

    リクエストパラメーターのフィールドの名前。

     condition.fieldName = '__instance_id__';

    operate

    String

    はい

    リクエストパラメーターに使用される演算子。オプションは次のとおりです。

    • 完全に一致する場合は =

    • 範囲の場合は BETWEEN

    • 複数の値の場合は IN

    • 除外する場合は !=

     condition.operate = '=';

    value

    String

    いいえ

    リクエストパラメーターの特定の値。

    重要

    演算子が BETWEEN の場合を除き、このパラメーターは必須です。

     condition.value = 'iot-public';

    betweenStart

    String

    いいえ

    範囲パラメーターの開始値。

    重要

    演算子が BETWEEN の場合に必須です。

     condition.betweenStart = '0';

    betweenEnd

    String

    いいえ

    範囲パラメーターの終了値。

    重要

    演算子が BETWEEN の場合に必須です。

     condition.betweenEnd = '1000';

    各リクエストパラメーターは、condition に関連付けられています。API の製品ページで特定の数の conditions を設定できます。API リクエストパラメーターの表示方法の詳細については、「API の管理」をご参照ください。

    提供されているコード例では、API には __instance_id__、entityId、statDate の 3 つのリクエストパラメーターがあり、それぞれ conditioncondition1condition2 に対応しています。

実行結果

  • 成功:

    返されるパラメーターの詳細な説明は、対応する API の製品ページに記載されています。具体的な操作については、「参照ドキュメント」をご参照ください。

    以下の例は、API 呼び出しが成功し、2021 年 2 月 21 日から API 呼び出しの時刻までのパブリックインスタンスのデバイス数統計が返されたことを示しています。

    ListAnalyticsDataResponse {
      headers: {
        date: 'Mon, 15 Mar 2021 10:40:58 GMT',
        'content-type': 'application/json;charset=utf-8',
        'content-length': '425',
        connection: 'keep-alive',
        'access-control-allow-origin': '*',
        'access-control-allow-methods': 'POST, GET, OPTIONS',
        'access-control-allow-headers': 'X-Requested-With, X-Sequence, _aop_secret, _aop_signature',
        'access-control-max-age': '172800',
        'x-acs-request-id': 'F278FA13-11E6-42BC-9883-3566AC******'
      },
      body: ListAnalyticsDataResponseBody {
        requestId: 'F278FA13-11E6-42BC-9883-3566AC******',
        success: true,
        data: ListAnalyticsDataResponseBodyData {
          hasNext: false,
          resultJson: '[{"statDate":"20210221","actDevCnt":2942,"onlineDevCntCompare":0.00,"livelyDevCntCompare":8.99,"livelyDevCnt":1527,"onlineDevRate":23.08,"crtDevCnt":169025,"livelyDevRate":51.90,"crtDevCntCompare":0.08,"onlineDevCnt":679,"actDevRate":1.74,"actDevCntCompare":4.55}]',
          pageNum: 1,
          pageSize: 100
        }
      }
    }
  • 失敗:

    呼び出しが失敗した理由を理解するには、結果のエラーコードを調べます。

    以下の例は、無効なリクエストパラメーター __instance_idd__ が原因で API 呼び出しが失敗したことを示しています。__instance_id__ に修正して、もう一度呼び出してみてください。