기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이 단원에서는 코어 디바이스에 구성 요소를 배포하여 해당 기능을 테스트합니다. 실제 배터리가 모방되는 가상 배터리 잔량 파일을 코어 디바이스에서 생성합니다. 그런 다음에 코어 디바이스에서 추가 배포를 생성하고 구성 요소 로그 파일을 관찰하여 구성 요소 지연 및 승인 업데이트를 참조합니다.
업데이트가 지연되는 Hello World 구성 요소를 배포하고 테스트하려면
-
텍스트 편집기를 사용하여 가상 배터리 잔량 파일을 생성합니다. 이 파일에서는 실제 배터리가 모방됩니다.
-
Linux 코어 디바이스에서
/home/ggc_user/virtual_battery.json
이라는 파일을 생성합니다.sudo
권한으로 텍스트 편집기를 실행합니다. -
Windows 코어 디바이스에서
C:\Users\ggc_user\virtual_battery.json
이라는 파일을 생성합니다. 관리자로 텍스트 편집기를 실행합니다.
예를 들어 Linux 기반 시스템에서 다음 명령을 실행하면 GNU nano를 사용하여 파일을 생성할 수 있습니다.
sudo nano /home/ggc_user/virtual_battery.json
다음 JSON을 파일로 복사합니다.
{ "battery_level": 50 }
-
-
Hello World 구성 요소를 코어 디바이스에 배포합니다. 다음을 수행합니다.
-
AWS IoT Greengrass 콘솔
탐색 메뉴에서 구성 요소를 선택합니다. -
구성 요소 페이지에서 내 구성 요소 탭을 선택한 다음에 com.example.BatteryAwareHelloWorld를 선택합니다.
-
com.example.BatteryAwareHelloWorld 페이지에서 배포를 선택합니다.
-
배포에 추가에서 수정할 기존 배포를 선택하거나 새 배포 생성을 선택하고 다음을 선택합니다.
-
새 배포 생성을 선택한 경우 배포의 대상 코어 디바이스 또는 사물 그룹을 선택합니다. 대상 지정 페이지의 배포 대상에서 코어 디바이스 또는 사물 그룹을 선택하고 다음을 선택합니다.
-
구성 요소 선택 페이지에서 com.example.BatteryAwareHelloWorld 구성 요소가 선택되었는지 확인하고 다음을 선택합니다.
-
구성 요소 구성 페이지에서 com.example.BatteryAwareHelloWorld를 선택하고 다음을 수행합니다.
-
구성 요소 구성을 선택합니다.
-
구성 com.example.BatteryAwareHelloWorld 모달에서 구성 업데이트 아래의 병합할 구성에 다음 구성 업데이트를 입력합니다.
{ "BatteryThreshold": 70 }
-
확인을 선택하여 모달을 닫고 다음을 선택합니다.
-
-
고급 설정 확인 페이지에서 배포 정책 단원의 구성 요소 업데이트 정책에서 구성 요소에 알림이 선택되었는지 확인합니다. 구성 요소에 알림은 새 배포를 생성할 때 기본적으로 선택됩니다.
-
검토 페이지에서 배포를 선택합니다.
배포를 완료하는 데 1분 정도 걸릴 수 있습니다.
-
-
AWS IoT Greengrass 코어 소프트웨어는 구성 요소 프로세스의 stdout을
logs
폴더의 로그 파일에 저장합니다. 다음 명령을 실행하여 Hello World 구성 요소가 실행되고 상태 메시지가 인쇄되는지 확인합니다.sudo tail -f
/logs/com.example.BatteryAwareHelloWorld.log/greengrass/v2
다음 예제와 비슷한 메시지가 표시되어야 합니다.
Hello, World! Battery level (50) is below threshold (70), so the component will defer updates.
참고
파일이 없으면 배포가 아직 완료되지 않았을 수 있습니다. 30초 이내에 파일이 존재하지 않으면 배포에 실패했을 수 있습니다. 예를 들어, S3 버킷에서 구성 요소의 아티팩트를 다운로드할 권한이 코어 디바이스에 없으면 이 문제가 발생할 수 있습니다. 다음 명령을 실행하여 AWS IoT Greengrass 코어 소프트웨어 로그 파일을 확인합니다. 이 파일에는 Greengrass 코어 디바이스의 배포 서비스의 로그가 포함되어 있습니다.
sudo tail -f
/logs/greengrass.log/greengrass/v2
-
코어 디바이스에 대한 새 배포를 생성하여 구성 요소에서 업데이트가 지연되는지 확인합니다. 다음을 수행합니다.
-
AWS IoT Greengrass 콘솔
탐색 메뉴에서 배포를 선택합니다. -
이전에 생성하거나 수정한 배포를 선택합니다.
-
배포 페이지에서 수정을 선택합니다.
-
배포 수정 모달에서 배포 수정을 선택합니다.
-
각 단계에서 다음을 선택한 다음에 배포를 선택합니다.
-
-
다음 명령을 실행하여 구성 요소의 로그를 다시 보고 업데이트가 지연되는지 확인합니다.
sudo tail -f
/logs/com.example.BatteryAwareHelloWorld.log/greengrass/v2
다음 예제와 비슷한 메시지가 표시되어야 합니다. 구성 요소에서는 업데이트가 30초 동안 지연되므로 이 메시지가 구성 요소에서 반복적으로 인쇄됩니다.
Deferred update for deployment 50722a95-a05f-4e2a-9414-da80103269aa.
-
배포가 진행될 수 있도록 텍스트 편집기를 사용하여 가상 배터리 잔량 파일을 편집하고 배터리 잔량을 임계값보다 높은 값으로 변경합니다.
-
Linux 코어 디바이스에서
/home/ggc_user/virtual_battery.json
이라는 파일을 편집합니다.sudo
권한으로 텍스트 편집기를 실행합니다. -
Windows 코어 디바이스에서
C:\Users\ggc_user\virtual_battery.json
이라는 파일을 편집합니다. 관리자로 텍스트 편집기를 실행합니다.
예를 들어 Linux 기반 시스템에서 다음 명령을 실행하면 GNU nano를 사용하여 파일을 생성할 수 있습니다.
sudo nano /home/ggc_user/virtual_battery.json
배터리 잔량을
80
으로 변경합니다.{ "battery_level": 80 }
-
-
다음 명령을 실행하여 구성 요소의 로그를 다시 보고 업데이트가 승인되는지 확인합니다.
sudo tail -f
/logs/com.example.BatteryAwareHelloWorld.log/greengrass/v2
다음 예제와 비슷한 메시지가 표시되어야 합니다.
Hello, World! Battery level (80) is above threshold (70), so the component will acknowledge updates. Acknowledged update for deployment f9499eb2-4a40-40a7-86c1-c89887d859f1.