第13章 MQTT への接続
MQTT (MQ Telemetry Transport) は、ライトウェイトなマシンツーマシンの IoT (Internet of Things、モノのインターネット) 接続プロトコルです。インテグレーションでは、MQTT ブローカーからメッセージを取得したり、MQTT へメッセージをパブリッシュすることができます。これには、対象の MQTT ブローカーへのコネクションを作成し、そのコネクションをインテグレーションフローに追加します。詳細は以下を参照してください。
13.1. MQTT ブローカーへのコネクションの作成
インテグレーションで、MQTT ブローカーからメッセージと取得したり、MQTT ブローカーにメッセージをパブリッシュするには、対象の MQTT ブローカーへのコネクションを作成し、そのコネクションをインテグレーションに追加します。
前提条件
接続する MQTT ブローカーの URL を知っている必要があります。
手順
- Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
- 右上の Create Connection をクリックしてコネクターを表示します。
- MQTT Message Broker コネクターをクリックします。
コネクションを設定します。
- MQTT broker URL フィールドにデータの送信先または取得元となる MQTT ブローカーの場所を入力します。必須のフィールドはこのフィールドのみです。
- 任意で、このブローカーにアクセスするために使用するクレデンシャルを持つ MQTT アカウントのユーザー名を User Name フィールドに入力します。
- ユーザー名を指定した場合、Password フィールドにそのアカウントに関連するパスワードを指定します。
- 任意で、Client ID フィールドに、メッセージを見逃さずにコネクションを開閉できるようにする ID を入力します。コネクションには、トピックのサブスクライブまたはパブリッシュが必要です。
- Validate をクリックします。Fuse Online は即座にコネクションを検証しようとし、検証の成功または失敗を示すメッセージを表示します。検証に失敗した場合は、入力パラメーターを訂正し、再度検証を行います。
- 検証に成功した場合は Next をクリックします。
-
Connection Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、
MQTT West
を入力します。 - Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。
- 右上にある Create をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして MQTT West が表示されます。
13.2. MQTT ブローカーからメッセージを取得してインテグレーションの実行をトリガー
MQTT ブローカーからのメッセージの受信により、インテグレーションの実行をトリガーするには、MQTT コネクションを最初のコネクションとして追加します。インテグレーションの実行中、MQTT コネクションは指定した MQTT キューまたはトピックでメッセージを継続的に監視します。コネクションがメッセージを見つけると、そのメッセージをインテグレーションの次のステップに渡します。MQTT コネクションは一度に 1 つのメッセージを処理します。
前提条件
MQTT コネクションが作成されている必要があります。
手順
- Fuse Online パネルの左側にある Integrations をクリックします。
- Create Integration をクリックします。
- Choose a Start Connection ページで、インテグレーションを開始するために使用する MQTT コネクションをクリックします。
- Choose an Action ページで、Subscribe アクションをクリックし、指定したキューまたはトピックからメッセージを受信します。
- MQTT queue/topic name フィールドに、データを受信するためにサブスクライブするキューまたはトピックの名前を入力します。
- Next をクリックして、アクションの出力タイプを指定します。
データタイプの認識が必要がない場合は、Select Type フィールドで Type specification not required を受け入れ、下部にある Done をクリックします。残りの手順を行う必要はありません。
その他の場合は、以下の 1 つをスキーマタイプとして選択します。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
application/schema+json
です。 -
JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは
application/json
です。 -
XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は
.xsd
です。 -
XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は
.xml
です。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
-
Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが
application/schema+json
の JSON スキーマファイルの内容を貼り付けます。 Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、データ型名として
Vendor
を指定できます。このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーション仮想化パネルとデータマッパーにタイプ名が表示されます。
- Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
- Done をクリックします。
結果
インテグレーションフローの最初にコネクションが表示されます。
13.3. MQTT ブローカーへのメッセージのパブリッシュ
インテグレーションでは、フローの途中で MQTT ブローカーにメッセージをパブリッシュしたり、シンプルなインテグレーションを終了するために MQTT ブローカーにメッセージをパブリッシュすることができます。これには、MQTT コネクションをフローの途中に追加するか、シンプルなインテグレーションの最後のコネクションとして追加します。
前提条件
- MQTT コネクションが作成されている必要があります。
- フローを作成または編集することになります。Fuse Online はステップの選択を要求します。または、Fuse Online で最後のコネクションを選択するよう要求されます。
手順
- メッセージのパブリッシュに使用する MQTT コネクションをクリックします。
- Choose an Action ページで Publish をクリックします。
- MQTT queue/topic name フィールドに、メッセージをパブリッシュするキューまたはトピックの名前を指定します。
- Next をクリックしてアクションの入力タイプを指定します。
データタイプの認識が必要がない場合は、Select Type フィールドで Type specification not required を受け入れ、下部にある Done をクリックします。残りの手順を行う必要はありません。
その他の場合は、以下の 1 つをスキーマタイプとして選択します。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
application/schema+json
です。 -
JSON instance は JSON データが含まれるドキュメントです。ドキュメントのメディアタイプは
application/json
です。 -
XML schema は XML データの構造を記述するドキュメントです。このドキュメントのファイル拡張子は
.xsd
です。 -
XML instance は XML データが含まれるドキュメントです。このドキュメントのファイル拡張子は
.xml
です。
-
JSON schema は JSON データの構造を記述するドキュメントです。ドキュメントのメディアタイプは
-
Definition 入力ボックスに、選択したスキーマタイプに準拠する定義を貼り付けます。たとえば、JSON schema を選択した場合は、メディアタイプが
application/schema+json
の JSON スキーマファイルの内容を貼り付けます。 Data Type Name フィールドにはデータタイプに選択した名前を入力します。たとえば、ベンダーの JSON スキーマを指定する場合は、データ型名として
Vendor
を指定できます。このタイプを指定するコネクションを使用するインテグレーションを作成または編集するときにこのデータタイプ名が表示されます。Fuse Online では、インテグレーション仮想化パネルとデータマッパーにタイプ名が表示されます。
- Data Type Description フィールドには、このタイプを区別するのに便利な情報を提供します。データマッパーでこのタイプを処理するステップにカーソルを合わせると、この説明が表示されます。
- Done をクリックします。
結果
インテグレーションフローで追加した場所にコネクションが表示されます。