クイック・スタート: デジタル・ツインの作成およびデータの送信
このシナリオでは、デジタル・ツイン・インスタンスを作成する方法と、Basic認証を使用してサンプル・データを送信して構成をテストする方法を示します。
前提条件
基本認証を使用する場合は、「ステップ3: デジタル・ツイン・インスタンスの作成」のコマンドを使用するときに、シークレットを作成して、次のポリシーが必要になります。
Allow any-user to {SECRET_BUNDLE_READ, SECRET_READ} in compartment <compartment-name> where ALL {request.principal.type = 'iotdomain', target.vault.id = '<vault-OCID>'}ステップ1: IoTドメイン・グループの作成
作業する既存のIoTドメイン・グループまたはIoTドメインがある場合は、このステップをスキップし、それらのOCIDsを使用して関連するデジタル・ツイン・インスタンスを作成します。または、次のステップを実行して、IoTドメイン・グループおよびIoTドメインを作成します。オプションの完全なリストは、「IoTドメイン・グループの作成」を参照してください。
特定のコンパートメントにIoTドメイン・グループを作成するには、oci iot domain-group createコマンドと必要な --compartment-idパラメータを使用します。<compartment-OCID>値をコンパートメントOCIDに置き換えます:oci iot domain-group create --compartment-id <compartment-OCID>タイプ・オプション:--typeを指定しない場合、デフォルトのドメイン・グループ・タイプはlightweightです。軽量ドメイン・グループを開発およびテストする場合、コストが低く、使用するリソースが少なくなります。本番ドメイン・グループを作成する場合は、標準オプションを使用します。- 本番ドメイン・グループの場合、
--typeパラメータをstandard値とともに使用して、高可用性および自動フェイルオーバーでスケーリングする標準ドメイン・グループを作成します。
CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。
CreateIotDomainGroup操作を実行して、コンパートメントにIoTドメイン・グループを作成します。
ステップ2: IoTドメインの作成
CreateIotDomain操作を実行して、IoTドメインを作成します。
ステップ3: デジタル・ツイン・インスタンスの作成
この例では、デジタル・ツイン・インスタンスはデジタル・ツイン・モデルまたはデジタル・ツイン・アダプタに関連付けられていません。この方法は、デジタル・ツイン設定をテストする場合、または非構造化データを送信するデバイスに接続するようにデジタル・ツイン・インスタンスを設定する場合に使用できます。オプションの完全なリストは、デジタル・ツイン・インスタンスの作成を参照してください。
- 外部キー・オプション: 外部キーは、ステップ5でデータを送信するためにデバイスに接続するときのデバイス・ユーザー名です。
--external-keyパラメータを含めない場合、外部キーがレスポンスで生成されます。外部キーを指定する場合は、外部キー値とともに引用符を使用しないことをお薦めします。 - 認証オプション: デジタル・ツイン・インスタンスを作成する場合、認証はオプションであり、デバイスとの間でデータを送信する場合にのみ必要です。
--auth-idパラメータを使用して、デジタル・ツイン・インスタンスに認証を追加します。
- デジタル・ツイン・インスタンスを作成するには、oci iot digital-twin-instance createコマンドとこれらのパラメータを使用します。
<iot-domain-OCID>を、このIoTデジタル・ツイン・インスタンスに関連付けるIoTドメインに置き換えます。<secret-or-certificate-OCID>をボールト・シークレットOCIDに置き換えます:oci iot digital-twin-instance create --auth-id <secret-OCID> --iot-domain-id <iot-domain-OCID>
CreateDigitalTwinInstance操作を実行して、デジタル・ツイン・インスタンスを作成します。
ステップ4: IoTドメインの詳細の取得
使用するIoTドメインのデバイス・ホスト・エンドポイントがある場合は、このステップをスキップします。
IoTドメインの詳細には、ドメイン短縮IDを含むデバイス・ホストが含まれます。詳細は、IoTドメインの詳細の取得を参照してください。
oci iot domain getコマンドと必要なパラメータを使用して、IoTドメインの詳細(ドメイン短縮IDを持つデバイス・ホストを含む)を取得します:
oci iot domain get --iot-domain-id <iot-domain-OCID>CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。
GetIotDomain操作を実行して、ドメインの詳細を取得します。
ステップ5: データの送信
- デバイス・ユーザー名: デジタル・ツイン・インスタンスの
external keyをデバイス・ユーザー名として使用します。 - デバイス・パスワード: デジタル・ツイン・インスタンスの認証IDに関連付けられます。デジタル・ツイン・インスタンスが認証にボールト・シークレットOCIDを使用する場合は、プレーン・テキスト・シークレット・コンテンツをデバイス・パスワードとして使用します。シークレットの作成およびシークレットのコンテンツの取得を参照してください。ボールト・シークレットをデバイス・パスワードとして使用することは、テストでのみ推奨され、本番では推奨されません。
Curlの使用
POSIXスタイルのシェル: Windowsでbash、zsh、macOS Terminal、LinuxまたはGit Bashを使用する場合は、このcurlコマンドを使用します。curl -u '<digital-twin-instance-external-key>:<device-password>' \ -H 'Content-Type: text/plain' \ -d 'sample data 1' \ 'https://<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic'Windows Powershell: この例では、この
curlコマンドを使用して、-Gを使用してGETリクエストを作成し、--data-urlencodeで指定されたデータを問合せパラメータとしてURLに追加します。または、環境変数を使用できます。curl.exe -u "<digital-twin-instance-external-key>:<device-password>" ` -H "Content-Type: text/plain" ` -d "sample data 1" ` "https://<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic"「ステップ3: デジタル・ツイン・インスタンスの作成」を完了したときに、外部キー・パラメータ値を引用符付きで定義した場合は、データの送信時に引用符を含める必要があります:
"external-key"。見積りのベストプラクティスについては、Troubleshootingを参照してください。- MQTTクライアントを使用します。この例では、次の設定でMQTTXを使用します。
- MQTTXをダウンロードして設定するには、次の手順に従います。MQTTXスタート・ガイドを参照してください。MQTTXを開きます。
- 新しい接続を作成するには「+新規接続」を選択します。
- 「外部キー」の
<unique-id>値を「ユーザー名」として入力します。外部キーは、前の「ステップ3: デジタル・ツイン・インスタンスの作成」のoci iot digital-twin-instance createレスポンスにあります。"external-key": "<unique-id>" - デバイスのパスワードを入力します。テストでボールト・シークレットを使用する場合、これはプレーン・テキストのシークレット・コンテンツである必要があります。または、セキュアな本番環境の場合は、mTLS証明書を使用します。
- ホストを入力します。ホスト・ドロップダウン・リストから
mqtts://プロトコルを選択し、IoTドメインのデバイス・ホスト<domain-short-id>.device.iot.<region>.oci.oraclecloud.comを入力します。 - ポート(たとえば、
8883)を入力します。ノート
現在、MQTT Secure (MQTTS)はポート8883を使用してのみサポートされています。 - トグルのSSL/TLSをオンにします。
- 「SSLセキュア」トグルをオンにします。
- 「証明書」で、「CA署名サーバー証明書」オプションを選択します。
- MQTTX接続を構成する場合は、
clean sessionを使用して接続し、Last-Will-Retainオプションをfalseに設定して、デバイスが短時間切断された場合にクライアント・サブスクリプションを保持できるようにしてください。 - Last Will QoSを 1に設定します。
- 「接続」を選択します。
これらのステップが終了すると、IoTプラットフォームにデバイスからデータを受信できるデジタル・ツイン・インスタンスがあります。
次に行うこと
- IoTサンプル・ファイルを確認して、テスト環境と本番環境を設定します。
- APEXの構成: APEXでIoTドメイン・データを表示し、サンプルAPEX IoTエクスプローラ・アプリケーションをインストールしてIoTデバイスおよびメッセージを視覚的にモニターします。
- リソースを保持する予定がない場合は、IoTドメイン・グループに関連付けられたIoTドメインを削除し、IoTドメイン・グループを削除します。