サーバーとデバイスは、IoT Platform でトピックを通じて互いに通信します。 トピックはデバイスに関連付けられ、トピックカテゴリはプロダクトに関連付けられます。

トピックカテゴリについて

権限付与操作を簡素化し、デバイスと IoT Platform 間の通信を容易にするために、トピックカテゴリが導入されました。 プロダクトを作成するとき、IoT Platform は プロダクトに対してデフォルトのトピックカテゴリを作成します。 さらに、デバイスを作成すると、トピックカテゴリが自動的にデバイスに割り当てられます。 トピックを公開またはサブスクライブするために、各個別デバイスに権限を与える必要はありません。

図 1. トピックを自動的に作成するプロセス


プロダクトを作成するとき、IoT Platform はプロダクトに対して標準トピックカテゴリを自動的に作成します。 [トピックカテゴリ] タブページでは、プロダクトのすべてのトピックカテゴリを表示できます。

トピックカテゴリの説明:

  • トピックカテゴリは、同じプロダクト内のトピックの集合です。 たとえば、 トピックカテゴリ /${productKey}/${deviceName}/update は、特定のトピックの集まりです。 つまり、/${productKey}/device1/update/${productKey}/device2/update です。
  • トピックカテゴリは、トピック階層を区切るためにスラッシュ (/) を使用する必要があります。 次の 2 つのカテゴリレベルが予約されています。${productKey} はプロダクト識別子を表し、 ${deviceName} はデバイス名を表します。
  • 各カテゴリレベルには、英数字およびアンダースコア (_) のみ使用できます。 トピックカテゴリのレベルは、空のままにすることはできません。
  • デバイスに対して利用できる操作: [公開] は、デバイスがトピックに対してメッセージを公開できることを示します。 [サブスクライブ] は、デバイスがトピックのメッセージをサブスクライブできることを示します。
  • IoT Platform Basic はトピックカテゴリのカスタマイズをサポートしています。 トピックカテゴリをカスタマイズすることで、ビジネスニーズに合わせた柔軟な通信が可能になります。 トピックカテゴリのカスタマイズやカテゴリレベル名の変更は、 IoT Platform Pro ではサポートされていません。
  • システム定義のトピックカテゴリは、IoT Platform Pro によって事前定義されていて、 カスタマイズや /${productKey} で始めることはサポートしていません。 たとえば、IoT Platform Pro では、 /sys/ で始まる TSL (Thing Special Language) 用、/ota/ で始まるファームウェアアップグレード用、 /shadow/ で始まるデバイスシャドウ用のトピックカテゴリが提供されます。

トピックについて

トピックカテゴリは、通信ではなくトピック定義に使用されます。 トピックは通信に使用されます。

  • トピックとトピックカテゴリは同じ形式を使用します。 違いは、 ${deviceName} がトピックカテゴリでは変数を表しますが、 トピックでは特定のデバイス名を表すことです。
  • トピックは、デバイス名とプロダクトのトピックカテゴリから自動的に導出されます。 トピックは デバイス名 (deviceName)を含みます。これは、公開およびサブスクライブ 通信でのみ使用できます。 たとえば、/${productKey}/device1/update というトピックは、device1 という名前のデバイスが所有しています。 したがって、この device1 という名前のトピックに対するメッセージにのみ、公開やサブスクライブができ、device2 という名前のデバイスに対する メッセージの公開やサブスクライブのためには使用できません。
  • ルールエンジンを設定するときは、設定するトピックの名前に 1 つのワイルドカード文字を含めることができます。
    表 1. トピック内のワイルドカード文字
    ワイルドカード文字 説明
    # トピック名の最後の文字である必要があります。トピック階層のカレントのツリー内と全てのサブツリー内の全トピックをマッチさせるワイルドカードとして機能します。 たとえば、 /productKey/device1/# というトピックは、/productKey/device1/updateproductKey/device1/update/error を表すことができます。
    + トピック階層の現在のツリーの全トピックをマッチさせます。 たとえば、/productKey/+/update というトピックは、/${productKey}/device1/update/${productKey}/device2/update を表すことができます。