기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS IoT Greengrass 구성 요소 레시피 참조
구성 요소 레시피는 구성 요소의 세부 정보, 종속성, 아티팩트 및 수명 주기가 정의되는 파일입니다. 예를 들어 구성 요소 수명 주기에서는 실행하여 구성 요소를 설치, 실행 및 종료하는 명령이 지정됩니다. AWS IoT Greengrass 코어는 레시피에서 정의한 수명 주기를 사용하여 구성 요소를 설치하고 실행합니다. 이 AWS IoT Greengrass 서비스는 구성 요소를 배포할 때 레시피를 사용하여 코어 디바이스에 배포할 종속성과 아티팩트를 식별합니다.
구성 요소에서 지원하는 각 플랫폼의 고유한 종속성과 수명 주기를 레시피에서 정의할 수 있습니다. 이 기능을 사용하여 요구 사항이 다른 여러 플랫폼이 있는 디바이스에 구성 요소를 배포할 수 있습니다. 또한 이를 사용하여 AWS IoT Greengrass 가 이를 지원하지 않는 디바이스에 구성 요소를 설치하지 못하도록 할 수 있습니다.
레시피마다 매니페스트 목록이 있습니다. 각 매니페스트에서는 플랫폼 요구 사항 세트와 플랫폼에서 해당 요구 사항을 충족하는 코어 디바이스에 사용할 수명 주기 및 아티팩트가 지정됩니다. 코어 디바이스에서는 디바이스에서 충족되는 플랫폼 요구 사항이 있는 첫 번째 매니페스트가 사용됩니다. 코어 디바이스와 일치하도록 플랫폼 요구 사항이 없는 매니페스트를 지정합니다.
매니페스트에 없는 글로벌 수명 주기를 지정할 수도 있습니다. 글로벌 수명 주기에서는 수명 주기의 하위 단원을 식별하는 선택 키를 사용할 수 있습니다. 그런 다음에 매니페스트 내에서 이러한 선택 키를 지정하여 매니페스트의 수명 주기 외에 글로벌 수명 주기의 해당 단원도 사용할 수 있습니다. 코어 디바이스에서는 매니페스트에서 수명 주기가 정의되지 않는 경우에만 매니페스트의 선택 키가 사용됩니다. 선택 키가 없는 글로벌 수명 주기의 단원과 일치하도록 매니페스트의 all
선택을 사용할 수 있습니다.
AWS IoT Greengrass 코어 소프트웨어가 코어 디바이스와 일치하는 매니페스트를 선택한 후 다음을 수행하여 사용할 수명 주기 단계를 식별합니다.
-
선택된 매니페스트에서 수명 주기가 정의되면 코어 디바이스에서는 해당 수명 주기가 사용됩니다.
-
선택된 매니페스트에서 수명 주기가 정의되지 않으면 코어 디바이스에서는 글로벌 수명 주기가 사용됩니다. 코어 디바이스에서는 다음이 수행되어 글로벌 수명 주기 중 사용할 단원이 식별됩니다.
-
매니페스트에서 선택 키가 정의되면 코어 디바이스에서는 매니페스트의 선택 키가 있는 글로벌 수명 주기의 단원이 사용됩니다.
-
매니페스트에서 선택 키가 정의되지 않으면 코어 디바이스에서는 선택 키가 없는 글로벌 수명 주기의 단원이 사용됩니다. 이 동작은
all
선택이 정의되는 매니페스트와 동일합니다.
-
중요
구성 요소를 설치하려면 코어 디바이스가 매니페스트의 플랫폼 요구 사항 하나 이상과 일치해야 합니다. 코어 디바이스와 일치하는 매니페스트가 없으면 AWS IoT Greengrass 코어 소프트웨어가 구성 요소를 설치하지 않고 배포가 실패합니다.
레시피를 JSON
레시피 검증
Greengrass에서는 구성 요소 버전 생성 시 JSON 또는 YAML 구성 요소 레시피가 검증됩니다. 이 레시피 검증에서는 잠재적인 배포 문제가 방지되도록 JSON 또는 YAML 구성 요소 레시피의 일반적인 오류가 확인됩니다. 검증에서는 레시피의 일반적인 오류(예: 쉼표, 중괄호 및 필드 누락)가 확인되고, 레시피가 제대로 구성되었는지 확인됩니다.
레시피 검증 오류 메시지가 표시되면 레시피에 누락된 쉼표, 중괄호 또는 필드가 있는지 확인합니다. 레시피 형식을 조사하여 누락된 필드가 없는지 확인합니다.
레시피 형식
구성 요소에 대한 레시피를 정의할 때 레시피 문서에서 다음 정보를 지정합니다. 동일한 구조가 YAML 및 JSON 형식의 레시피에 적용됩니다.
RecipeFormatVersion
-
레시피의 템플릿 버전입니다. 다음 옵션을 선택합니다.
-
2020-01-25
-
ComponentName
-
이 레시피에서 정의되는 구성 요소의 이름입니다. 구성 요소 이름은 각 리전 AWS 계정 의에서 고유해야 합니다.
팁
-
회사 내에서 이름 충돌을 방지하려면 역 도메인 이름 형식을 사용합니다. 예를 들어 회사에서
example.com
을 소유하고 태양 에너지 프로젝트를 수행하는 경우 Hello World 구성 요소의 이름을com.example.solar.HelloWorld
로 지정할 수 있습니다. 그러면 회사 내 구성 요소 이름 충돌을 방지하는 데 도움이 됩니다. -
구성 요소 이름에서
aws.greengrass
접두사는 피합니다. AWS IoT Greengrass 에서 제공되는 퍼블릭 구성 요소에 이 접두사가 사용됩니다. 퍼블릭 구성 요소와 동일한 이름을 선택하면 사용자가 선택한 구성 요소로 해당 구성 요소가 바뀝니다. 그런 다음는 해당 퍼블릭 구성 요소에 종속된 구성 요소를 배포할 때 퍼블릭 구성 요소 대신 구성 요소를 AWS IoT Greengrass 제공합니다. 이 특성을 사용하면 퍼블릭 구성 요소의 동작을 재정의할 수 있지만, 퍼블릭 구성 요소를 재정의하지 않으려는 경우 다른 구성 요소가 중단될 수도 있습니다.
-
ComponentVersion
-
구성 요소의 버전입니다. 메이저, 마이너 및 패치 값의 최대값은 999,999입니다.
참고
AWS IoT Greengrass 는 구성 요소에 의미 체계 버전을 사용합니다. 시맨틱 버전은 메이저.마이너.패치 번호 시스템을 따릅니다. 예를 들어
1.0.0
버전은 구성 요소의 첫 번째 주요 릴리스를 나타냅니다. 자세한 내용은 의미 체계 버전 사양을 참조하세요. ComponentDescription
-
(선택 사항) 구성 요소의 설명입니다.
ComponentPublisher
-
구성 요소의 게시자 또는 작성자입니다.
ComponentConfiguration
-
(선택 사항) 구성 요소의 구성 또는 파라미터가 정의되는 객체입니다. 기본 구성을 정의한 다음에 구성 요소를 배포할 때 구성 요소에 제공할 구성 객체를 지정할 수 있습니다. 구성 요소 구성에서는 중첩된 파라미터와 구조가 지원됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
DefaultConfiguration
-
구성 요소의 기본 구성이 정의되는 객체입니다. 이 객체의 구조를 정의합니다.
참고
AWS IoT Greengrass 는 구성 값에 JSON을 사용합니다. JSON에서는 숫자 유형이 지정되지만, 정수와 부동 소수점은 구분되지 않습니다. 따라서 구성 값은 AWS IoT Greengrass에서 부동 소수점으로 변환될 수 있습니다. 구성 요소에서 올바른 데이터 유형이 사용되도록 하려면 숫자 구성 값을 문자열로 정의하는 것이 좋습니다. 그런 다음에 구성 요소에서 이를 정수 또는 부동 소수점으로 구문 분석하도록 합니다. 이렇게 하면 구성 값이 구성과 코어 디바이스에서 동일한 유형이 됩니다.
ComponentDependencies
-
(선택 사항) 구성 요소에 대한 구성 요소 종속성이 각각 정의되는 객체의 사전입니다. 각 객체의 키는 구성 요소 종속성의 이름을 식별합니다. AWS IoT Greengrass 는 구성 요소가 구성 요소를 시작하기 전에 종속성이 시작될 때까지 구성 요소가 installs. AWS IoT Greengrass waits할 때 구성 요소 종속성을 설치합니다. 각 객체에는 다음 정보가 포함되어 있습니다.
VersionRequirement
-
이 종속성에 대해 호환되는 구성 요소 버전이 정의되는 npm-style 스타일 의미 체계 버전 제약 조건입니다. 버전 또는 버전 범위를 지정할 수 있습니다. 자세한 내용은 npm 의미 체계 버전 계산기
를 참조하세요. DependencyType
-
(선택 사항) 이 종속성의 유형입니다. 다음 옵션 중 하나를 선택합니다.
-
SOFT
– 종속성 상태가 변경되면 구성 요소가 다시 시작되지 않습니다. -
HARD
– 종속성 상태가 변경되면 구성 요소가 다시 시작됩니다.
기본값은
HARD
입니다. -
ComponentType
-
(선택 사항) 구성 요소의 유형입니다.
참고
구성 요소를 생성할 때 recipe. AWS IoT Greengrass sets에서 구성 요소 유형을 지정하는 것은 권장하지 않습니다.
유형은 다음 중 하나일 수 있습니다.
-
aws.greengrass.generic
- 구성 요소에서 명령을 실행되거나 아티팩트가 제공됩니다. -
aws.greengrass.lambda
– 구성 요소에서 Lambda 런처 구성 요소를 통해 Lambda 함수가 실행됩니다.ComponentSource
파라미터에서는 이 구성 요소에서 실행되는 Lambda 함수의 ARN이 지정됩니다.이 옵션은 Lambda 함수에서 구성 요소를 생성할 AWS IoT Greengrass 때에서 설정하므로 사용하지 않는 것이 좋습니다. 자세한 내용은 AWS Lambda 함수 실행 단원을 참조하십시오.
-
aws.greengrass.plugin
– Greengrass nucleus와 동일한 Java 가상 머신(JVM)에서 이 구성 요소가 실행됩니다. 플러그인 구성 요소를 배포하거나 다시 시작하면 Greengrass nucleus가 다시 시작됩니다.플러그인 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 AWS IoT Greengrass 로그 모니터링 단원을 참조하십시오.
구성 요소 레시피에는이 옵션을 사용하지 않는 것이 좋습니다. Greengrass nucleus와 직접 인터페이스하는 Java로 작성된 AWS제공 구성 요소를 위한 것이기 때문입니다. 플러그인인 구성 요소에 대한 자세한 내용은 AWS제공 구성 요소 단원을 참조하세요.
-
aws.greengrass.nucleus
- nucleus 구성 요소입니다. 자세한 내용은 Greengrass nucleus 단원을 참조하십시오.구성 요소 레시피에서는 이 옵션을 사용하지 않는 것이 좋습니다. 이는 AWS IoT Greengrass 코어 소프트웨어의 최소 기능이 제공되는 Greengrass nucleus 구성 요소용 옵션입니다.
기본값은 레시피에서 구성 요소를 생성할 때는
aws.greengrass.generic
이고, Lambda 함수에서 구성 요소를 생성할 때는aws.greengrass.lambda
입니다.자세한 내용은 구성 요소 유형 단원을 참조하십시오.
-
ComponentSource
-
(선택 사항) 구성 요소에서 실행되는 Lambda 함수의 ARN입니다.
Lambda 함수에서 구성 요소를 생성할 때 recipe. AWS IoT Greengrass sets에서 구성 요소 소스를 지정하는 것은 권장하지 않습니다. 자세한 내용은 AWS Lambda 함수 실행 단원을 참조하십시오.
-
Manifests
-
각각 구성 요소의 수명 주기, 파라미터 및 플랫폼 요구 사항이 정의되는 객체 목록입니다. 코어 디바이스가 여러 매니페스트의 플랫폼 요구 사항과 일치하는 경우는 코어 디바이스가 일치하는 첫 번째 매니페스트를 AWS IoT Greengrass 사용합니다. 코어 디바이스가 올바른 매니페스트를 사용하도록 하려면 더 엄격한 먼저 플랫폼 요구 사항으로 매니페스트를 정의합니다. 모든 플랫폼에 적용되는 매니페스트는 목록의 마지막 매니페스트여야 합니다.
중요
구성 요소를 설치하려면 코어 디바이스가 매니페스트의 플랫폼 요구 사항 하나 이상과 일치해야 합니다. 코어 디바이스와 일치하는 매니페스트가 없으면 AWS IoT Greengrass 코어 소프트웨어가 구성 요소를 설치하지 않고 배포가 실패합니다.
각 객체에는 다음 정보가 포함되어 있습니다.
Name
-
(선택 사항) 이 매니페스트에서 정의되는 플랫폼의 친숙한 이름입니다.
이 파라미터를 생략하면가 플랫폼
os
및에서 이름을 AWS IoT Greengrass 생성합니다architecture
. -
Platform
-
(선택 사항) 이 매니페스트가 적용되는 플랫폼이 정의되는 객체입니다. 모든 플랫폼에 적용되는 매니페스트를 정의하려면 이 파라미터를 생략합니다.
이 객체에서는 코어 디바이스가 실행되는 플랫폼에 대한 키-값 페어가 지정됩니다. 이 구성 요소를 배포하면 AWS IoT Greengrass 코어 소프트웨어는 이러한 키-값 페어를 코어 디바이스의 플랫폼 속성과 비교합니다. AWS IoT Greengrass 코어 소프트웨어는 항상
os
및를 정의architecture
하며 추가 속성을 정의할 수 있습니다. Greengrass nucleus 구성요소를 배포할 때 코어 디바이스에 대한 사용자 지정 플랫폼 속성을 지정할 수 있습니다. 자세한 내용은 Greengrass nucleus 구성 요소의 플랫폼 재정의 파라미터를 참조하세요.키-값 페어마다 다음 값 중 하나를 지정할 수 있습니다.
-
정확한 값(
linux
또는windows
). 각 값은 글자 또는 숫자로 시작해야 합니다. -
모든 값과 일치하는
*
. 값이 없는 경우에도 일치합니다. -
Java 스타일 정규식(예:
/windows|linux/
). 정규식은 슬래시 문자(/
)로 시작하고 끝나야 합니다. 예를 들어/.+/
정규식은 비어 있지 않은 값과 일치합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
runtime
-
이 매니페스트가 지원하는 플랫폼의 Greengrass nucleus 런타임입니다. 플랫폼 로 여러 매니페스트를 정의할 때 레시피에서
runtime
지원되는 런타임 값은aws_nucleus_lite
및*
입니다. 클래식 디바이스를 대상으로 하려면 레시피에 런타임 필드를 지정해서는 안 됩니다. 지원되는 Greengrass Nucleus 런타임에는 다음 값이 포함됩니다.-
*
-
aws_nucleus_lite
-
os
-
(선택 사항) 이 매니페스트에서 지원되는 플랫폼의 운영 체제 이름입니다. 공통 플랫폼에는 다음 값이 포함되어 있습니다.
-
linux
-
windows
-
darwin
(macOS)
-
architecture
-
(선택 사항) 이 매니페스트에서 지원되는 플랫폼의 프로세서 아키텍처입니다. 공통 아키텍처에는 다음 값이 포함되어 있습니다.
-
amd64
-
arm
-
aarch64
-
x86
-
architecture.detail
-
(선택 사항) 이 매니페스트에서 지원되는 플랫폼의 프로세서 아키텍처 세부 정보입니다. 공통 아키텍처 세부 정보에는 다음 값이 포함되어 있습니다.
-
arm61
-
arm71
-
arm81
-
key
-
(선택 사항) 이 매니페스트에 대해 정의하는 플랫폼 속성입니다.
키를
플랫폼 속성의 이름으로 바꿉니다. AWS IoT Greengrass 코어 소프트웨어는이 플랫폼 속성을 Greengrass nucleus 구성 요소 구성에서 지정한 키-값 페어와 일치시킵니다. 자세한 내용은 Greengrass nucleus 구성 요소의 플랫폼 재정의 파라미터를 참조하세요.작은 정보
회사 내에서 이름 충돌을 방지하려면 역 도메인 이름 형식을 사용합니다. 예를 들어 회사에서
example.com
을 소유하고 라디오 프로젝트에 착수한다면 사용자 지정 플랫폼 속성com.example.radio.RadioModule
의 이름을 지정할 수 있습니다. 그러면 회사 내 플랫폼 속성 이름 충돌을 방지하는 데 도움이 됩니다.예를 들어 플랫폼 속성(
com.example.radio.RadioModule
)을 정의하여 코어 디바이스에서 사용할 수 있는 라디오 모듈에 따라 상이한 매니페스트를 지정할 수 있습니다. 각 매니페스트에는 상이한 하드웨어 구성에 적용되는 상이한 아티팩트가 포함될 수 있으므로 최소 소프트웨어 세트를 코어 디바이스에 배포할 수 있습니다.
-
-
Lifecycle
-
이 매니페스트에서 정의되는 플랫폼에서 구성 요소가 설치되고 실행되는 방법이 정의되는 객체 또는 문자열입니다. 모든 플랫폼에 적용되는 글로벌 수명 주기를 정의할 수도 있습니다. 코어 디바이스에서는 사용되는 매니페스트에서 수명 주기가 지정되지 않는 경우에만 글로벌 수명 주기가 사용됩니다.
참고
매니페스트 내에 이 수명 주기를 정의합니다. 여기에서 지정하는 수명 주기 단계는 매니페스트에서 정의되는 플랫폼에만 적용됩니다. 모든 플랫폼에 적용되는 글로벌 수명 주기를 정의할 수도 있습니다.
다음 정보가 이 객체 또는 문자열에 있습니다.
-
Setenv
-
(선택 사항) 모든 수명 주기 스크립트에 제공되는 환경 변수의 사전입니다. 각 수명 주기 스크립트에서
Setenv
로 이러한 환경 변수를 재정의할 수 있습니다. -
install
-
(선택 사항) 구성 요소가 설치될 때 실행되는 스크립트가 정의되는 객체 또는 문자열입니다. 또한 AWS IoT Greengrass 코어 소프트웨어는 소프트웨어가 시작될 때마다이 수명 주기 단계를 실행합니다.
install
스크립트가 성공 코드로 종료되면 구성 요소가INSTALLED
상태로 전환됩니다.다음 정보가 이 객체 또는 문자열에 있습니다.
Script
-
실행할 스크립트입니다.
RequiresPrivilege
-
(선택 사항) 루트 권한으로 스크립트를 실행할 수 있습니다. 이 옵션을 로 설정하면
true
AWS IoT Greengrass 코어 소프트웨어가이 구성 요소를 실행하도록 구성한 시스템 사용자 대신이 수명 주기 스크립트를 루트로 실행합니다. 기본값은false
입니다. Skipif
-
(선택 사항) 스크립트 실행 여부가 결정되는 확인입니다. 실행 파일이 경로에 있는지 또는 파일이 있는지 확인되도록 정의할 수 있습니다. 출력이 true인 경우 AWS IoT Greengrass 코어 소프트웨어는 단계를 건너뜁니다. 다음 확인 사항 중 하나를 선택합니다.
-
onpath
- 시스템 경로에 실행 가능이 있는지 확인합니다. 예를 들어, Python 3를 사용할 수 있으면runnable
onpath python3
를 사용하여 이 수명 주기 단계를 건너뜁니다. -
exists
– 파일이 있는지 확인합니다. 예를 들어,file
/tmp/my-configuration.db
가 있으면exists /tmp/my-configuration.db
를 사용하여 이 수명 주기 단계를 건너뜁니다.
-
Timeout
-
(선택 사항) AWS IoT Greengrass 코어 소프트웨어에서 프로세스가 종료되기 전에 스크립트가 실행될 수 있는 최대 시간(초)입니다.
기본값: 120초
Setenv
-
(선택 사항) 스크립트에 제공되는 환경 변수의 사전입니다.
Lifecycle.Setenv
에서 제공하는 변수가 이러한 환경 변수를 통해 재정의됩니다.
-
run
-
(선택 사항) 구성 요소가 시작될 때 실행되는 스크립트가 정의되는 객체 또는 문자열입니다.
이 수명 주기 단계가 실행되면 구성 요소가
RUNNING
상태로 전환됩니다.run
스크립트가 성공 코드로 종료되면 구성 요소가STOPPING
상태로 전환됩니다.shutdown
스크립트가 지정되면 실행됩니다. 그렇지 않으면 구성 요소가FINISHED
상태로 전환됩니다.이 구성 요소에 종속되는 구성 요소는 이 수명 주기 단계가 실행될 때 시작됩니다. 종속된 구성 요소에서 사용되는 서비스와 같은 백그라운드 프로세스를 실행하려면 그 대신에
startup
수명 주기 단계를 사용합니다.수명 주기가
run
인 구성 요소를 배포하면 이 수명 주기 스크립트가 실행되는 즉시 코어 디바이스에서 배포가 완료로 보고될 수 있습니다. 따라서run
수명 주기 스크립트가 실행 직후 실패하더라도 배포를 완료되고 성공할 수 있습니다. 구성 요소의 시작 스크립트 결과에 배포 상태를 종속시키려면 그 대신에startup
수명 주기 단계를 사용합니다.참고
하나의
startup
또는run
수명 주기만 정의할 수 있습니다.다음 정보가 이 객체 또는 문자열에 있습니다.
Script
-
실행할 스크립트입니다.
RequiresPrivilege
-
(선택 사항) 루트 권한으로 스크립트를 실행할 수 있습니다. 이 옵션을 로 설정하면
true
AWS IoT Greengrass 코어 소프트웨어가이 구성 요소를 실행하도록 구성한 시스템 사용자 대신이 수명 주기 스크립트를 루트로 실행합니다. 기본값은false
입니다. Skipif
-
(선택 사항) 스크립트 실행 여부가 결정되는 확인입니다. 실행 파일이 경로에 있는지 또는 파일이 있는지 확인되도록 정의할 수 있습니다. 출력이 true라면 AWS IoT Greengrass 코어 소프트웨어에서는 단계를 건너뜁니다. 다음 확인 사항 중 하나를 선택합니다.
-
onpath
- 시스템 경로에 실행 가능이 있는지 확인합니다. 예를 들어, Python 3를 사용할 수 있으면runnable
onpath python3
를 사용하여 이 수명 주기 단계를 건너뜁니다. -
exists
– 파일이 있는지 확인합니다. 예를 들어,file
/tmp/my-configuration.db
가 있으면exists /tmp/my-configuration.db
를 사용하여 이 수명 주기 단계를 건너뜁니다.
-
Timeout
-
(선택 사항) AWS IoT Greengrass 코어 소프트웨어가 프로세스를 종료하기 전에 스크립트가 실행할 수 있는 초 단위 최대 시간입니다.
이 수명 주기 단계에는 기본적으로 제한 시간이 없습니다. 이 제한 시간을 생략하면 종료될 때까지
run
스크립트가 실행됩니다. Setenv
-
(선택 사항) 스크립트에 제공되는 환경 변수의 사전입니다.
Lifecycle.Setenv
에서 제공하는 변수가 이러한 환경 변수를 통해 재정의됩니다.
-
startup
-
(선택 사항) 구성 요소가 시작될 때 실행되는 백그라운드 프로세스가 정의되는 객체 또는 문자열입니다.
종속된 구성 요소가 시작될 수 있으려면 성공적으로 종료되거나 구성 요소의 상태가
RUNNING
으로 업데이트되어야 하는 명령을 실행하려면startup
을 사용합니다. 종료되지 않는 스크립트가 구성 요소에서 시작될 때 구성 요소의 상태를RUNNING
또는ERRORED
로 설정하려면 UpdateState IPC 작업을 사용합니다. 예를 들어/etc/init.d/mysqld start
로 MySQL 프로세스를 시작하는startup
단계를 정의할 수 있습니다.이 수명 주기 단계가 실행되면 구성 요소가
STARTING
상태로 전환됩니다.startup
스크립트가 성공 코드로 종료되면 구성 요소가RUNNING
상태로 전환됩니다. 그러면 종속된 구성 요소가 시작될 수 있습니다.수명 주기가
startup
인 구성 요소를 배포하면 이 수명 주기 스크립트가 종료되거나 상태가 보고된 후 코어 디바이스에서 배포가 완료로 보고될 수 있습니다. 즉, 배포의 상태는 모든 구성 요소의 시작 스크립트가 종료되거나 상태가 보고될 때까지IN_PROGRESS
입니다.참고
하나의
startup
또는run
수명 주기만 정의할 수 있습니다.다음 정보가 이 객체 또는 문자열에 있습니다.
Script
-
실행할 스크립트입니다.
RequiresPrivilege
-
(선택 사항) 루트 권한으로 스크립트를 실행할 수 있습니다. 이 옵션을 로 설정하면
true
AWS IoT Greengrass 코어 소프트웨어가이 구성 요소를 실행하도록 구성한 시스템 사용자 대신이 수명 주기 스크립트를 루트로 실행합니다. 기본값은false
입니다. Skipif
-
(선택 사항) 스크립트 실행 여부가 결정되는 확인입니다. 실행 파일이 경로에 있는지 또는 파일이 있는지 확인되도록 정의할 수 있습니다. 출력이 true라면 AWS IoT Greengrass 코어 소프트웨어에서는 단계를 건너뜁니다. 다음 확인 사항 중 하나를 선택합니다.
-
onpath
- 시스템 경로에 실행 가능이 있는지 확인합니다. 예를 들어, Python 3를 사용할 수 있으면runnable
onpath python3
를 사용하여 이 수명 주기 단계를 건너뜁니다. -
exists
– 파일이 있는지 확인합니다. 예를 들어,file
/tmp/my-configuration.db
가 있으면exists /tmp/my-configuration.db
를 사용하여 이 수명 주기 단계를 건너뜁니다.
-
Timeout
-
(선택 사항) AWS IoT Greengrass 코어 소프트웨어에서 프로세스가 종료되기 전에 스크립트가 실행될 수 있는 최대 시간(초)입니다.
기본값: 120초
Setenv
-
(선택 사항) 스크립트에 제공되는 환경 변수의 사전입니다.
Lifecycle.Setenv
에서 제공하는 변수가 이러한 환경 변수를 통해 재정의됩니다.
-
shutdown
-
(선택 사항) 구성 요소가 종료될 때 실행되는 스크립트가 정의되는 객체 또는 문자열입니다. 종료 수명 주기를 사용하여 구성 요소가
STOPPING
상태에 있을 때 실행하려는 코드를 실행합니다. 종료 수명 주기는startup
또는run
스크립트에서 시작된 프로세스를 중지하는 데 사용할 수 있습니다.startup
에서 백그라운드 프로세스를 시작하는 경우 구성 요소가 종료될 때shutdown
단계를 사용하여 해당 프로세스를 중지합니다. 예를 들어/etc/init.d/mysqld stop
로 MySQL 프로세스를 중지하는shutdown
단계를 정의할 수 있습니다.shutdown
스크립트는 구성 요소가STOPPING
상태로 전환된 된 후 실행됩니다. 스크립트가 완료되면 구성 요소가FINISHED
상태로 전환됩니다.다음 정보가 이 객체 또는 문자열에 있습니다.
Script
-
실행할 스크립트입니다.
RequiresPrivilege
-
(선택 사항) 루트 권한으로 스크립트를 실행할 수 있습니다. 이 옵션을 로 설정하면
true
AWS IoT Greengrass 코어 소프트웨어가이 구성 요소를 실행하도록 구성한 시스템 사용자 대신이 수명 주기 스크립트를 루트로 실행합니다. 기본값은false
입니다. Skipif
-
(선택 사항) 스크립트 실행 여부가 결정되는 확인입니다. 실행 파일이 경로에 있는지 또는 파일이 있는지 확인되도록 정의할 수 있습니다. 출력이 true라면 AWS IoT Greengrass 코어 소프트웨어에서는 단계를 건너뜁니다. 다음 확인 사항 중 하나를 선택합니다.
-
onpath
- 시스템 경로에 실행 가능이 있는지 확인합니다. 예를 들어, Python 3를 사용할 수 있으면runnable
onpath python3
를 사용하여 이 수명 주기 단계를 건너뜁니다. -
exists
– 파일이 있는지 확인합니다. 예를 들어,file
/tmp/my-configuration.db
가 있으면exists /tmp/my-configuration.db
를 사용하여 이 수명 주기 단계를 건너뜁니다.
-
Timeout
-
(선택 사항) AWS IoT Greengrass 코어 소프트웨어가 프로세스를 종료하기 전에 스크립트가 실행할 수 있는 초 단위 최대 시간입니다.
기본값: 15초
Setenv
-
(선택 사항) 스크립트에 제공되는 환경 변수의 사전입니다.
Lifecycle.Setenv
에서 제공하는 변수가 이러한 환경 변수를 통해 재정의됩니다.
-
recover
-
(선택 사항) 구성 요소에서 오류가 발생할 때 실행되는 스크립트가 정의되는 객체 또는 문자열입니다.
이 단계는 구성 요소가
ERRORED
상태로 전환되면 실행됩니다. 구성 요소가 복구되지 않고 세 번ERRORED
로 전환되면 구성 요소가BROKEN
상태로 변경됩니다.BROKEN
구성 요소를 해결하려면 다시 구성 요소를 배포해야 합니다.다음 정보가 이 객체 또는 문자열에 있습니다.
Script
-
실행할 스크립트입니다.
RequiresPrivilege
-
(선택 사항) 루트 권한으로 스크립트를 실행할 수 있습니다. 이 옵션을 로 설정하면
true
AWS IoT Greengrass 코어 소프트웨어가이 구성 요소를 실행하도록 구성한 시스템 사용자 대신이 수명 주기 스크립트를 루트로 실행합니다. 기본값은false
입니다. Skipif
-
(선택 사항) 스크립트 실행 여부가 결정되는 확인입니다. 실행 파일이 경로에 있는지 또는 파일이 있는지 확인되도록 정의할 수 있습니다. 출력이 true라면 AWS IoT Greengrass 코어 소프트웨어에서는 단계를 건너뜁니다. 다음 확인 사항 중 하나를 선택합니다.
-
onpath
- 시스템 경로에 실행 가능이 있는지 확인합니다. 예를 들어, Python 3를 사용할 수 있으면runnable
onpath python3
를 사용하여 이 수명 주기 단계를 건너뜁니다. -
exists
– 파일이 있는지 확인합니다. 예를 들어,file
/tmp/my-configuration.db
가 있으면exists /tmp/my-configuration.db
를 사용하여 이 수명 주기 단계를 건너뜁니다.
-
Timeout
-
(선택 사항) AWS IoT Greengrass 코어 소프트웨어가 프로세스를 종료하기 전에 스크립트가 실행할 수 있는 초 단위 최대 시간입니다.
기본값: 60초
Setenv
-
(선택 사항) 스크립트에 제공되는 환경 변수의 사전입니다.
Lifecycle.Setenv
에서 제공하는 변수가 이러한 환경 변수를 통해 재정의됩니다.
-
bootstrap
-
(선택 사항) AWS IoT Greengrass 코어 소프트웨어 또는 코어 디바이스가 다시 시작되어야 하는 스크립트가 재정의되는 객체 또는 문자열입니다. 그러면 예컨대 운영 체제 업데이트 또는 런타임 업데이트 설치 후 다시 시작이 수행되는 구성 요소를 개발할 수 있습니다.
참고
AWS IoT Greengrass 코어 소프트웨어 또는 디바이스를 다시 시작할 필요가 없는 업데이트 또는 종속성을 설치하려면 설치 수명 주기를 사용합니다.
이 수명 주기 단계는 AWS IoT Greengrass 코어 소프트웨어가 구성 요소를 배포하는 경우 설치 수명 주기 단계 전에 실행됩니다.
-
처음으로 구성 요소가 코어 디바이스에 배포됩니다.
-
구성 요소 변경 사항입니다.
-
구성 요소 구성 업데이트의 결과로 부트스트랩 스크립트가 변경됩니다.
AWS IoT Greengrass 코어 소프트웨어가 배포에 부트스트랩 단계가 있는 모든 구성 요소에 대해 부트스트랩 단계를 완료하면 소프트웨어가 다시 시작됩니다.
중요
AWS IoT Greengrass 코어 소프트웨어 또는 코어 디바이스를 다시 시작하려면 AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 구성해야 합니다. AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 구성하지 않으면 소프트웨어가 다시 시작되지 않습니다. 자세한 내용은 Greengrass nucleus를 시스템 서비스로 구성 단원을 참조하십시오.
다음 정보가 이 객체 또는 문자열에 있습니다.
BootstrapOnRollback
-
참고
이 특성이 활성화되면
BootstrapOnRollback
은 실패한 대상 배포의 일부로 부트스트랩 수명 주기 단계가 완료되었거나 실행이 시도되었던 구성 요소에 대해서만 실행됩니다. 이 기능은 Greengrass nucleus 버전 2.12.0 이상에 사용할 수 있습니다.(선택 사항) 롤백 배포의 일부로 부트스트랩 수명 주기 단계를 실행할 수 있습니다. 이 옵션을
true
로 설정하면 롤백 배포 내에 정의된 부트스트랩 수명 주기 단계가 실행됩니다. 배포에 실패하면 롤백 배포 동안 구성 요소 부트스트랩 수명 주기의 이전 버전이 다시 실행됩니다.기본값은
false
입니다. Script
-
실행할 스크립트입니다. 이 스크립트의 종료 코드를 통해 재시작 지침이 정의됩니다. 다음 종료 코드를 사용합니다.
-
0
- AWS IoT Greengrass 코어 소프트웨어 또는 코어 디바이스를 다시 시작하지 마세요. AWS IoT Greengrass 코어 소프트웨어는 모든 구성 요소가 부트스트랩된 후에도 계속 다시 시작됩니다. -
100
– AWS IoT Greengrass 코어 소프트웨어를 다시 시작하도록 요청합니다. -
101
– 코어 디바이스 재시작을 요청합니다.
종료 코드 100~199는 특수 동작용으로 예비되어 있습니다. 기타 종료 코드는 스크립트 오류를 나타냅니다.
-
RequiresPrivilege
-
(선택 사항) 루트 권한으로 스크립트를 실행할 수 있습니다. 이 옵션을 로 설정하면
true
AWS IoT Greengrass 코어 소프트웨어가이 구성 요소를 실행하도록 구성한 시스템 사용자 대신이 수명 주기 스크립트를 루트로 실행합니다. 기본값은false
입니다. Timeout
-
(선택 사항) AWS IoT Greengrass 코어 소프트웨어에서 프로세스가 종료되기 전에 스크립트가 실행될 수 있는 최대 시간(초)입니다.
기본값: 120초
Setenv
-
(선택 사항) 스크립트에 제공되는 환경 변수의 사전입니다.
Lifecycle.Setenv
에서 제공하는 변수가 이러한 환경 변수를 통해 재정의됩니다.
-
-
-
Selections
-
(선택 사항) 이 매니페스트에 대해 실행할 글로벌 수명 주기의 단원이 지정되는 선택 키 목록입니다. 글로벌 수명 주기에서는 수준과 관계없이 선택 키로 수명 주기 단계를 정의하여 수명 주기의 하위 단원을 선택할 수 있습니다. 그러면 코어 디바이스에서는 이 매니페스트의 선택 키와 일치하는 단원이 사용됩니다. 자세한 내용은 글로벌 수명 주기 예제를 참조하세요.
중요
코어 디바이스에서는 이 매니페스트에서 수명 주기가 지정되지 않는 경우에만 글로벌 수명 주기의 선택 사항이 사용됩니다.
all
선택 키를 지정하여 선택 키가 없는 글로벌 수명 주기의 단원을 실행할 수 있습니다. -
Artifacts
-
(선택 사항) 이 매니페스트에서 정의되는 플랫폼의 구성 요소에 대한 바이너리 아티팩트가 각각 정의되는 객체 목록입니다. 예를 들어 코드 또는 이미지를 아티팩트로 정의할 수 있습니다.
구성 요소가 배포되면 AWS IoT Greengrass 코어 소프트웨어는 코어 디바이스의 폴더에 아티팩트를 다운로드합니다. 다운로드 후 소프트웨어에서 추출되는 아카이브 파일로 아티팩트를 정의할 수도 있습니다.
레시피 변수를 사용하여 아티팩트가 코어 디바이스에 설치되는 폴더의 경로를 가져올 수 있습니다.
-
일반 파일 - 레시피 변수 artifacts:path를 사용하여 아티팩트가 있는 폴더의 경로를 가져옵니다. 예를 들어 레시피에
{artifacts:path}/my_script.py
를 지정하여 URIs3://amzn-s3-demo-bucket/path/to/my_script.py
가 있는 아티팩트의 경로를 가져옵니다. -
추출된 아카이브 - 레시피 변수 artifacts:decompressedPath를 사용하여, 추출된 아카이브 아티팩트가 있는 폴더의 경로를 가져옵니다. AWS IoT Greengrass 코어 소프트웨어는 각 아카이브를 아카이브와 동일한 이름의 폴더로 추출합니다. 예를 들어 레시피에
{artifacts:decompressedPath}/my_archive/my_script.py
를 지정하여 URIs3://amzn-s3-demo-bucket/path/to/my_archive.zip
가 있는 아카이브 아티팩트에서my_script.py
의 경로를 가져옵니다.
참고
로컬 코어 디바이스의 아카이브 아티팩트로 구성 요소를 개발하면 해당 아티팩트에 대한 URI가 없을 수 있습니다. 아티팩트를 추출하는
Unarchive
옵션으로 구성 요소를 테스트하려면 파일 이름이 아카이브 아티팩트 파일의 이름과 일치하는 URI를 지정합니다. 아카이브 아티팩트를 업로드하려는 URI를 지정하거나 새 자리 표시자 URI를 지정할 수 있습니다. 예를 들어, 로컬 배포 동안my_archive.zip
아티팩트를 추출하려면s3://amzn-s3-demo-bucket/my_archive.zip
을 지정할 수 있습니다.각 객체에는 다음 정보가 포함되어 있습니다.
Uri
-
S3 버킷에 있는 아티팩트의 URI입니다. AWS IoT Greengrass 코어 소프트웨어는 아티팩트가 디바이스에 이미 존재하지 않는 한 구성 요소가 설치될 때이 URI에서 아티팩트를 가져옵니다. 각 아티팩트에는 각 매니페스트 내에 고유한 파일 이름이 있어야 합니다.
Unarchive
-
(선택 사항) 압축을 풀 아카이브의 유형입니다. 다음 옵션 중 하나를 선택합니다.
-
NONE
- 파일은 압축을 풀 아카이브가 아닙니다. AWS IoT Greengrass 코어 소프트웨어에서는 코어 디바이스의 폴더에 아티팩트가 설치됩니다. artifacts:path 레시피 변수를 사용하여 이 폴더의 경로를 가져올 수 있습니다. -
ZIP
– 파일은 ZIP 아카이브입니다. AWS IoT Greengrass 코어 소프트웨어는 아카이브와 동일한 이름의 폴더로 아카이브를 추출합니다. artifacts:decompressedPath 레시피 변수를 사용하여 이 폴더가 있는 폴더의 경로를 가져올 수 있습니다.
기본값은
NONE
입니다. -
-
Permission
-
(선택 사항) 이 아티팩트 파일에 대해 설정할 액세스 권한이 정의되는 객체입니다. 읽기 권한과 실행 권한을 설정할 수 있습니다.
참고
AWS IoT Greengrass 코어 소프트웨어는 구성 요소가 아티팩트 폴더에서 아티팩트 파일을 편집하도록 허용하지 않으므로 쓰기 권한을 설정할 수 없습니다. 구성 요소에서 아티팩트 파일을 편집하려면 다른 위치에 복사하거나 새 아티팩트 파일을 게시하고 배포합니다.
아티팩트를 압축 해제할 아카이브로 정의하면 AWS IoT Greengrass 코어 소프트웨어는 아카이브에서 압축을 해제하는 파일에 대해 이러한 액세스 권한을 설정합니다. AWS IoT Greengrass 코어 소프트웨어는 폴더의 액세스 권한을
Read
및에ALL
대해 로 설정합니다Execute
. 그러면 구성 요소를 통해 폴더에서 압축 해제된 파일을 볼 수 있습니다. 아카이브의 개별 파일에 대한 권한을 설정하려면 설치 수명 주기 스크립트 에서 권한을 설정할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
Read
-
(선택 사항) 이 아티팩트 파일에 대해 설정할 읽기 권한입니다. 이 구성 요소에 종속되는 구성 요소와 같이 기타 구성 요소에 이 아티팩트 액세스를 허용하려면
ALL
을 지정합니다. 다음 옵션 중 하나를 선택합니다.-
NONE
– 파일을 읽을 수 없습니다. -
OWNER
- 이 구성 요소를 실행하도록 구성하는 시스템 사용자가 파일을 읽을 수 있습니다. -
ALL
– 모든 사용자가 파일을 읽을 수 있습니다.
기본값은
OWNER
입니다. -
Execute
-
(선택 사항) 이 아티팩트 파일에 대해 설정할 실행 권한입니다.
Execute
권한에는Read
권한이 수반됩니다. 예를 들어,ALL
에 대해Execute
을 지정하면 모든 사용자가 이 아티팩트 파일을 읽고 실행할 수 있습니다.다음 옵션 중 하나를 선택합니다.
-
NONE
- 파일을 실행할 수 없습니다. -
OWNER
- 구성 요소를 실행하도록 구성하는 시스템 사용자가 파일을 실행할 수 있습니다. -
ALL
- 모든 사용자가 파일을 실행할 수 있습니다.
기본값은
NONE
입니다. -
Digest
-
(읽기 전용) 아티팩트의 암호화 다이제스트 해시입니다. 구성 요소를 생성할 때는 해시 알고리즘을 AWS IoT Greengrass 사용하여 아티팩트 파일의 해시를 계산합니다. 그런 다음에 구성 요소를 배포할 때 Greengrass nucleus에서는 다운로드된 아티팩트의 해시가 계산되고 해시가 이 다이제스트와 비교되어 설치 전에 아티팩트가 확인됩니다. 해시가 다이제스트와 일치하지 않으면 배포에 실패합니다.
이 파라미터를 설정하면는 구성 요소를 생성할 때 설정한 값을 AWS IoT Greengrass 대체합니다.
Algorithm
-
(읽기 전용)가 아티팩트의 다이제스트 해시를 계산하는 데 AWS IoT Greengrass 사용하는 해시 알고리즘입니다.
이 파라미터를 설정하면는 구성 요소를 생성할 때 설정한 값을 AWS IoT Greengrass 대체합니다.
-
-
Lifecycle
-
구성 요소를 설치하고 실행하는 방법이 정의되는 객체입니다. 코어 디바이스에서는 사용되는 매니페스트에서 수명 주기가 지정되지 않는 경우에만 글로벌 수명 주기가 사용됩니다.
참고
매니페스트 외부에 이 수명 주기를 정의합니다. 매니페스트와 일치하는 플랫폼에 적용되는 매니페스트 수명 주기도 정의할 수 있습니다.
글로벌 수명 주기에서 각 매니페스트에서 지정하는 특정 선택 키에 대해 실행되는 수명 주기를 지정할 수 있습니다. 선택 키는 각 매니페스트에 대해 실행할 글로벌 수명 주기의 단원이 식별되는 문자열입니다.
all
선택 키는 선택 키가 없는 단원에 대한 기본값입니다. 즉, 선택 키가 없는 글로벌 수명 주기의 단원이 실행되도록 매니페스트의all
선택 키를 지정할 수 있습니다. 글로벌 수명 주기에서는all
선택 키를 지정할 필요가 없습니다.매니페스트에서 수명 주기 또는 선택 키가 정의되지 않으면 코어 디바이스에서는 기본적으로
all
선택이 사용됩니다. 즉, 이 경우에는 선택 키가 사용되지 않는 글로벌 수명 주기의 단원이 코어 디바이스에서 사용됩니다.이 객체에는 매니페스트 수명 주기와 동일한 정보가 있지만, 수준과 관계없이 선택 키를 지정하여 수명 주기의 하위 단원을 선택할 수 있습니다.
작은 정보
선택 키와 수명 주기 키가 충돌하지 않도록 각 선택 키에 소문자만 사용하는 것이 좋습니다. 수명 주기 키는 대문자로 시작합니다.
예 최상위 선택 키가 있는 글로벌 수명 주기 예제
Lifecycle: key1: install: SkipIf: either onpath
executable
or existsfile
Script: command1 key2: install: Script: command2 all: install: Script: command3예 최하위 선택 키가 있는 글로벌 수명 주기 예제
Lifecycle: install: Script: key1: command1 key2: command2 all: command3
예 여러 수준의 선택 키가 있는 글로벌 수명 주기 예제
Lifecycle: key1: install: SkipIf: either onpath
executable
or existsfile
Script: command1 key2: install: Script: command2 all: install: Script: key3: command3 key4: command4 all: command5
레시피 변수
레시피 변수에서는 레시피에서 사용할 현재 구성 요소 및 nucleus의 정보가 노출됩니다. 예를 들어 레시피 변수를 사용하여 수명 주기 스크립트에서 실행하는 애플리케이션에 구성 요소 구성 파라미터를 전달할 수 있습니다.
구성 요소 레시피의 다음 단원에서 레시피 변수를 사용할 수 있습니다.
-
수명 주기 정의입니다.
-
Greengrass nucleus v2.6.0 이상을 사용하고 interpolateComponentConfiguration 구성 옵션을
true
로 설정하는 경우의 구성 요소 구성 정의입니다. 구성 요소 구성 업데이트 배포 시 레시피 변수를 사용할 수도 있습니다.
레시피 변수에는{recipe_variable}
구문이 사용됩니다. 중괄호는 레시피 변수를 나타냅니다.
AWS IoT Greengrass 는 다음 레시피 변수를 지원합니다.
component_dependency_name
:configuration:json_pointer
-
이 레시피에서 정의되는 구성 요소 또는 이 구성 요소가 종속되는 구성 요소에 대한 구성 파라미터의 값입니다.
이 변수를 사용하여 구성 요소 수명 주기에서 실행하는 스크립트에 파라미터를 제공할 수 있습니다.
참고
AWS IoT Greengrass 는 구성 요소 수명 주기 정의에서만이 레시피 변수를 지원합니다.
이 레시피 변수에는 다음 입력이 있습니다.
-
component_dependency_name
– (선택 사항) 쿼리할 구성 요소 종속성의 이름입니다. 이 레시피에서 정의되는 구성 요소를 쿼리하려면 이 세그먼트를 생략합니다. 직접 종속성만 지정할 수 있습니다. -
json_pointer
– 평가할 구성 값에 대한 JSON 포인터입니다. JSON 포인터는 슬래시(/
)로 시작합니다. 중첩된 구성 요소 구성에서 값을 식별하려면 슬래시(/
)를 사용하여 구성의 각 수준에 대한 키를 구분합니다. 숫자를 키로 사용하여 목록에서 인덱스를 지정할 수 있습니다. 자세한 내용은 JSON 포인터 사양을 참조하세요. AWS IoT Greengrass 코어는 YAML 형식의 레시피에 JSON 포인터를 사용합니다.
JSON 포인터에서는 다음 노드 유형이 참조될 수 있습니다.
-
value node. AWS IoT Greengrass Core는 레시피 변수를 값의 문자열 표현으로 대체합니다. Null 값은 문자열인
null
로 변환됩니다. -
object node. AWS IoT Greengrass Core는 레시피 변수를 해당 객체의 직렬화된 JSON 문자열 표현으로 대체합니다.
-
No node. AWS IoT Greengrass Core는 레시피 변수를 대체하지 않습니다.
예를 들어
{configuration:/Message}
레시피 변수에서는 구성 요소 구성에 있는Message
키 값이 검색됩니다.{com.example.MyComponentDependency:configuration:/server/port}
레시피 변수에서는 구성 요소 종속성의server
구성 객체port
에 있는 값이 검색됩니다. -
-
component_dependency_name
:artifacts:path -
이 레시피에서 정의되는 구성 요소 또는 이 구성 요소가 종속되는 구성 요소에 대한 아티팩트의 루트 경로입니다.
구성 요소가 설치되면는 구성 요소의 아티팩트를이 변수가 노출하는 폴더에 AWS IoT Greengrass 복사합니다. 예를 들어 이 변수를 사용하여 구성 요소 수명 주기에서 실행할 스크립트의 위치를 식별할 수 있습니다.
이 경로의 폴더는 읽기 전용입니다. 아티팩트 파일을 수정하려면 파일을 현재 작업 디렉터리(
$PWD
또는.
)와 같은 다른 위치에 복사합니다. 그런 다음에 거기에서 파일을 수정합니다.구성 요소 종속성에서 아티팩트를 읽거나 실행하려면 해당 아티팩트
Read
또는Execute
권한이ALL
로 되어야 합니다. 자세한 내용은 구성 요소 레시피에서 정의하는 아티팩트 권한을 참조하세요.이 레시피 변수에는 다음 입력이 있습니다.
-
component_dependency_name
– (선택 사항) 쿼리할 구성 요소 종속성의 이름입니다. 이 레시피에서 정의되는 구성 요소를 쿼리하려면 이 세그먼트를 생략합니다. 직접 종속성만 지정할 수 있습니다.
-
-
component_dependency_name
:artifacts:decompressedPath -
이 레시피에서 정의되는 구성 요소 또는 이 구성 요소가 종속되는 구성 요소에 대한 압축 해제된 아카이브 아티팩트의 루트 경로입니다.
구성 요소가 설치되면는 구성 요소의 아카이브 아티팩트를이 변수가 노출하는 폴더에 압축을 AWS IoT Greengrass 풉니다. 예를 들어 이 변수를 사용하여 구성 요소 수명 주기에서 실행할 스크립트의 위치를 식별할 수 있습니다.
각 아티팩트는 압축명을 제외한 아티팩트와 이름이 동일한 폴더인 압축 해제된 경로 내의 폴더에 압축이 풀립니다. 예를 들어
models.zip
이라는 ZIP 아티팩트는{artifacts:decompressedPath}/models
폴더에 압축이 풀립니다.이 경로의 폴더는 읽기 전용입니다. 아티팩트 파일을 수정하려면 파일을 현재 작업 디렉터리(
$PWD
또는.
)와 같은 다른 위치에 복사합니다. 그런 다음에 거기에서 파일을 수정합니다.구성 요소 종속성에서 아티팩트를 읽거나 실행하려면 해당 아티팩트
Read
또는Execute
권한이ALL
로 되어야 합니다. 자세한 내용은 구성 요소 레시피에서 정의하는 아티팩트 권한을 참조하세요.이 레시피 변수에는 다음 입력이 있습니다.
-
component_dependency_name
– (선택 사항) 쿼리할 구성 요소 종속성의 이름입니다. 이 레시피에서 정의되는 구성 요소를 쿼리하려면 이 세그먼트를 생략합니다. 직접 종속성만 지정할 수 있습니다.
-
-
component_dependency_name
:work:path -
이 기능은 Greengrass nucleus 구성 요소의 v2.0.4 이상에서 사용할 수 있습니다.
이 레시피에서 정의되는 구성 요소 또는 이 구성 요소가 종속되는 구성 요소에 대한 작업 경로입니다. 이 레시피 변수의 값은 구성 요소의 컨텍스트에서 실행될 때
$PWD
환경 변수의 출력 및 pwd명령과 동일합니다. 이 레시피 변수를 사용하여 구성 요소와 종속성 사이에 파일을 공유할 수 있습니다.
이 경로의 폴더는 이 레시피에서 정의되는 구성 요소 및 동일한 사용자 및 그룹으로 실행되는 다른 구성 요소에서 읽을 수 있고 쓸 수 있습니다.
이 레시피 변수에는 다음 입력이 있습니다.
-
component_dependency_name
– (선택 사항) 쿼리할 구성 요소 종속성의 이름입니다. 이 레시피에서 정의되는 구성 요소를 쿼리하려면 이 세그먼트를 생략합니다. 직접 종속성만 지정할 수 있습니다.
-
kernel:rootPath
-
AWS IoT Greengrass 코어 루트 경로입니다.
iot:thingName
-
이 기능은 Greengrass nucleus 구성 요소의 v2.3.0 이상에서 사용할 수 있습니다.
코어 디바이스 사물의 이름입니다 AWS IoT .
레시피 예제
다음 레시피 예제를 참조하면 구성 요소에 대한 레시피를 생성하는 데 도움이 될 수 있습니다.
AWS IoT Greengrass 는 Greengrass 소프트웨어 카탈로그라는 Greengrass 구성 요소의 인덱스를 큐레이션합니다. 이 카탈로그에서는 Greengrass 커뮤니티에서 개발하는 Greengrass 구성 요소가 추적됩니다. 이 카탈로그에서 구성 요소를 다운로드, 수정 및 배포하여 Greengrass 애플리케이션을 생성할 수 있습니다. 자세한 내용은 커뮤니티 구성 요소 단원을 참조하십시오.
Hello World 구성 요소 레시피
다음 레시피에서는 Python 스크립트가 실행되는 Hello World 구성 요소가 설명됩니다. 이 구성 요소에서는 모든 플랫폼이 지원되고 Python 스크립트에 대한 인수로 AWS IoT Greengrass
에서 전달되는 Message
파라미터가 수락됩니다. 이는 시작하기 자습서의 Hello World 구성 요소에 대한 레시피입니다.
Python 런타임 구성 요소 예제
다음 레시피에서는 Python이 설치되는 구성 요소가 설명됩니다. 이 구성 요소에서는 64비트 Linux 디바이스가 지원됩니다.
여러 가지 필드가 지정되는 구성 요소 레시피
다음 구성 요소 레시피에서는 여러 가지 레시피 필드가 사용됩니다.