シナリオ: HTTPSまたはMQTTSを使用した非構造化データの送信

このシナリオでは、Internet of Thingsプラットフォームを使用してデバイスを接続し、HTTPSまたはMQTTSを使用して非構造化テレメトリ・データをクラウドに送信する方法と、APEXまたはデータベース内で直接データを表示する方法について説明します。

デジタル・ツイン・モデルなしでデジタル・ツイン・インスタンスを作成し、HTTPSまたはMQTTSを介して非構造化テレメトリを送信してから、メッセージがRAWデータとして使用可能であることを確認します。

ステップ1: IoTドメイン・グループの作成

既存のIoTドメイン・グループを使用するか、このシナリオのコンパートメントに作成します。

ステップ2: IoTドメインの作成

同じリージョンにIoTドメインを作成し、それをドメイン・グループに関連付けます。IoTドメインOCIDおよびデバイス・ホストをレスポンスから保存します。

  • IoTドメインの作成のコンソールの手順に従います。

  • oci iot domain createコマンドを使用します:

    oci iot domain create \
      --compartment-id <compartment-OCID> \
      --iot-domain-group-id <iot-domain-group-OCID> \
      --display-name <iot-domain-name>
  • CreateIotDomain操作を実行し、リクエストをIoTドメイン・グループに関連付けます。

ステップ3: デジタル・ツイン・インスタンスの作成

モデルまたはアダプタなしで直接接続されたデジタル・ツイン・インスタンスを作成します。インスタンスがデバイス・データを受信するため、認証IDを設定します。テストの場合は、ボールト・シークレットを作成および使用します。本番環境では、mTLS証明書を使用します。

インスタンスOCIDまたは外部キーを作成後に検索するには、デジタル・ツインのインスタンス詳細の取得を参照してください。

  • 「デジタル・ツイン・インスタンスの作成」のコンソールの手順に従います。「直接接続」を選択し、アダプタを選択せず、認証OCIDを選択または貼り付けます。

  • oci iot digital-twin-instance createコマンドを使用します:

    oci iot digital-twin-instance create \
      --iot-domain-id <iot-domain-OCID> \
      --display-name <display-name> \
      --auth-id <secret-or-certificate-OCID>

    返されたインスタンスのOCIDおよび外部キーを保存します。

  • CreateDigitalTwinInstance操作を実行します。IoTドメインおよび認証IDを設定し、デジタル・ツイン・アダプタIDを省略します。

ステップ4: データの送信

インスタンスの外部キーをデバイスのユーザー名として使用します。ボールト・シークレットを使用してテストする場合は、そのプレーン・テキストの内容をデバイス・パスワードとして使用します。

インスタンスOCIDまたは外部キーを作成後に検索するには、デジタル・ツインのインスタンス詳細の取得を参照してください。デバイス・ホスト・エンドポイントを検索するには、IoTドメインの詳細の取得を参照してください。

  • IoTドメインのデバイス・ホストのトピックにプレーン・テキスト・メッセージを投稿します:

    curl -i -X POST \
      -u "<digital-twin-instance-external-key>:<secret-contents>" \
      -H "Content-Type: text/plain" \
      -d "sample data 1" \
      "https://<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic"
  • MQTTXまたは別のMQTTクライアントを使用します。

    1. ポート8883のMQTTSを介して<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.comに接続します。
    2. デジタル・ツイン・インスタンスの外部キーをユーザー名として使用し、デバイス資格証明をパスワードとして使用します。
    3. SSL/TLSを有効にし、CA署名付きサーバー証明書を使用します。
    4. コンテンツ・タイプtext/plainおよびQoS 1でsample data 1/sampletopicに公開します。

ステップ5: RAWデータの表示

RAWデータを表示する場所を選択します。各オプションには、独自のデータ・アクセス構成が必要です。

  • Internet of ThingsデータAPIをコールする前に、ORDSでデータへのアクセスを構成し、データ・ホストのOAuthアクセス・トークンを取得します。

    Internet of ThingsデータAPIを使用して、rawデータを取得します。この例では、IoTドメイン・グループ・データ・ホストからのRAWテレメトリをリストし、デジタル・ツイン・インスタンスOCIDでフィルタします。

    curl \
      -H "Authorization: Bearer <token>" \
      -X GET \
      "https://<domain-group-short-id>.data.iot.<region>.oci.oraclecloud.com/ords/<domain-short-id>/20250531/rawData?q={\"$and\":[{\"digital_twin_instance_id\":\"<digital-twin-instance-OCID>\"}]}"
  • APEXを使用する前に、シナリオ: APEXへのIoTデータの接続を完了します。

    1. IoTのAPEX URLに移動します:

      https://<domain-group-data-host>/ords/apex/

      デバイス・ホストのドメイン短縮IDを使用してサインインします。

      device-host:<domain-short-id>.device.iot.<region>.oci.oraclecloud.com

      • ワークスペース: <domain-short-id-from-device-host>__WKSP
      • ユーザー名: <domain-short-id-from-device-host>__WKSP
      • パスワード: IoTドメインのAPEXデータ・アクセスの構成時に設定した初期APEXパスワードを入力します。
      ノート

      __WKSP__IOTの2つのアンダースコアに注意してください。
    2. IoTデータを問い合せるには、<domain-short-id-from-device-host>__IOTスキーマを選択します。「SQLワークショップ」を選択し、「オブジェクト・ブラウザ」を選択します。

      SQLワークショップURL:

      https://<domain-group-data-host>/ords/apex/sql-workshop
    3. 正しいスキーマを選択したことを確認し、次のSQL文を実行します。
      select * from RAW_DATA

      これで、接続されたデバイスのデータベース・スキーマ、ビューおよびRAWデータを表示できます。

    大きなスクリーンショットを表示するには、画像を右クリックして、新しいブラウザウィンドウで開きます。

    SQLワークショップのAPEX IoTスキーマおよびRAWデータ。

  • データベースでIoTデータを直接問い合せる前に、シナリオ: IoTデータベースへの直接接続を完了してください。

    <domain-short-id-from-device-host>をデバイス・ホストのドメイン短縮IDに置き換えます。<digital-twin-instance-OCID>を、RAWデータを表示するデジタル・ツイン・インスタンスのOCIDに置き換えます。

    IoTドメインの<domain-short-id-from-device-host>を取得するには、操作するIoTドメインの詳細を取得します。

    ノート

    スキーマ名には、__IOTという2つのアンダースコアが含まれています。
    select *
    from <domain-short-id-from-device-host>__IOT.RAW_DATA
    where digital_twin_instance_id = '<digital-twin-instance-OCID>';