同步本地設備陰影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允許下列項目的政策AWS IoT Core影子政策動作。

  • iot:GetThingShadow

  • iot:UpdateThingShadow

  • iot:DeleteThingShadow

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

設定陰影管理員元件

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

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

注意

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

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

  • 核心裝置的經典陰影

  • 具名的MyCoreShadow,適用於核心裝置

  • IoT 物件的經典陰影MyDevice2

  • 已命名的影子MyShadowAMyShadowB針對名為的 IoT 物件MyDevice1

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

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

{ "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

  • 如果陰影同步方向組態為betweenDeviceAndCloud或者cloudToDevice,陰影管理器從雲陰影文檔中檢索報告的狀態信息AWS IoT Core。然後,它會更新本機儲存的陰影文件,以同步處理裝置狀態。

  • 如果陰影同步方向組態為betweenDeviceAndCloud或者deviceToCloud,陰影管理員會將裝置的目前狀態發佈至雲端陰影文件。

陰影合併衝突行為

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

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

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

    • 當陰影的所需狀態下發生合併衝突時,陰影管理員會使用來自AWS IoT雲端。

    • 當陰影的報告狀態中發生合併衝突時,陰影管理員會覆寫AWS IoT雲與本地陰影文檔的值。

  • 當您指定時,deviceToCloud陰影同步方向時,陰影管理員會覆寫陰影中衝突的部分AWS IoT雲與本地陰影文檔的值。

  • 當您指定時,cloudToDevice陰影同步方向時,陰影管理員會使用來自AWS IoT雲端。