로컬 배포 및 구성 요소 관리 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

로컬 배포 및 구성 요소 관리

참고

이 기능은 Greengrass nucleus 구성 요소의 v2.6.0 이상에서 사용할 수 있습니다.

Greengrass CLI IPC 서비스를 사용하여 코어 디바이스에서 로컬 배포 및 Greengrass 구성 요소를 관리할 수 있습니다.

이러한 IPC 작업을 사용하려면 Greengrass CLI 구성 요소 버전 2.6.0 이상을 사용자 지정 구성 요소에 종속성으로 포함합니다. 그런 다음 사용자 지정 구성 요소에서 IPC 작업을 사용하여 다음을 수행할 수 있습니다.

  • 로컬 배포를 생성하여 코어 디바이스에서 Greengrass 구성 요소를 수정하고 구성합니다.

  • 코어 디바이스에서 Greengrass 구성 요소를 다시 시작하고 중지합니다.

  • 로컬 디버그 콘솔 에 로그인하는 데 사용할 수 있는 암호를 생성합니다.

최소 SDK 버전

다음 표에는 Greengrass CLI IPC 서비스와 연동하기 위해 사용해야 하는 AWS IoT Device SDK의 최소 버전이 나열되어 있습니다.

승인

사용자 지정 구성 요소에서 Greengrass CLI IPC 서비스를 사용하려면 구성 요소가 로컬 배포 및 구성 요소를 관리할 수 있도록 허용하는 권한 부여 정책을 정의해야 합니다. 권한 부여 정책 정의에 대한 자세한 내용은 구성 요소에 IPC 작업을 수행할 수 있는 권한 부여 섹션을 참조하세요.

Greengrass CLI에 대한 권한 부여 정책에는 다음 속성이 있습니다.

IPC 서비스 식별자: aws.greengrass.Cli

작업 설명 리소스

aws.greengrass#CreateLocalDeployment

구성 요소가 코어 디바이스에서 로컬 배포를 생성할 수 있도록 허용합니다.

*

aws.greengrass#ListLocalDeployments

구성 요소가 코어 디바이스의 로컬 배포를 나열할 수 있도록 허용합니다.

*

aws.greengrass#GetLocalDeploymentStatus

구성 요소가 코어 디바이스에서 로컬 배포 상태를 가져올 수 있도록 허용합니다.

로컬 배포 ID 또는 모든 로컬 배포에 대한 액세스를 허용하려면 *입니다.

aws.greengrass#ListComponents

구성 요소가 코어 디바이스의 구성 요소를 나열할 수 있도록 허용합니다.

*

aws.greengrass#GetComponentDetails

구성 요소가 코어 디바이스의 구성 요소에 대한 세부 정보를 가져올 수 있도록 허용합니다.

구성 요소 이름(예: com.example.HelloWorld) 또는 모든 구성 요소에 대한 액세스를 허용하려면 *입니다.

aws.greengrass#RestartComponent

구성 요소가 코어 디바이스에서 구성 요소를 다시 시작할 수 있도록 허용합니다.

구성 요소 이름(예: com.example.HelloWorld) 또는 모든 구성 요소에 대한 액세스를 허용하려면 *입니다.

aws.greengrass#StopComponent

구성 요소가 코어 디바이스에서 구성 요소를 중지할 수 있도록 허용합니다.

구성 요소 이름(예: com.example.HelloWorld) 또는 모든 구성 요소에 대한 액세스를 허용하려면 *입니다.

aws.greengrass#CreateDebugPassword

구성 요소가 로컬 디버그 콘솔 구성 요소에 로그인하는 데 사용할 암호를 생성할 수 있도록 허용합니다.

*

예 권한 부여 정책 예제

다음 권한 부여 정책 예제에서는 구성 요소가 로컬 배포를 생성하고, 모든 로컬 배포 및 구성 요소를 보고, 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 /)

(선택 사항) 구성 요소 레시피 파일이 포함된 폴더의 절대 경로입니다.

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 코어 소프트웨어는 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 /)

(선택 사항) 이 배포에서 대상으로 지정할 사물 그룹의 이름입니다.

응답

이 작업의 응답에는 다음 정보가 포함됩니다.

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 지문입니다. 로컬 디버그 콘솔을 열 때 이 지문을 사용하여 인증서가 합법적이고 연결이 안전한지 확인합니다.