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

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

로컬 배포 및 구성 요소 관리

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

이러한 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

Operation 설명 리소스

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의 배포 생성 명령과 동일한 기능을 제공합니다.

요청

이 작업의 요청에는 다음과 같은 파라미터가 있습니다.

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