メッセージエンリッチメントための伝播属性の追加 - AWS IoT Core

メッセージエンリッチメントための伝播属性の追加

AWS IoT Core では、モノの属性または接続の詳細からのコンテキストメタデータである伝播属性を追加することで、デバイスからの MQTT メッセージを強化できます。メッセージエンリッチメントと呼ばれるこのプロセスは、さまざまなシナリオで役立ちます。たとえば、デバイス側で変更を行ったり、ルールを使用したりすることなく、すべてのインバウンドの発行オペレーションでのメッセージを強化できます。伝播属性を活用することで、ルールの設定や再発行の設定の管理における複雑さをなくして、IoT データをより効率的かつ費用対効果の高い方法で強化できるようになります。

メッセージエンリッチメント機能は、基本的な取り込みメッセージブローカーを使用する AWS IoT Core のお客様が使用できます。発行するデバイスでは任意の MQTT バージョンを使用できますが、サブスクライバー (メッセージを消費するアプリケーションまたはサービス) は、MQTT 5 をサポートして、伝播属性を含むエンリッチされたメッセージを受信する必要があります。エンリッチされたメッセージは、デバイスから発行されたすべてのメッセージに MQTT 5 ユーザープロパティとして追加されます。ルールを使用する場合は、get_user_properties 関数を使用して、データに基づいてメッセージをルーティングまたは処理するために強化されたデータを取得できます。

AWS IoT Core では、AWS マネジメントコンソール または AWS CLI を使用して、モノのタイプを作成または更新するときに伝播属性を追加できます。

重要

伝播属性を追加するときは、メッセージを発行するクライアントが証明書で認証されていることを確認する必要があります。詳細については、「クライアント認証」を参照してください。

注記

コンソール内で MQTT テストクライアントを使用してこの機能をテストしようとすると、この機能には関連付けられた証明書で認証された MQTT クライアントが必要なため、機能しない場合があります。

AWS マネジメントコンソール

AWS マネジメントコンソール を使用してメッセージエンリッチメントの伝播属性を追加する方法
  1. AWS IoT コンソールの AWS IoT ホームページを開きます。左側のナビゲーションで、[管理] から [すべてのデバイス] を選択します。次に、[モノのタイプ]を選択します。

  2. [モノのタイプ] ページで [モノのタイプを作成] を選択します。

    モノのタイプを更新してメッセージエンリッチメントを設定するには、モノのタイプを選択します。次に、モノのタイプの詳細ページで、[更新] を選択します。

  3. [モノのタイプを作成] ページにある [モノのタイプのプロパティ] で、モノのタイプの情報を選択または入力します。

    モノのタイプを更新する場合は、前のステップで [更新] を選択すると、[モノのタイプのプロパティ] が表示されます。

  4. [追加設定] で、[属性伝播] を展開します。次に、[モノの属性] を選択し、発行される MQTT5 メッセージに入力するモノの属性を入力します。コンソールを使用して、最大 3 つのモノの属性を追加できます。

    [属性伝播] セクションで、[接続属性] を選択し、属性タイプとオプションで属性名を入力します。

  5. オプションでタグを追加します。次に、[モノのタイプを作成] を選択します。

    モノのタイプを更新する場合は、[モノのタイプをアップデート] を選択します。

AWS CLI

  1. AWS CLI を使用して新しいモノのタイプを作成してメッセージエンリッチメントのための伝播属性を追加するには、create-thing-type コマンドを実行します。以下は、コマンドの一例です。

    aws iot create-thing-type \ --thing-type-name "LightBulb" \ --thing-type-properties "{\"mqtt5Configuration\":{\"propagatingAttributes\":[{\"userPropertyKey\":\"iot:ClientId\", \"connectionAttribute\":\"iot:ClientId\"}, {\"userPropertyKey\":\"test\", \"thingAttribute\":\"A\"}]}}" \

    コマンドの出力は以下のようになります。

    { "thingTypeName": "LightBulb", "thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb", "thingTypeId": "ce3573b0-0a3c-45a7-ac93-4e0ce14cd190" }
  2. AWS CLI を使用してモノのタイプを更新してメッセージエンリッチメントを設定するには、update-thing-type コマンドを実行します。このコマンドを実行した場合にのみ、mqtt5Configuration を更新できることに注意してください。以下は、コマンドの一例です。

    aws iot update-thing-type \ --thing-type-name "MyThingType" \ --thing-type-properties "{\"mqtt5Configuration\":{\"propagatingAttributes\":[{\"userPropertyKey\":\"iot:ClientId\", \"connectionAttribute\":\"iot:ClientId\"}, {\"userPropertyKey\":\"test\", \"thingAttribute\":\"A\"}]}}" \

    このコマンドでは、出力が生成されません。

  3. モノのタイプを記述するには、describe-thing-type コマンドを実行します。このコマンドは、thing-type-properties フィールドにメッセージエンリッチメントの設定情報を含む出力を生成します。以下は、コマンドの一例です。

    aws iot describe-thing-type \ --thing-type-name "LightBulb"

    出力は次のようになります。

    { "thingTypeName": "LightBulb", "thingTypeId": "bdf72512-0116-4392-8d79-bf39b17ef73d", "thingTypeArn": "arn:aws:iot:us-east-1:123456789012:thingtype/LightBulb", "thingTypeProperties": { "mqtt5Configuration": { "propagatingAttributes": [ { "userPropertyKey": "iot:ClientId", "connectionAttribute": "iot:ClientId" }, { "userPropertyKey": "test", "thingAttribute": "attribute" } ] } }, "thingTypeMetadata": { "deprecated": false, "creationDate": "2024-10-18T17:37:46.656000+00:00" } }

詳細については、「モノのタイプ」を参照してください。