

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

# メッセージエンリッチメントための伝播属性の追加
<a name="thing-types-propagating-attributes"></a>

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

メッセージエンリッチメント機能は、[基本的な取り込み](https://docs.aws.amazon.com//iot/latest/developerguide/iot-basic-ingest.html)と[メッセージブローカー](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html)を使用する AWS IoT Core お客様が使用できます。発行するデバイスでは任意の MQTT バージョンを使用できますが、サブスクライバー (メッセージを消費するアプリケーションまたはサービス) は、[MQTT 5](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) をサポートして、伝播属性を含むエンリッチされたメッセージを受信する必要があります。エンリッチされたメッセージは、デバイスから発行されたすべてのメッセージに MQTT 5 ユーザープロパティとして追加されます。[ルール](https://docs.aws.amazon.com//iot/latest/developerguide/iot-rules.html)を使用する場合は、[get\$1user\$1properties](https://docs.aws.amazon.com//iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-get-user-properties) 関数を使用して、データに基づいてメッセージをルーティングまたは処理するために強化されたデータを取得できます。

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

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

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

## AWS マネジメントコンソール
<a name="configure-propagating-attributes-console"></a>

**を使用してメッセージエンリッチメントの伝播属性を追加するには AWS マネジメントコンソール**

1.  AWS IoT コンソールで[AWS IoT ホームページ](https://console.aws.amazon.com//iot/home#/home)を開きます。左側のナビゲーションで、**[管理]** から **[すべてのデバイス]** を選択します。次に、**[モノのタイプ]**を選択します。

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

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

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

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

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

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

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

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

## AWS CLI
<a name="configure-propagating-attributes-cli"></a>

1. を使用して新しいモノのタイプを作成してメッセージエンリッチメントの伝播属性を追加するには AWS CLI、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-thing-type.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-thing-type.html) コマンドを実行します。以下は、コマンドの一例です。

   ```
   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"
   }
   ```

1. を使用してモノのタイプを更新してメッセージエンリッチメントを設定するには AWS CLI、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-thing-type.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-thing-type.html) コマンドを実行します。このコマンドを実行した場合にのみ、`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\"}]}}" \
   ```

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

1. モノのタイプを記述するには、`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"
   	}
   }
   ```

詳細については、「[モノのタイプ](thing-types.md)」を参照してください。