本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
同步本地設備陰影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
-
已命名的影子
MyShadowA
和MyShadowB
針對名為的 IoT 物件MyDevice1
此組態更新指定要同步陰影AWS IoT Core即時。如果您使用陰影管理員 v2.1.0 或更新版本,您可以設定陰影管理員元件以定期間隔同步陰影。若要設定此功能,請將同步策略變更為periodic
,並指定delay
以秒為單位的間隔。如需詳細資訊,請參閱「」策略組態參數的陰影管理員元件。
此組態更新指定在兩個方向之間同步陰影AWS IoT Core和核心裝置。如果您使用陰影管理員 v2.2.0 或更新版本,您可以將陰影管理員元件設定為僅在一個方向同步陰影。若要設定此功能,請變更同步direction
至deviceToCloud
或者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雲端。