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

IoT Platform:ApsaraDB RDS へのデータ転送

最終更新日:Mar 27, 2025

ルールエンジンのデータ転送機能を使用して、処理済みデータを ApsaraDB RDS インスタンスに転送して保存できます。このトピックでは、データ転送プロセスについて説明します。この例では、TSL (Thing Specification Language)通信トピックをソース トピックとして使用します。

前提条件

  • ApsaraDB RDS へのデータ転送をサポートするリージョンに、ApsaraDB RDS にデータを転送できる IoT Platform インスタンスが作成されていること。 ApsaraDB RDS へのデータ転送をサポートするリージョンの詳細については、「リージョン」をご参照ください。

  • DataSource という名前のデータソースが作成され、TSL 通信トピックがデータソースに追加されていること。詳細については、「データソースを作成する」をご参照ください。

  • IoT Platform インスタンスが存在するリージョンに ApsaraDB RDS インスタンスが作成されていること。インスタンスのデータベースエンジンは MySQL または Microsoft SQL Server で、インスタンスのネットワークタイプは VPC である必要があります。データベースとテーブルが作成されていること。 ApsaraDB RDS の使用方法の詳細については、ApsaraDB RDS ドキュメントをご参照ください。

背景情報

データ転送先を構成すると、以下の構成が自動的に完了します。その後、IoT Platform のルールエンジンを使用して、デバイスデータを ApsaraDB RDS インスタンスに転送できます。
  • IoT Platform は、ApsaraDB RDS インスタンスが存在する vSwitch の 2 つの IP アドレスを使用します。 vSwitch の IPv4 CIDR ブロックは、ApsaraDB RDS インスタンスのホワイトリストに追加されます。
  • ApsaraDB RDS インスタンスが存在する VPC (仮想プライベートクラウド)に、マネージド セキュリティグループが作成されます。セキュリティグループのデフォルト名は sg-nsm- で始まります。

制限事項

  • データ転送は、同じリージョンにある IoT Platform インスタンスと ApsaraDB RDS インスタンス間でサポートされています。たとえば、中国(上海)リージョンにある IoT Platform インスタンスのデータは、中国(上海)リージョンにある ApsaraDB RDS テーブルにのみ転送できます。
  • VPC に存在する ApsaraDB RDS インスタンスにのみデータを転送できます。
  • MySQL および SQL Server インスタンスにデータを転送できます。
  • 標準データベースと権限データベース間でデータ転送がサポートされています。
  • JSON 形式のデータのみ転送できます。

使用上の注意

データ転送機能の新バージョンまたは旧バージョンを使用して、データを ApsaraDB RDS に転送できます。旧バージョンのデータ転送機能の使用方法の例の詳細については、「ApsaraDB RDS へのデータ転送」をご参照ください。

データ転送先を作成する

  1. IoT Platform コンソール にログインします。
  2. [概要] ページで、[すべての環境] をクリックします。 [すべての環境] タブで、管理するインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。

  3. 左側のナビゲーションウィンドウで、[メッセージ転送] > [データ転送] を選択します。
  4. [データ転送] ページの右上隅にある [新しいバージョンに移動] をクリックして、新しいバージョンに移動します。

    説明

    この手順を実行した場合、[メッセージ転送] > [データ転送] を選択すると、新しいバージョンの [データ転送] ページが表示されます。

  5. [データ転送先] タブをクリックします。このタブで、[データ転送先を作成] をクリックします。
  6. [データ転送先を作成] ダイアログボックスで、データ転送先の名前を入力します。例:DataPurpose。その他のパラメーターを構成し、[OK] をクリックします。次の表にパラメーターを示します。

    パラメーター

    説明

    操作

    [apsaradb RDS にデータを保存] を選択します。

    リージョン

    IoT Platform インスタンスが存在するリージョンを選択します。

    RDS インスタンス

    データを転送する ApsaraDB RDS インスタンスを選択します。

    データベース

    データベース名を入力します。
    説明 権限データベースを使用する場合は、データベース名を手動で指定する必要があります。

    アカウント

    ApsaraDB RDS インスタンスのアカウントを入力します。このアカウントには、データベースに対する読み取りおよび書き込み権限が必要です。そうでない場合、ルールエンジンは ApsaraDB RDS インスタンスにデータを書き込むことができません。
    説明 ルールエンジンがアカウントを取得した後、ルールエンジンは指定されたルールに一致するデータのみをデータベースに書き込みます。追加の操作は実行されません。

    パスワード

    ApsaraDB RDS インスタンスにログインするために使用するパスワードを入力します。

    テーブル名

    データベースに作成されたテーブルの名前を入力します。ルールエンジンはテーブルにデータを書き込みます。

    ロール

    IoT Platform に ApsaraDB RDS へのデータ書き込みを承認します。

    RAM (Resource Access Management)ロールがない場合は、[RAM ロールの作成] をクリックして RAM コンソールに移動し、RAM ロールを作成して、そのロールに権限を付与します。詳細については、「RAM ロールの作成」をご参照ください。

