単一プロダクト配下にあるすべて、または特定のデバイスのメッセージ量が 1,000 QPS 未満の場合、データ転送機能を使用して、IoT Platform から Simple Message Queue (formerly MNS) (SMQ) にデータを送信できます。ご利用のサーバーが SMQ Topic からメッセージをサブスクライブすることで、デバイスとサーバー間のパフォーマンス専有型でクローズドループの伝送が可能になります。 このトピックでは、Thing Specification Language (TSL) モデルのデータ送信 Topic を例に、メッセージデータを転送するプロセスについて説明します。
仕組み
データ転送機能とは、同一プロダクト配下にある、すべてまたは特定のデバイスの指定トピックからのメッセージを、MNS キューがサブスクライブしている MNS トピックに、リアルタイムで転送する機能です。
上の図の説明:
-
データソース:サポートされている Topic の種類の詳細については、「データ形式 (非ゲートウェイのプロダクトとデバイス向け)」、「カスタム Topic (MQTT クラウドゲートウェイ向け)」、「メッセージ転送 Topic (GB/T 32960 クラウドゲートウェイ向け)」、「メッセージ転送 Topic (JT/T 808 クラウドゲートウェイ向け)」をご参照ください。
-
データ送信先: デバイスデータを受信するために作成する MNS トピックのことです。このトピックからのすべてのメッセージは、これをサブスクライブする MNS キューにプッシュされます。
-
パーサースクリプト: データ転送関数
writeMns(destinationId, payload)を使用して、トピックデータを MNS トピックに転送するように設定されたスクリプトです。関数の詳細については、「関数リスト」をご参照ください。
制限事項
-
MNS へのデータ転送は、特定のリージョンの IoT Platform インスタンスでのみサポートされています。詳細については、「リージョン別の利用可能な機能」をご参照ください。
-
データ転送機能の新バージョンと旧バージョンはどちらも、MNS へのデータ転送に対応しています。旧バージョンの使用方法の例については、「メッセージサービスにデータを転送する (旧バージョン)」をご参照ください。
-
IoT Platform インスタンスからのデバイスメッセージの転送に関する制限事項の詳細については、「制限事項」をご参照ください。
前提条件
-
デバイス Topic のデータソースを追加済みであること。たとえば、DataSource という名前のデータソースを作成し、特定のデバイスの TSL モデルデータ送信 Topic を追加済みであること。詳細については、「データソースの追加」をご参照ください。
-
SMQ Topic と、HTTP またはキュープッシュタイプのサブスクリプションを作成済みであること。SMQ の使用方法の詳細については、「Simple Message Queue (MNS) ドキュメント」をご参照ください。
重要エンタープライズインスタンスの場合、MNS トピックはインスタンスと同じリージョンにある必要があります。
-
ビジネスサーバーは、MNS サーバー側 SDK を使用して MNS トピックをサブスクライブする MNS キューをリッスンし、クラウドアプリケーションが IoT Platform からデバイスメッセージを受信できるようにします。
Simple Message Queue (formerly MNS) (SMQ) サーバー側 SDK の呼び出し方法の詳細については、「SDK のダウンロードと使用」にある対応する SDK の「Topic ユーザーガイド」をご参照ください。
背景情報
MNS を使用してデバイスとサーバー間でデータを転送するプロセスについては、「メッセージサービス (MNS) にデータを転送する」をご参照ください。
IoT Platform は、サーバー側サブスクリプションとデータ転送サービスの両方を提供し、デバイスメッセージを SMQ クライアントに転送します。サーバー側サブスクリプションとは異なり、データ転送では、転送前にデバイス Topic を指定してデータを処理できます。ソリューションを比較し、ニーズに最適なものを見つけるには、「データ転送ソリューションの比較」をご参照ください。サーバー側サブスクリプションの設定方法については、「MNS でサーバー側サブスクリプションを使用する」をご参照ください。
送信先の作成
-
IoT Platform コンソールにログインします。
[概要] ページで、管理するインスタンスを見つけ、インスタンス ID またはインスタンス名をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
[データ転送] ページで、右上隅の [新しいバージョンへ移動] をクリックします。
説明この操作を以前に実行したことがある場合は、自動的に [データ転送] ページの新バージョンにリダイレクトされます。
- [送信先] タブをクリックします。このタブで、[送信先の作成] をクリックします。
-
[送信先の作成] ダイアログボックスで、送信先の名前 (例:DataPurpose) を入力します。次の表の説明に従ってパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
操作を選択
[Message Service (MNS) にデータを転送] を選択します。
リージョン
Message Service が有効化されているリージョンを選択します。
Topic
データ受信に使用する SMQ Topic を選択します。
SMQ は、受信したメッセージをこの Topic 配下の HTTP およびキューサブスクリプションに転送します。現在、IoT Platform が SMQ Topic にプッシュするメッセージは、HTTP またはキューメソッドでのみサブスクライブできます。
[Topic の作成] をクリックして Simple Message Queue (formerly MNS) コンソールに移動し、SMQ Topic とサブスクリプションを作成できます。詳細については、「Simple Message Queue (SMQ) ドキュメント」をご参照ください。
ロール
IoT Platform に Simple Message Queue (formerly MNS) へのデータ書き込み権限を付与します。
RAM ロールが存在しない場合は、[RAM ロールの作成] をクリックして、RAM コンソールで RAM ロールと権限付与ポリシーを作成します。RAM ロールの作成
パーサの設定と開始
DataParser という名前のパーサを作成します。詳細については、「ステップ 1:パーサの作成」をご参照ください。
[パーサ詳細] ページで、パーサを作成済みのデータソースに関連付けます。
ウィザードの [データソース] ステップで、[データソースの関連付け] をクリックします。
表示されたダイアログボックスで、[データソース] ドロップダウンリストから DataSource を選択し、[OK] をクリックします。
[パーサ詳細] ページで、パーサを作成済みの送信先に関連付けます。
ウィザードで [送信先] をクリックします。[送信先] セクションで、[送信先の関連付け] をクリックします。
表示されるダイアログボックスで、[データ宛先] ドロップダウンリストから DataPurpose を選択し、[OK] をクリックします。
[送信先] セクションで、[送信先 ID] を表示して保存します。この例では、ID は 1000 です。
パーサスクリプトを作成する際には、[送信先 ID] を使用する必要があります。
- [パーサ詳細] ページで、[パーサ] をクリックします。
-
スクリプトエディタに、パーサスクリプトを入力します。
パーサスクリプトの構文は JavaScript に似ています。スクリプトの編集方法の詳細については、「スクリプト構文」をご参照ください。
関数のパラメーターの詳細については、「関数リスト」をご参照ください。
// payload() 関数を使用して、デバイスから報告されたメッセージ本文を取得し、JSON 形式に変換します。 var data = payload("json"); // TSL モデルデータを直接転送します。 writeMns(1000, data); -
[テスト] をクリックします。画面の指示に従って、プロダクトとデバイスを選択し、Topic とペイロードデータを入力して、スクリプトが実行可能であることを確認します。
次の図は、パラメーターの例です:

