與組件中的陰影互動 - AWS IoT Greengrass

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

與組件中的陰影互動

您可以開發使用本機陰影服務讀取和修改本機陰影文件和用戶端裝置陰影文件的自訂元件 (包括 Lambda 函數元件)。

自訂元件使用中的 AWS IoT Greengrass Core IPC 程式庫與本機陰影服務互動AWS IoT Device SDK。陰影管理員元件會在核心裝置上啟用本機陰影服務。

若要將陰影管理員元件部署到 Greengrass 核心裝置,請建立包含該元件的部署aws.greengrass.ShadowManager

注意

根據預設,部署陰影管理員元件只會啟用本機陰影作業。若AWS IoT Greengrass要啟用將核心裝置陰影或用戶端裝置的任何陰影的陰影狀態資訊同步至中對應的雲端陰影文件AWS IoT Core,您必須為包含synchronize參數的陰影管理員元件建立組態更新。如需詳細資訊,請參閱 同步本地設備陰影 AWS IoT Core

擷取和修改陰影狀態

陰影 IPC 作業會擷取並更新本機陰影文件中的狀態資訊。陰影管理員元件會處理核心裝置上這些陰影文件的儲存。

修改局部陰影狀態
  1. 將授權原則新增至自訂元件的方案,以允許元件接收有關本機陰影主題的訊息。

    如需授權原則範例,請參閱本機陰影 IPC 授權原則範例

  2. 使用陰影 IPC 作業擷取和修改陰影狀態資訊。如需在元件程式碼中使用陰影 IPC 作業的更多資訊,請參閱〈〉與局部陰影互動

注意

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

對陰影狀態變化做出反應

Greengrass 組件使用本地發布/訂閱接口在核心設備上進行通信。若要讓自訂元件回應陰影狀態變更,您可以訂閱本機發佈/訂閱主題。這可讓元件接收有關本機陰影主題的訊息,然後對這些訊息採取行動。

本機陰影主題使用與AWS IoT裝置陰影 MQTT 主題相同的格式。如需陰影主題的詳細資訊,請參閱AWS IoT開發人員指南中的 Device Shadow MQTT 主題

對局部陰影狀態變化做出反應
  1. 將存取控制原則新增至自訂元件的方案,以允許元件接收有關本機陰影主題的訊息。

    如需授權原則範例,請參閱本機陰影 IPC 授權原則範例

  2. 若要在元件中啟動自訂動作,請使用 SubscribeToTopic IPC 作業來訂閱您要接收訊息的陰影主題。如需有關在元件程式碼中使用本機發佈/訂閱 IPC 作業的詳細資訊,請參閱。發佈/訂閱本地訊息

  3. 若要叫用 Lambda 函數,請使用事件來源組態提供陰影主題的名稱,並指定它是本機發佈/訂閱主題。如需建立 Lambda 函數元件的相關資訊,請參閱執行AWS Lambda函數

注意

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