기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
로컬 배포 및 구성 요소 관리
Greengrass CLI IPC 서비스를 사용하여 코어 디바이스의 로컬 배포 및 그린그래스 구성 요소를 관리할 수 있습니다.
이러한 IPC 작업을 사용하려면 Greengrass CLI 구성 요소 버전 2.6.0 이상을 사용자 지정 구성 요소의 종속 항목으로 포함해야 합니다. 그런 다음 사용자 지정 구성 요소에서 IPC 작업을 사용하여 다음을 수행할 수 있습니다.
-
로컬 배포를 생성하여 코어 디바이스의 Greengrass 구성 요소를 수정 및 구성합니다.
-
코어 디바이스에서 Greengrass 구성 요소를 다시 시작하고 중지합니다.
-
로컬 디버그 콘솔에 로그인하는 데 사용할 수 있는 암호를 생성합니다.
주제
최소 SDK 버전
다음 표에는 Greengrass CLI IPC 서비스와 상호 작용하는 데 사용해야 AWS IoT Device SDK 하는 최소 버전이 나와 있습니다.
SDK | 최소 버전 |
---|---|
v1.2.10 |
|
v1.5.3 |
|
v1.17.0 |
|
v1.12.0 |
권한 부여
사용자 지정 구성 요소에서 Greengrass CLI IPC 서비스를 사용하려면 구성 요소가 로컬 배포 및 구성 요소를 관리할 수 있도록 허용하는 권한 부여 정책을 정의해야 합니다. 권한 부여 정책 정의에 대한 자세한 내용은 을 참조하십시오. 구성 요소가 작업을 수행할 수 있도록 승인하십시오. IPC
Greengrass CLI의 권한 부여 정책에는 다음과 같은 속성이 있습니다.
IPC 서비스 식별자: aws.greengrass.Cli
Operation | 설명 | 리소스 |
---|---|---|
|
구성 요소가 코어 기기에 로컬 배포를 생성할 수 있도록 합니다. |
|
|
구성 요소가 코어 장치의 로컬 배포를 나열할 수 있도록 허용합니다. |
|
|
구성 요소가 코어 장치의 로컬 배포 상태를 가져올 수 있도록 합니다. |
로컬 배포 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의 배포 생성 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 다음과 같은 파라미터가 있습니다.
recipeDirectoryPath
(Python:recipe_directory_path
)-
(선택 사항) 구성 요소 레시피 파일이 들어 있는 폴더의 절대 경로입니다.
artifactDirectoryPath
(Python:artifact_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 Core 소프트웨어는 Greengrass 핵에 구성한 기본값을 사용합니다. 이 개체
RunWithInfo
, 에는 다음 정보가 들어 있습니다.posixUser
(Python:posix_user
)-
(선택 사항) Linux 코어 기기에서 이 구성 요소를 실행하는 데 사용할 POSIX 시스템 사용자 및 그룹 (선택 사항) 사용자 및 그룹 (지정된 경우) 은 각 Linux 코어 장치에 존재해야 합니다.
user:group
형식으로 사용자와 그룹을 콜론(:
)으로 구분하여 지정합니다. 그룹은 선택 사항입니다. 그룹을 지정하지 않으면 AWS IoT Greengrass Core 소프트웨어는 사용자의 기본 그룹을 사용합니다. 자세한 내용은 구성 요소를 실행하는 사용자를 구성하십시오. 단원을 참조하세요. windowsUser
(Python:windows_user
)-
(선택 사항) Windows 코어 장치에서 이 구성 요소를 실행하는 데 사용할 Windows 사용자입니다. 사용자는 각 Windows 코어 장치에 존재해야 하며 사용자 이름과 암호는 LocalSystem 계정의 자격 증명 관리자 인스턴스에 저장되어 있어야 합니다. 자세한 내용은 구성 요소를 실행하는 사용자를 구성하십시오. 단원을 참조하세요.
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 코어 수보다 큰 수로 설정하는 경우 Core 소프트웨어는 구성 요소의 CPU 사용량을 제한하지 않습니다. memory
-
(선택 사항) 이 구성 요소의 프로세스가 코어 장치에서 사용할 수 있는 최대 RAM 크기 (KB) 입니다.
groupName
(Python:group_name
)-
(선택 사항) 이 배포에서 대상으로 지정할 사물 그룹의 이름.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
deploymentId
(Python:deployment_id
)-
요청으로 생성된 로컬 배포의 ID.
ListLocalDeployments
최근 10개 로컬 배포의 상태를 가져옵니다.
이 작업은 Greengrass CLI의 배포 목록 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 파라미터가 없습니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
localDeployments
(Python:local_deployments
)-
로컬 배포 목록. 이 목록의 각 개체는 다음
LocalDeployment
정보를 포함하는 개체입니다.deploymentId
(Python:deployment_id
)-
로컬 디플로이먼트의 ID.
status
-
로컬 배포 상태. 이
DeploymentStatus
열거형의 값은 다음과 같습니다.-
QUEUED
-
IN_PROGRESS
-
SUCCEEDED
-
FAILED
-
GetLocalDeploymentStatus
로컬 배포 상태를 가져옵니다.
이 작업은 Greengrass CLI의 배포 상태 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 다음과 같은 파라미터가 있습니다.
deploymentId
(Python:deployment_id
)-
가져올 로컬 디플로이먼트의 ID.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
deployment
-
로컬 배포. 이 개체
LocalDeployment
, 에는 다음 정보가 들어 있습니다.deploymentId
(Python:deployment_id
)-
로컬 디플로이먼트의 ID.
status
-
로컬 배포 상태. 이
DeploymentStatus
열거형의 값은 다음과 같습니다.-
QUEUED
-
IN_PROGRESS
-
SUCCEEDED
-
FAILED
-
ListComponents
코어 디바이스에 있는 각 루트 구성 요소의 이름, 버전, 상태 및 구성을 가져옵니다. 루트 구성 요소는 배포 시 지정하는 구성 요소입니다. 이 응답에는 다른 구성 요소의 종속성으로 설치된 구성 요소는 포함되지 않습니다.
이 작업은 Greengrass CLI의 구성 요소 목록 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 파라미터가 없습니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
components
-
코어 디바이스의 루트 구성 요소 목록. 이 목록의 각 개체는 다음 정보를 포함하는
ComponentDetails
개체입니다.componentName
(Python:component_name
)-
구성 요소의 이름입니다.
version
-
구성 요소의 버전입니다.
state
-
컴포넌트의 상태. 이 상태는 다음 중 하나일 수 있습니다.
-
BROKEN
-
ERRORED
-
FINISHED
-
INSTALLED
-
NEW
-
RUNNING
-
STARTING
-
STOPPING
-
configuration
-
JSON 객체로서의 구성 요소 구성
GetComponentDetails
코어 기기에 있는 구성 요소의 버전, 상태 및 구성을 가져옵니다.
이 작업은 Greengrass CLI의 구성 요소 세부 정보 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 다음과 같은 파라미터가 있습니다.
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의 구성 요소 재시작 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 다음과 같은 파라미터가 있습니다.
componentName
(Python:component_name
)-
구성 요소의 이름입니다.
응답
이 작업의 응답에는 다음 정보가 포함됩니다.
restartStatus
(Python:restart_status
)-
재시작 요청 상태. 요청 상태는 다음 중 하나일 수 있습니다.
-
SUCCEEDED
-
FAILED
-
message
-
요청이 실패한 경우 구성 요소를 다시 시작하지 못한 이유에 대한 메시지입니다.
StopComponent
코어 디바이스에서 구성 요소의 프로세스를 중지합니다.
참고
모든 구성 요소를 중지할 수 있지만 일반 구성 요소만 중지하는 것이 좋습니다.
이 작업은 Greengrass CLI의 구성 요소 중지 명령과 동일한 기능을 제공합니다.
요청
이 작업의 요청에는 다음과 같은 파라미터가 있습니다.
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 지문입니다. 로컬 디버그 콘솔을 열 때 이 지문을 사용하여 인증서가 합법적이고 연결이 안전한지 확인하십시오.