구성 요소의 그림자와 상호 작용 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

구성 요소의 그림자와 상호 작용

Lambda 함수 구성 요소를 포함하여 로컬 섀도우 서비스를 사용하여 로컬 섀도우 문서 및 클라이언트 디바이스 섀도 문서를 읽고 수정하는 사용자 지정 구성 요소를 개발할 수 있습니다.

사용자 지정 구성 요소는 의 AWS IoT Greengrass Core IPC 라이브러리를 사용하여 로컬 섀도우 서비스와 상호 작용합니다. AWS IoT Device SDK 섀도우 관리자 구성요소는 코어 기기에서 로컬 섀도우 서비스를 활성화합니다.

섀도우 관리자 구성 요소를 Greengrass 코어 장치에 배포하려면 구성 요소가 포함된 배포를 생성하십시오aws.greengrass.ShadowManager.

참고

기본적으로 섀도우 관리자 구성 요소를 배포하면 로컬 섀도우 작업만 활성화됩니다. 코어 디바이스 섀도 또는 클라이언트 디바이스의 섀도우에 대한 섀도우 상태 정보를 의 해당 클라우드 섀도우 문서에 동기화할 수 있도록 AWS IoT Greengrass 하려면 synchronize 파라미터가 포함된 섀도우 관리자 구성 요소에 대한 구성 업데이트를 만들어야 합니다. AWS IoT Core 자세한 설명은 로컬 장치 섀도우를 다음과 동기화합니다. 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 브리지 구성 요소도 구성하고 배포해야 합니다. 자세한 내용은 섀도우 관리자가 클라이언트 장치와 통신하도록 활성화를 참조하십시오.