パーサーを構成して起動する

  1. DataParser という名前のパーサーを作成します。詳細については、「パーサーを作成する」をご参照ください。

  2. [パーサーの詳細] ページで、パーサーを作成済みデータソースに関連付けます。

    1. ウィザードの [データソース] ステップで、[データソースの関連付け] をクリックします。

    2. 表示されるダイアログボックスで、データソース[データソース] ドロップダウンリストから [OK] を選択し、 をクリックします。

  3. [パーサーの詳細] ページで、パーサーを作成済みデータ転送先に関連付けます。

    1. ウィザードの [データ転送先] をクリックします。 [データ転送先] セクションで、[データ転送先の関連付け] をクリックします。

    2. 表示されるダイアログボックスで、データ目的[データ転送先] ドロップダウンリストから [OK] を選択し、 をクリックします。

    3. [データ転送先] セクションで、[データ転送先 ID] を表示して保存します。この例では、ID は 1000 です。

      パーサースクリプトを記述する際は、[データ転送先 ID] を使用する必要があります。

  4. [パーサーの詳細] ページで、[パーサー] をクリックします。
  5. コードエディタにスクリプトを入力します。スクリプトの変更方法の詳細については、「スクリプト構文」をご参照ください。

    関数パラメーターの詳細については、「関数」をご参照ください。

    • データの書き込み

      // payload() 関数を呼び出して、デバイスから送信されたデータを取得し、JSON 形式に変換します。
      var data = payload("json"); 
      // 送信された温度と湿度の値をフィルタリングします。
      var h = data.items.Humidity.value;
      var t = data.items.Temperature.value;
      // ApsaraDB RDS テーブルには、id (自動インクリメント プライマリキー)、deviceName、temperature、humidity、time の各列が含まれています。 writeRds() メソッドを呼び出して、column:value 形式で列に値を書き込むことができます。
      // 温度値が 38 より大きい場合にトリガーされるルールを構成します。
      if (t > 38) { 
          writeRds(1000, {"deviceName":deviceName(), "temperature":t, "time":timestamp(), "humidity":h});  
      }
    • データの更新

      // payload() 関数を呼び出して、デバイスから送信されたデータを取得し、JSON 形式に変換します。
      var data = payload("json"); 
      // 送信された温度と湿度の値をフィルタリングします。
      var h = data.items.Humidity.value;
      var t = data.items.Temperature.value;
      // ApsaraDB RDS テーブルには、id (自動インクリメント プライマリキー)、deviceName、temperature、humidity、time の各列が含まれています。 updateRds() メソッドを呼び出して、column:value 形式で対応する列の値を更新できます。
      // deviceName を条件付き列として指定して、データを更新します。
      var condition = "deviceName = '" + deviceName() +"'";
      // 指定されたデバイスの温度値と湿度値を含むエントリのデータを更新します。条件に一致するデータが複数行ある場合、システムは結果の最初の行からデータを自動的に更新します。 limit パラメーターの値 1 は、システムが最初の行からデータを更新することを示します。
      updateRds(1000, {"temperature":t, "time":timestamp(), "humidity":h}, condition, 1);
  6. [デバッグ] をクリックします。表示されるダイアログボックスで、プロダクトとデバイスを選択し、トピックを指定して、ペイロードデータを入力し、スクリプトが想定どおりに実行されるかどうかを確認します。

    次の図は、設定例を示しています。调试示例

    updateRds() メソッドから次の情報が返された場合、スクリプトは想定どおりに実行されています。

    调试结果

  7. [公開] をクリックします。

  8. パーサー[データ転送] ページの データパーサー[開始] タブに移動します。 パーサーを見つけ、[アクション] 列の をクリックしてパーサーを起動します。

  9. ApsaraDB RDS コンソール にログインします。 [データセキュリティ] ページで、ホワイトリストを作成するか、ホワイトリストを表示します。パラメーターを設定すると、ルールエンジンは次の IP アドレスを ApsaraDB RDS ホワイトリストに追加します。その後、ルールエンジンは ApsaraDB RDS と通信できます。次の IP アドレスのいずれかがホワイトリストに表示されない場合は、手動で IP アドレスを追加する必要があります。詳細については、「ApsaraDB RDS とは」をご参照ください。
    • 中国(上海): 100.104.53.192/26, 100.104.148.64/26, 100.104.6.192/26, 100.104.143.128/26, 100.104.76.0/24, 100.104.73.128/26, 100.104.200.64/26, 100.104.40.64/26, 100.104.3.0/26, 100.104.29.128/26, 100.104.121.0/26, and 100.104.84.64/26
    • シンガポール(シンガポール): 100.104.106.0/24
    • 米国(シリコンバレー): 100.104.8.0/24
    • 米国(バージニア北部): 100.104.133.64/26
    • ドイツ(フランクフルト): 100.104.160.192/26
    • 日本(東京): 100.104.160.192/26
    ApsaraDB RDS databases