

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 新增傳播屬性讓訊息內容更豐富
<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 訊息的物件屬性。使用 主控台，您最多可以新增三個物件屬性。

   在**傳播屬性**區段中，選擇**連線屬性**，然後輸入屬性類型和選擇性的屬性名稱。

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)。