

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

# 與元件中的陰影互動
<a name="interact-with-shadows-in-components"></a>

您可以開發自訂元件，包括 Lambda 函數元件，這些元件使用本機影子服務來讀取和修改本機影子文件和用戶端裝置影子文件。

自訂元件會使用 或 AWS IoT Device SDK AWS IoT Greengrass 元件 SDK 中的 AWS IoT Greengrass 核心 IPC 程式庫與本機影子服務互動。[影子管理員](shadow-manager-component.md)元件會在您的核心裝置上啟用本機影子服務。

若要將影子管理員元件部署到 Greengrass 核心裝置，[請建立包含元件的部署](create-deployments.md)。 `aws.greengrass.ShadowManager`

**注意**  
根據預設，部署陰影管理員元件只會啟用本機陰影操作。若要讓 AWS IoT Greengrass 將核心裝置影子或任何用戶端裝置影子的影子狀態資訊同步至 中對應的雲端影子文件 AWS IoT Core，您必須為包含 `synchronize` 參數的影子管理員元件建立組態更新。如需詳細資訊，請參閱[使用 同步本機裝置陰影 AWS IoT Core](sync-shadows-with-iot-core.md)。

**Topics**
+ [擷取和修改陰影狀態](#interact-shadow-states)
+ [對陰影狀態變更做出反應](#react-shadow-events)

## 擷取和修改陰影狀態
<a name="interact-shadow-states"></a>

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

**修改本機陰影狀態**

1. 將授權政策新增至自訂元件的配方，以允許元件接收本機影子主題的訊息。

   如需授權政策範例，請參閱[本機陰影 IPC 授權政策範例](ipc-local-shadows.md#ipc-local-shadow-authorization-policy-examples)。

1. 使用陰影 IPC 操作來擷取和修改陰影狀態資訊。如需在元件程式碼中使用陰影 IPC 操作的詳細資訊，請參閱 [與本機陰影互動](ipc-local-shadows.md)。

**注意**  <a name="note-requirement-enable-shadow-manager-client-devices"></a>
若要讓核心裝置與用戶端裝置影子互動，您還必須設定和部署 MQTT 橋接器元件。如需詳細資訊，請參閱[啟用影子管理員以與用戶端裝置通訊](work-with-client-device-shadows.md)。

## 對陰影狀態變更做出反應
<a name="react-shadow-events"></a>

Greengrass 元件使用本機發佈/訂閱界面，在核心裝置上進行通訊。若要讓自訂元件對陰影狀態變更做出反應，您可以訂閱本機發佈/訂閱主題。這可讓元件接收本機影子主題的訊息，然後對這些訊息採取行動。

本機影子主題使用與 AWS IoT 裝置影子 MQTT 主題相同的格式。如需陰影主題的詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的 [Device Shadow MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-mqtt.html)。

**對本機陰影狀態變更做出反應**

1. 將存取控制政策新增至自訂元件的配方，以允許元件接收本機影子主題的訊息。

   如需授權政策範例，請參閱[本機陰影 IPC 授權政策範例](ipc-local-shadows.md#ipc-local-shadow-authorization-policy-examples)。

1. 若要在元件中啟動自訂動作，請使用 `SubscribeToTopic` IPC 操作來訂閱您要接收訊息的影子主題。如需在元件程式碼中使用本機發佈/訂閱 IPC 操作的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。

1. 若要叫用 Lambda 函數，請使用事件來源組態來提供影子主題的名稱，並指定它是本機發佈/訂閱主題。如需建立 Lambda 函數元件的詳細資訊，請參閱 [執行 AWS Lambda 函數](run-lambda-functions.md)。

**注意**  <a name="note-requirement-enable-shadow-manager-client-devices"></a>
若要讓核心裝置與用戶端裝置影子互動，您還必須設定和部署 MQTT 橋接器元件。如需詳細資訊，請參閱[啟用影子管理員以與用戶端裝置通訊](work-with-client-device-shadows.md)。