同步本地設備陰影 AWS IoT Core - AWS IoT Greengrass

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

同步本地設備陰影 AWS IoT Core

陰影管理員元件可AWS IoT Greengrass讓您同步本機裝置陰影狀態與AWS IoT Core。您必須修改陰影管理員元件的組態以包含synchronization組態參數,並指定裝置的AWS IoT物件名稱,以及要同步的陰影。

當您設定陰影管理員同步陰影時,無論變更是發生在本機陰影文件還是雲陰影文件中,都會同步指定陰影的所有狀態變更。

您也可以指定陰影管理員元件是即時或定期同步陰影。根據預設,陰影管理員元件會即時同步陰影,因此核心裝置會在每次更新AWS IoT Core時傳送和接收陰影更新。您可以設定定期間隔,以減少頻寬使用量和費用。

必要條件

若要同步本機陰影AWS IoT Core,您必須將 Greengrass 核心裝置的原則設定為允許下列AWS IoT Core陰影AWS IoT原則動作。

  • iot:GetThingShadow

  • iot:UpdateThingShadow

  • iot:DeleteThingShadow

如需詳細資訊,請參閱下列內容:

設定陰影管理員元件

陰影管理員需要陰影名稱對映清單,才能將本機陰影文件中的陰影狀態資訊同步到中的雲端陰影文件AWS IoT Core。

若要同步陰影狀態,請建立包含aws.greengrass.ShadowManager元件的部署,然後在部署的陰影管理員synchronize組態中的組態參數中指定要同步的陰影。

注意

若要讓核心裝置與用戶端裝置陰影互動,您還必須設定和部署 MQTT 橋接器元件。如需詳細資訊,請參閱啟用陰影管理員與用戶端裝置通訊。

下列範例組態更新會指示陰影管理員元件與AWS IoT Core下列陰影同步:

  • 核心裝置的經典陰影

  • MyCoreShadow為核心裝置命名

  • IoT 物件的經典陰影 MyDevice2

  • 命名的陰影MyShadowA和名MyShadowB為 IoT 的東西 MyDevice1

此組態更新指定要即時同步陰影。AWS IoT Core如果您使用陰影管理員 v2.1.0 或更新版本,您可以設定陰影管理員元件以定期間隔同步陰影。若要設定此功能,請將同步策略變更為periodic,並以秒為單delay位指定間隔。如需詳細資訊,請參閱陰影管理員元件的策略組態參數

此配置更新指定在和核心設備之間AWS IoT Core雙向同步陰影。如果您使用陰影管理員 v2.2.0 或更新版本,您可以將陰影管理員元件設定為僅在一個方向同步陰影。若要設定此功能,請將同步變更directiondeviceToCloudcloudToDevice。如需詳細資訊,請參閱陰影管理員元件的方向組態參數

{ "strategy": { "type": "realTime" }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadow" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [ ] } ], "direction": "betweenDeviceAndCloud" } }

同步局部陰影

當 Greengrass 核心裝置連線到AWS IoT雲端時,陰影管理員會針對您在元件組態中指定的陰影執行下列工作。行為取決於您指定的陰影同步方向組態選項。根據預設,陰影管理員會使用betweenDeviceAndCloud此選項來同步兩個方向的陰影。如果您使用陰影管理器 v2.2.0 或更新版本,則可以將核心設備配置為僅在一個方向上同步陰影,可以是cloudToDevice或。deviceToCloud

  • 如果陰影同步方向設定為betweenDeviceAndCloudcloudToDevice,陰影管理員會從中的雲陰影文件擷取報告的狀態資訊AWS IoT Core。然後,它會更新本機儲存的陰影文件,以同步處理裝置狀態。

  • 如果陰影同步方向設定為betweenDeviceAndClouddeviceToCloud,陰影管理員會將裝置的目前狀態發佈至雲端陰影文件。

陰影合併衝突行為

在某些情況下,例如核心裝置與網際網路中斷連線時,陰影管理員在陰影管理員同步處理變更之前,本機陰影服務和AWS IoT雲端中的陰影可能會變更。因此,本機陰影服務和AWS IoT雲端之間所需和報告的狀態不同

當陰影管理員同步處理陰影時,會根據下列行為合併變更:

  • 如果您使用 v2.2.0 之前的陰影管理員版本,或指定betweenDeviceAndCloud陰影同步方向時,會套用下列行為:

    • 當陰影的所需狀態下發生合併衝突時,陰影管理員會以AWS IoT雲端的值覆寫本機陰影文件的衝突區段。

    • 當陰影的報告狀態中發生合併衝突時,陰影管理員會以本機陰影文件的值覆寫AWS IoT雲端中衝突的陰影區段。

  • 當您指定deviceToCloud陰影同步方向時,陰影管理員會以本機陰影文件的值覆寫AWS IoT雲端中衝突的陰影區段。

  • 當您指定cloudToDevice陰影同步方向時,陰影管理員會以AWS IoT雲端的值覆寫本機陰影文件的衝突區段。