AWS IoT Greengrass 구성 요소 개발
Greengrass 코어 디바이스에서 구성 요소를 개발하고 테스트할 수 있습니다. 따라서 AWS 클라우드와 상호 작용하지 않아도 AWS IoT Greengrass 소프트웨어를 생성하고 반복할 수 있습니다. 구성 요소의 버전을 마치면 클라우드의AWS IoT Greengrass 에 업로드할 수 있으므로 자신과 소속 팀이 구성 요소를 플릿의 다른 디바이스에 배포할 수 있습니다. 구성 요소를 배포하는 방법에 대한 자세한 내용은 디바이스에 AWS IoT Greengrass 구성 요소 배포 단원을 참조하세요.
모든 구성 요소는 레시피와 아티팩트 로 구성되어 있습니다.
-
레시피
모든 구성 요소에는 메타데이터가 정의되는 레시피 파일이 있습니다. 레시피에서는 구성 요소의 구성 파라미터, 구성 요소 종속성, 수명 주기 및 플랫폼 호환성도 지정됩니다. 구성 요소 수명 주기에서는 구성 요소 설치, 실행 및 종료 명령이 정의됩니다. 자세한 내용은 AWS IoT Greengrass 구성 요소 레시피 참조 단원을 참조하십시오.
-
아티팩트
구성 요소의 구성 요소 바이너리인 아티팩트는 수량 제한이 없습니다. 아티팩트에는 구성 요소에서 사용되는 스크립트, 컴파일된 코드, 정적 리소스 및 기타 파일이 포함될 수 있습니다. 구성 요소에서는 구성 요소 종속성의 아티팩트도 사용될 수도 있습니다.
AWS IoT Greengrass에서는 애플리케이션에서 사용하고 디바이스에 배포할 수 있는 사전 빌드된 구성 요소가 제공됩니다. 예를 들어 스트림 관리자 구성 요소를 사용하여 다양한 AWS 서비스에 데이터를 업로드하거나 CloudWatch 지표 구성 요소를 사용하여 사용자 지정 지표를 Amazon CloudWatch에 게시할 수 있습니다. 자세한 내용은 AWS 제공 구성 요소 단원을 참조하십시오.
AWS IoT Greengrass에서는 Greengrass 소프트웨어 카탈로그라는 Greengrass 구성 요소의 인덱스가 큐레이팅됩니다. 이 카탈로그에서는 Greengrass 커뮤니티에서 개발하는 Greengrass 구성 요소가 추적됩니다. 이 카탈로그에서 구성 요소를 다운로드, 수정 및 배포하여 Greengrass 애플리케이션을 생성할 수 있습니다. 자세한 내용은 커뮤니티 구성 요소 단원을 참조하십시오.
AWS IoT Greengrass 코어 소프트웨어에서는 코어 디바이스에서 구성하는 시스템 사용자 및 그룹(예: ggc_user
및 ggc_group
)으로 구성 요소가 실행됩니다. 즉, 구성 요소에 해당 시스템 사용자의 권한이 있습니다. 홈 디렉터리가 없는 시스템 사용자를 사용하는 경우에는 홈 디렉터리가 사용되는 실행 명령 또는 코드가 구성 요소에서 사용될 수 없습니다. 즉, pip install some-library --user
명령을 사용하여 예컨대 Python 패키지를 설치할 수 없습니다. 시작하기 자습서에 따라 코어 디바이스를 설정했다면 시스템 사용자에게 홈 디렉터리가 없습니다. 구성 요소가 실행되는 사용자 및 그룹을 구성하는 방법에 대한 자세한 내용은 구성 요소를 실행하는 사용자 구성 단원을 참조하세요.
참고
AWS IoT Greengrass에서는 구성 요소에 의미 체계 버전이 사용됩니다. 시맨틱 버전은 메이저.마이너.패치 번호 시스템을 따릅니다. 예를 들어 1.0.0
버전은 구성 요소의 첫 번째 주요 릴리스를 나타냅니다. 자세한 내용은 의미 체계 버전 사양
주제
구성 요소 수명 주기
구성 요소 수명 주기에서는 AWS IoT Greengrass 코어 소프트웨어의 구성 요소 설치 및 실행에 사용되는 스테이지가 정의됩니다. 각 스테이지에서는 구성 요소의 작동 방식이 지정되는 스크립트 및 기타 정보가 정의됩니다. 예를 들어 구성 요소를 설치할 때 AWS IoT Greengrass 코어 소프트웨어에서는 해당 구성 요소에 대한 Install
수명 주기 스크립트가 실행됩니다. 코어 디바이스의 구성 요소에는 다음 수명 주기 상태가 있습니다.
-
NEW
- 코어 디바이스에서 구성 요소의 레시피와 아티팩트가 로드되지만, 구성 요소는 설치되지 않습니다. 구성 요소가 이 상태로 전환되면 스크립트 설치가 실행됩니다. -
INSTALLED
- 코어 디바이스에서 구성 요소가 설치됩니다. 구성 요소가 스크립트 설치가 실행된 후 이 상태로 전환됩니다. -
STARTING
- 코어 디바이스에서 구성 요소가 시작됩니다. 시작 스크립트가 실행되면 구성 요소가 이 상태로 전환됩니다. 시작되면 구성 요소가RUNNING
상태로 전환됩니다. -
RUNNING
- 코어 디바이스에서 구성 요소가 실행됩니다. 스크립트 실행이 실행되거나 시작 스크립트의 활성 백그라운드 프로세스가 있으면 구성 요소가 이 상태로 전환됩니다. -
FINISHED
– 구성 요소가 실행되고 실행이 완료되었습니다. -
STOPPING
- 구성 요소가 중지되고 있습니다. 스크립트 종료가 실행되면 구성 요소가 이 상태로 전환됩니다. -
ERRORED
- 구성 요소에서 오류가 발생했습니다. 구성 요소가 이 상태로 전환되면 스크립트 복구가 실행됩니다. 그런 다음에 구성 요소가 다시 시작되어 정상 사용으로 돌아가기가 시도됩니다. 구성 요소가 실행되지 않고ERRORED
상태로 세 번 전환되면 구성 요소는BROKEN
으로 됩니다. -
BROKEN
- 오류가 여러 번 발생하여 구성 요소를 복구할 수 없습니다. 오류를 해결하려면 구성 요소를 다시 배포해야 합니다.
구성 요소 유형
구성 요소 유형에서는 AWS IoT Greengrass 코어 소프트웨어에서 구성 요소가 실행되는 방식이 지정됩니다. 구성 요소에는 다음 유형이 있을 수 있습니다.
-
Nucleus(
aws.greengrass.nucleus
)Greengrass nucleus는 AWS IoT Greengrass 코어 소프트웨어의 최소 기능이 제공되는 구성 요소입니다. 자세한 내용은 Greengrass nucleus 단원을 참조하십시오.
-
플러그인(
aws.greengrass.plugin
)Greengrass nucleus에서는 플러그인 구성 요소가 nucleus와 동일한 Java 가상 머신(JVM)에서 실행됩니다. 코어 디바이스에서 플러그인 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다. 플러그인 구성 요소를 설치하고 실행하려면 시스템 서비스로 실행되도록 Greengrass nucleus를 구성해야 합니다. 자세한 내용은 Greengrass nucleus를 시스템 서비스로 구성 단원을 참조하십시오.
AWS에서 제공하는 여러 구성 요소는 Greengrass nucleus와 직접 인터페이스로 연결될 수 있는 플러그인 구성 요소입니다. 플러그인 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 AWS IoT Greengrass 로그 모니터링 단원을 참조하십시오.
-
일반:(
aws.greengrass.generic
)구성 요소에서 수명 주기가 정의되는 경우 Greengrass nucleus에서는 일반 구성 요소의 수명 주기 스크립트가 실행됩니다.
이 유형은 사용자 지정 구성 요소의 기본 유형입니다.
-
Lambda(
aws.greengrass.lambda
)Greengrass nucleus에서는 Lambda 함수 실행에 Lambda 런처 구성 요소가 사용됩니다.
Lambda 함수에서 구성 요소를 생성할 때 구성 요소에 이 유형이 있습니다. 자세한 내용은 AWS Lambda 함수 실행 단원을 참조하십시오.
참고
레시피에서는 구성 요소 유형을 지정하지 않는 것이 좋습니다. 구성 요소를 생성할 때 자동으로 AWS IoT Greengrass에서 유형이 설정됩니다.