本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
同步本地設備陰影 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 CoreAWS IoT開發人員指南中的政策動作
設定陰影管理員元件
陰影管理員需要陰影名稱對映清單,才能將本機陰影文件中的陰影狀態資訊同步到中的雲端陰影文件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雲端的值覆寫本機陰影文件的衝突區段。