MQTT topics - AWS IoT コア

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

MQTT topics

MQTT topics identify AWS IoT messages. AWS IoT clients identify the messages they publish by giving the messages topic names. クライアントは、トピックフィルターを AWS IoT Core に登録して、サブスクライブ (受信) するメッセージを識別します。メッセージブローカーはトピック名とトピックフィルターを使用して、パブリッシュするクライアントからサブスクライブするクライアントに、 メッセージを振り分けます。

The message broker uses topics to identify messages sent using MQTT and sent using HTTP to the HTTPS メッセージ URL.

AWS IoT は一部の予約されたシステムトピックをサポートしていますが、ほとんどの MQTT トピックはシステムデザイナーによって作成および管理されます。AWS IoT は、次のセクションで説明するように、トピックを使用して、パブリッシュ側クライアントから受信したメッセージを識別し、サブスクライブ側クライアントに送信するメッセージを選択します。Before you create a topic namespace for your system, review the characteristics of MQTT topics to create the hierarchy of topic names that works best for your IoT system.

トピック名

トピック名とトピックフィルターは、UTF-8 エンコードされた文字列です。スラッシュ (/) 文字を使用して階層のレベルを区切ることにより、情報の階層を表すことができます。たとえば、このトピック名は、部屋 1 の温度センサーを表すことができます。

  • sensor/temperature/room1

この例では、次のようなトピック名を持つ他の種類のセンサーが他の部屋にある場合もあります。

  • sensor/temperature/room2

  • sensor/humidity/room1

  • sensor/humidity/room2

注記

システム内のメッセージのトピック名を考慮する場合は、次の点に注意してください。

  • トピック名とトピックフィルターでは、大文字と小文字が区別されます。

  • トピック名に個人を特定できる情報を含めることはできません。

  • Topic names that begin with a $ are reserved topics to be used only by AWS IoT Core.

  • AWS IoT Core can't send or receive messages between AWS accounts or Regions.

For more information on designing your topic names and namespace, see our whitepaper, Designing MQTT Topics for AWS IoT Core.

For examples of how apps can publish and subscribe to messages, start with AWS IoT Core の使用を開始する and AWS IoT デバイスとモバイル SDKs.

重要

トピック名前空間は、AWS アカウントとリージョンに制限されます。たとえば、あるリージョンの AWS アカウントで使用される sensor/temp/room1 トピックは、別のリージョンの同じ AWS アカウントで使用されるか、任意のリージョンの他の AWS アカウントで使用される sensor/temp/room1 トピックとは異なります。

トピック ARN

All topic ARNs (Amazon Resource Names) have the following form:

arn:aws:iot:aws-region:AWS-account-ID:topic/Topic

For example, arn:aws:iot:us-west-2:123EXAMPLE456:topic/application/topic/device/sensor is an ARN for the topic application/topic/device/sensor.

トピックフィルター

サブスクライブするクライアントは、 メッセージブローカーにトピックフィルターを登録して、メッセージブローカーがそのトピックフィルターに送信するメッセージトピックを指定します。A topic filter can be a single topic name to subscribe to a single topic name or it can include wildcard characters to subscribe to multiple topic names at the same time.

Publishing clients can't use wildcard characters in the topic names they publish.

次の表は、トピックフィルターで使用できるワイルドカード文字の一覧です。

トピックのワイルドカード
ワイルドカード文字 マッチ 注意
# トピック階層内のそのレベル以下のすべての文字列。

トピックフィルターの最後の文字にする必要があります。

トピック階層のレベルで唯一の文字である必要があります。

+ ワイルドカード文字を含むトピックフィルターで使用できます。

+ 文字を含むレベル内の任意の文字列。

トピック階層のレベルで唯一の文字である必要があります。

トピックフィルターの複数のレベルで使用できます。

前述のセンサートピック名でのワイルドカードの使用例:

  • sensor/# へのサブスクリプションでは sensor/sensor/temperaturesensor/temperature/room1 にパブリッシュされたメッセージを受信しますが、Sensor にパブリッシュされたメッセージは受信しません。

  • sensor/+/room1 のサブスクリプションでは、sensor/temperature/room1 および sensor/humidity/room1 にパブリッシュされたメッセージを受信しますが、sensor/temperature/room2 または sensor/humidity/room2 に送信されたメッセージは受信しません。

Topic filter ARN

All topic filter ARNs (Amazon Resource Names) have the following form:

arn:aws:iot:aws-region:AWS-account-ID:topicfilter/TopicFilter

For example, arn:aws:iot:us-west-2:123EXAMPLE456:topicfilter/application/topic/#/sensor is an ARN for the topic filter application/topic/#/sensor.