기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
로컬 배포 및 구성 요소 관리
참고
이 기능은 Greengrass nucleus 구성 요소의 v2.6.0 이상에서 사용할 수 있습니다.
Greengrass CLI IPC 서비스를 사용하여 코어 디바이스에서 로컬 배포 및 Greengrass 구성 요소를 관리할 수 있습니다.
이러한 IPC 작업을 사용하려면 Greengrass CLI 구성 요소 버전 2.6.0 이상을 사용자 지정 구성 요소에 종속성으로 포함합니다. 그런 다음 사용자 지정 구성 요소에서 IPC 작업을 사용하여 다음을 수행할 수 있습니다.
-
로컬 배포를 생성하여 코어 디바이스에서 Greengrass 구성 요소를 수정하고 구성합니다.
-
코어 디바이스에서 Greengrass 구성 요소를 다시 시작하고 중지합니다.
-
로컬 디버그 콘솔 에 로그인하는 데 사용할 수 있는 암호를 생성합니다.
주제
최소 SDK 버전
다음 표에는 Greengrass CLI IPC 서비스와 상호 작용하는 데 사용할 수 있는 SDKs의 최소 버전이 나열되어 있습니다.
| SDK | 최소 버전 |
|---|---|
|
v1.0.0 |
|
|
v1.2.10 |
|
|
v1.5.3 |
|
|
v1.17.0 |
|
|
v1.12.0 |
권한 부여
사용자 지정 구성 요소에서 Greengrass CLI IPC 서비스를 사용하려면 구성 요소가 로컬 배포 및 구성 요소를 관리할 수 있도록 허용하는 권한 부여 정책을 정의해야 합니다. 권한 부여 정책 정의에 대한 자세한 내용은 구성 요소에 IPC 작업을 수행할 수 있는 권한 부여 섹션을 참조하세요.
Greengrass CLI에 대한 권한 부여 정책에는 다음 속성이 있습니다.
IPC 서비스 식별자: aws.greengrass.Cli
| 연산 | 설명 | 리소스 |
|---|---|---|
|
|
구성 요소가 코어 디바이스에서 로컬 배포를 생성할 수 있도록 허용합니다. |
|
|
|
구성 요소가 코어 디바이스의 로컬 배포를 나열할 수 있도록 허용합니다. |
|
|
|
구성 요소가 코어 디바이스에서 로컬 배포 상태를 가져올 수 있도록 허용합니다. |
로컬 배포 ID 또는 모든 로컬 배포에 대한 액세스를 허용하려면 |
|
|
구성 요소가 코어 디바이스의 구성 요소를 나열할 수 있도록 허용합니다. |
|
|
|
구성 요소가 코어 디바이스의 구성 요소에 대한 세부 정보를 가져올 수 있도록 허용합니다. |
구성 요소 이름(예: |
|
|
구성 요소가 코어 디바이스에서 구성 요소를 다시 시작할 수 있도록 허용합니다. |
구성 요소 이름(예: |
|
|
구성 요소가 코어 디바이스에서 구성 요소를 중지할 수 있도록 허용합니다. |
구성 요소 이름(예: |
|
|
구성 요소가 로컬 디버그 콘솔 구성 요소에 로그인하는 데 사용할 암호를 생성할 수 있도록 허용합니다. |
|
예권한 부여 정책 예제
다음 권한 부여 정책 예제에서는 구성 요소가 로컬 배포를 생성하고, 모든 로컬 배포 및 구성 요소를 보고, com.example.HelloWorld라는 구성 요소를 다시 시작하고 중지할 수 있도록 허용합니다.
{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }
CreateLocalDeployment
지정된 구성 요소 레시피, 아티팩트 및 런타임 인수를 사용하여 로컬 배포를 생성하거나 업데이트합니다.
이 작업은 Greengrass CLI의 deployment create 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에서는 다음 파라미터를 사용합니다.
recipeDirectoryPath(Python:recipe_directory_path)-
(선택 사항) 구성 요소 레시피 파일이 포함된 폴더의 절대 경로입니다.
artifactsDirectoryPath(Python:artifacts_directory_path)-
(선택 사항) 배포에 포함할 아티팩트 파일이 포함된 폴더의 절대 경로입니다. 아티팩트 폴더에는 다음 폴더 구조를 포함해야 합니다.
/path/to/artifact/folder/component-name/component-version/artifacts rootComponentVersionsToAdd(Python:root_component_versions_to_add)-
(선택 사항) 코어 디바이스에 설치할 구성 요소 버전입니다. 이 객체
ComponentToVersionMap는 다음 키-값 페어를 포함하는 맵입니다.key-
구성 요소의 이름입니다.
value-
구성 요소의 버전입니다.
rootComponentsToRemove(Python:root_components_to_remove)-
(선택 사항) 코어 디바이스에서 제거할 구성 요소입니다. 각 항목이 구성 요소의 이름인 목록을 지정합니다.
componentToConfiguration(Python:component_to_configuration)-
(선택 사항) 배포의 각 구성 요소에 대한 구성 업데이트입니다. 이 객체
ComponentToConfiguration는 다음 키-값 페어를 포함하는 맵입니다.key-
구성 요소의 이름입니다.
value-
구성 요소에 대한 구성 업데이트 JSON 객체입니다. JSON 객체는 다음 형식이어야 합니다.
{ "MERGE": { "config-key": "config-value" }, "RESET": [ "path/to/reset/" ] }구성 업데이트에 대한 자세한 내용은 구성 요소 구성 업데이트 섹션을 참조하세요.
componentToRunWithInfo(Python:component_to_run_with_info)-
(선택 사항) 배포의 각 구성 요소에 대한 런타임 구성입니다. 이 구성에는 각 구성 요소의 프로세스를 소유하는 시스템 사용자와 각 구성 요소에 적용할 시스템 제한이 포함됩니다. 이 객체
ComponentToRunWithInfo는 다음 키-값 페어를 포함하는 맵입니다.key-
구성 요소의 이름입니다.
value-
구성 요소의 런타임 구성입니다. 런타임 구성 파라미터를 생략하면 AWS IoT Greengrass 코어 소프트웨어는 Greengrass nucleus에서 구성한 기본값을 사용합니다. 이 객체
RunWithInfo에는 다음 정보가 포함됩니다.posixUser(Python:posix_user)-
(선택 사항) Linux 코어 디바이스에서 이 구성 요소를 실행하는 데 사용할 POSIX 시스템 사용자와 그룹(선택 사항)입니다. 사용자와 그룹(지정된 경우)이 각 Linux 코어 디바이스에 있어야 합니다.
user:group형식으로 사용자와 그룹을 콜론(:)으로 구분하여 지정합니다. 그룹은 선택 사항입니다. 그룹을 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 사용자의 기본 그룹을 사용합니다. 자세한 내용은 단원을 참조하십시오구성 요소를 실행하는 사용자 구성. windowsUser(Python:windows_user)-
(선택 사항) Windows 코어 디바이스에서 이 구성 요소를 실행하는 데 사용할 Windows 사용자입니다. 사용자가 각 Windows 코어 디바이스에 있어야 하며, 해당 이름과 암호가 LocalSystem 계정의 Credentials Manager 인스턴스에 저장되어야 합니다. 자세한 내용은 구성 요소를 실행하는 사용자 구성 섹션을 참조하세요.
systemResourceLimits(Python:system_resource_limits)-
(선택 사항) 이 구성 요소의 프로세스에 적용할 시스템 리소스 제한입니다. 기본적으로 일반 및 컨테이너화되지 않은 Lambda 구성 요소에 시스템 리소스 제한을 적용할 수 있습니다. 자세한 내용은 단원을 참조하십시오구성 요소에 대한 시스템 리소스 제한 구성.
AWS IoT Greengrass 는 현재 Windows 코어 디바이스에서이 기능을 지원하지 않습니다.
이 객체
SystemResourceLimits에는 다음 정보가 포함됩니다.cpus-
(선택 사항) 이 구성 요소의 프로세스가 코어 디바이스에서 사용할 수 있는 최대 CPU 시간입니다. 코어 디바이스의 총 CPU 시간은 디바이스의 CPU 코어 수와 같습니다. 예를 들어 CPU 코어가 4개인 코어 디바이스에서 이 값을
2로 설정하여 이 구성 요소 프로세스를 각 CPU 코어의 50% 사용량으로 제한할 수 있습니다. CPU 코어가 1개인 디바이스에서 이 값을0.25로 설정하여 이 구성 요소 프로세스를 CPU의 25% 사용량으로 제한할 수 있습니다. 이 값을 CPU 코어 수보다 큰 수로 설정하면 AWS IoT Greengrass 코어 소프트웨어가 구성 요소의 CPU 사용량을 제한하지 않습니다. memory-
(선택 사항) 이 구성 요소의 프로세스가 코어 디바이스에서 사용할 수 있는 최대 RAM(KB 단위)입니다.
groupName(Python:group_name)-
(선택 사항) 이 배포에서 대상으로 지정할 사물 그룹의 이름입니다.
failureHandlingPolicy(Python:failure_handling_policy)-
(선택 사항) 배포가 실패할 경우 AWS IoT Greengrass 코어 소프트웨어가 응답하는 방식을 결정하는 실패 처리 정책입니다.
ROLLBACK-
배포에 실패하면 코어 디바이스가 이전 구성으로 롤백됩니다.
DO_NOTHING-
코어 디바이스는 실패한 배포의 변경 사항을 유지합니다.
참고
AWS IoT Greengrass 코어 소프트웨어는 부트스트랩 배포에 대한 실패 처리 정책을 무시합니다. 부트스트랩 배포는 Greengrass nucleus 버전을 업데이트하거나 부트스트랩 수명 주기 단계가 있는 구성 요소를 포함합니다. 부트스트랩 배포에 실패하면 코어 디바이스가 이전 구성으로 롤백됩니다. 롤백은 실패 처리 정책을 로 설정한 경우에도 발생합니다
DO_NOTHING.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
deploymentId(Python:deployment_id)-
요청이 생성한 로컬 배포의 ID입니다.
ListLocalDeployments
마지막 10개 로컬 배포의 상태를 가져옵니다.
이 작업은 Greengrass CLI의 deployment list 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 파라미터가 없습니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
localDeployments(Python:local_deployments)-
로컬 배포 목록입니다. 이 목록의 각 객체는
LocalDeployment객체이며, 여기에는 다음 정보가 포함됩니다.deploymentId(Python:deployment_id)-
로컬 배포의 ID입니다.
status-
로컬 배포의 상태입니다. 이 열거형
DeploymentStatus의 값은 다음과 같습니다.-
QUEUED -
IN_PROGRESS -
SUCCEEDED -
FAILED
-
GetLocalDeploymentStatus
로컬 배포의 상태를 가져옵니다.
이 작업은 Greengrass CLI의 deployment status 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에서는 다음 파라미터를 사용합니다.
deploymentId(Python:deployment_id)-
가져올 로컬 배포의 ID입니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
deployment-
로컬 배포입니다. 이 객체
LocalDeployment에는 다음 정보가 포함됩니다.deploymentId(Python:deployment_id)-
로컬 배포의 ID입니다.
status-
로컬 배포의 상태입니다. 이 열거형
DeploymentStatus의 값은 다음과 같습니다.-
QUEUED -
IN_PROGRESS -
SUCCEEDED -
FAILED
-
ListComponents
코어 디바이스에서 각 루트 구성 요소의 이름, 버전, 상태 및 구성을 가져옵니다. 루트 구성 요소는 배포에서 지정하는 구성 요소입니다. 이 응답에는 다른 구성 요소의 종속성으로 설치된 구성 요소는 포함되지 않습니다.
이 작업은 Greengrass CLI의 component list 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 파라미터가 없습니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
components-
코어 디바이스의 루트 구성 요소 목록입니다. 이 목록의 각 객체는
ComponentDetails객체이며, 여기에는 다음 정보가 포함됩니다.componentName(Python:component_name)-
구성 요소의 이름입니다.
version-
구성 요소의 버전입니다.
state-
구성 요소의 상태입니다. 이 상태는 다음 중 하나일 수 있습니다.
-
BROKEN -
ERRORED -
FINISHED -
INSTALLED -
NEW -
RUNNING -
STARTING -
STOPPING
-
configuration-
JSON 객체인 구성 요소의 구성입니다.
GetComponentDetails
코어 디바이스에서 구성 요소의 버전, 상태 및 구성을 가져옵니다.
이 작업은 Greengrass CLI의 component details 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에서는 다음 파라미터를 사용합니다.
componentName(Python:component_name)-
가져올 구성 요소의 이름입니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
componentDetails(Python:component_details)-
구성 요소의 세부 정보입니다. 이 객체
ComponentDetails에는 다음 정보가 포함됩니다.componentName(Python:component_name)-
구성 요소의 이름입니다.
version-
구성 요소의 버전입니다.
state-
구성 요소의 상태입니다. 이 상태는 다음 중 하나일 수 있습니다.
-
BROKEN -
ERRORED -
FINISHED -
INSTALLED -
NEW -
RUNNING -
STARTING -
STOPPING
-
configuration-
JSON 객체인 구성 요소의 구성입니다.
RestartComponent
코어 디바이스에서 구성 요소를 다시 시작합니다.
참고
어느 구성 요소든 다시 시작할 수 있지만 일반 구성 요소만 다시 시작하는 것이 좋습니다.
이 작업은 Greengrass CLI의 component restart 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에서는 다음 파라미터를 사용합니다.
componentName(Python:component_name)-
구성 요소의 이름입니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
restartStatus(Python:restart_status)-
다시 시작 요청의 상태입니다. 요청 상태는 다음 중 하나일 수 있습니다.
-
SUCCEEDED -
FAILED
-
message-
요청이 실패한 경우 구성 요소를 다시 시작하지 못한 이유에 대한 메시지입니다.
예제
다음 예제에서는 사용자 지정 구성 요소 코드에서 이 작업을 직접 호출하는 방법을 보여줍니다.
StopComponent
코어 디바이스에서 구성 요소의 프로세스를 중지합니다.
참고
어느 구성 요소든 중지할 수 있지만 일반 구성 요소만 중지하는 것이 좋습니다.
이 작업은 Greengrass CLI의 component stop 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에서는 다음 파라미터를 사용합니다.
componentName(Python:component_name)-
구성 요소의 이름입니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
stopStatus(Python:stop_status)-
중지 요청의 상태입니다. 요청 상태는 다음 중 하나일 수 있습니다.
-
SUCCEEDED -
FAILED
-
message-
요청이 실패한 경우 구성 요소를 중지하지 못한 이유에 대한 메시지입니다.
CreateDebugPassword
로컬 디버그 콘솔 구성 요소에 로그인하는 데 사용할 수 있는 임의 암호를 생성합니다. 암호는 생성되고 8시간 후에 만료됩니다.
이 작업은 Greengrass CLI의 get-debug-password 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 파라미터가 없습니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
username-
로그인에 사용할 사용자 이름입니다.
password-
로그인에 사용할 암호입니다.
passwordExpiration(Python:password_expiration)-
암호가 만료되는 시간입니다.
certificateSHA256Hash(Python:certificate_sha256_hash)-
HTTPS가 활성화된 경우 로컬 디버그 콘솔에서 사용하는 자체 서명된 인증서의 SHA-256 지문입니다. 로컬 디버그 콘솔을 열 때 이 지문을 사용하여 인증서가 합법적이고 연결이 안전한지 확인합니다.
certificateSHA1Hash(Python:certificate_sha1_hash)-
HTTPS가 활성화된 경우 로컬 디버그 콘솔에서 사용하는 자체 서명된 인증서의 SHA-1 지문입니다. 로컬 디버그 콘솔을 열 때 이 지문을 사용하여 인증서가 합법적이고 연결이 안전한지 확인합니다.