次の出力は、スクリプトが正常に実行されたことを示しています。

- [公開] をクリックします。
[データ転送] ページの [パーサ] タブに移動します。DataParser パーサを見つけ、[操作] 列の [開始] をクリックしてパーサを開始します。
次のステップ
-
[IoT プラットフォームログ] タブで、[デバイスからクラウドへのメッセージ] と [データ転送] の運用ログを表示できます。このタブに移動するには、IoT Platform コンソールに移動し、ご利用のインスタンスを見つけて、 を選択します。詳細については、「IoT プラットフォームログ」をご参照ください。
-
Simple Message Queue (旧称:MNS) コンソールにログインして、SMQ Topic からキューにプッシュされたメッセージを表示できます。詳細については、「メッセージの受信」をご参照ください。
参考資料
-
デバイスを IoT Platform に接続してデータを報告する方法については、「デバイス接続ガイド」をご参照ください。
-
インスタンス詳細ページで利用可能なメッセージ転送の TPS リソースを確認し、デバイスメッセージを Simple Message Queue (formerly MNS) に転送して消費できることを確認してください。詳細については、「インスタンス情報と運用データの表示」をご参照ください。リソースが不足している場合は、インスタンスをスペックアップしてください。詳細については、「インスタンスのスペックアップ」をご参照ください。
-
Simple Message Queue (formerly MNS) Topic のメトリックを表示して、受信したメッセージ数を確認できます。詳細については、「Topic メトリックの表示」をご参照ください。
-
ログ管理機能を使用して、メッセージ Topic の操作ログを Simple Log Service にプッシュします。メッセージの消費中に例外が発生した場合は、MessageId でメッセージトレースをクエリして問題を診断します。詳細については、「Simple Log Service へのログのプッシュ」および「Simple Log Service でのログの表示」をご参照ください。