구성 요소 라이프사이클과 상호 작용 - AWS IoT Greengrass

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

구성 요소 라이프사이클과 상호 작용

구성 요소 수명 주기 IPC 서비스를 사용하여 다음을 수행할 수 있습니다.

  • 코어 기기의 구성 요소 상태를 업데이트합니다.

  • 구성 요소 상태 업데이트를 구독하십시오.

  • 배포 중에 업데이트를 적용하기 위해 NUCLEUS가 구성 요소를 중지하는 것을 방지하십시오.

  • 구성 요소 프로세스를 일시 중지하고 다시 시작합니다.

최소 SDK 버전

다음 표에는 구성 요소 수명 주기와 상호 작용하는 데 사용해야 AWS IoT Device SDK 하는 의 최소 버전이 나와 있습니다.

권한 부여

사용자 지정 구성 요소의 다른 구성 요소를 일시 중지하거나 다시 시작하려면 구성 요소가 다른 구성 요소를 관리할 수 있도록 허용하는 권한 부여 정책을 정의해야 합니다. 권한 부여 정책 정의에 대한 자세한 내용은 을 참조하십시오구성 요소가 IPC 작업을 수행할 수 있도록 승인하십시오..

구성 요소 수명 주기 관리를 위한 권한 부여 정책에는 다음과 같은 속성이 있습니다.

IPC 서비스 식별자: aws.greengrass.ipc.lifecycle

Operation 설명 리소스

aws.greengrass#PauseComponent

구성 요소가 지정한 구성 요소를 일시 중지할 수 있도록 합니다.

구성 요소 이름 또는 모든 구성 요소에 대한 액세스를 허용하는 * 데 사용할 수 있습니다.

aws.greengrass#ResumeComponent

구성 요소가 지정한 구성 요소를 재개할 수 있도록 합니다.

구성 요소 이름 또는 모든 구성 요소에 대한 액세스를 허용하는 * 데 사용됩니다.

*

지정한 구성 요소를 구성 요소가 일시 중지했다가 다시 시작할 수 있습니다.

구성 요소 이름 또는 모든 구성 요소에 대한 액세스를 허용하는 * 데 사용할 수 있습니다.

권한 부여 정책 예제

다음 권한 부여 정책 예제를 참조하여 구성 요소에 대한 권한 부여 정책을 구성할 수 있습니다.

예 권한 부여 정책 예시

다음 예제 권한 부여 정책은 구성 요소가 모든 구성 요소를 일시 중지하고 재개할 수 있도록 허용합니다.

{ "accessControl": { "aws.greengrass.ipc.lifecycle": { "com.example.MyLocalLifecycleComponent:lifecycle:1": { "policyDescription": "Allows access to pause/resume all components.", "operations": [ "aws.greengrass#PauseComponent", "aws.greengrass#ResumeComponent" ], "resources": [ "*" ] } } } }

UpdateState

코어 디바이스의 구성 요소 상태를 업데이트합니다.

요청

이 작업의 요청에는 다음과 같은 매개변수가 있습니다.

state

설정할 상태입니다. 이 열거형LifecycleState, 의 값은 다음과 같습니다.

  • RUNNING

  • ERRORED

응답

이 연산은 응답에 어떠한 정보도 제공하지 않습니다.

SubscribeToComponentUpdates

구독하면 AWS IoT Greengrass Core 소프트웨어가 구성 요소를 업데이트하기 전에 알림을 받을 수 있습니다. 알림은 업데이트의 일부로 Nucleus를 다시 시작할지 여부를 지정합니다.

Nucleus는 배포의 구성 요소 업데이트 정책에서 구성 요소에 알리도록 지정한 경우에만 업데이트 알림을 보냅니다. 기본 동작은 구성 요소에 알리는 것입니다. 자세한 내용은 배포 만들기CreateDeployment작업을 호출할 때 제공할 수 있는 DeploymentComponentUpdatePolicy객체를 참조하십시오.

중요

로컬 배포에서는 업데이트 전에 구성 요소에 알리지 않습니다.

이 작업은 이벤트 메시지 스트림을 구독하는 구독 작업입니다. 이 작업을 사용하려면 이벤트 메시지, 오류 및 스트림 폐쇄를 처리하는 함수가 포함된 스트림 응답 핸들러를 정의하십시오. 자세한 설명은 IPC 이벤트 스트림을 구독하세요. 섹션을 참조하세요.

이벤트 메시지 유형: ComponentUpdatePolicyEvents

작은 정보

자습서를 따라 구성 요소 업데이트를 조건부로 연기하는 구성 요소를 개발하는 방법을 배울 수 있습니다. 자세한 설명은 튜토리얼: 구성 요소 업데이트를 연기하는 Greengrass 구성 요소 개발 섹션을 참조하세요.

요청

이 작업의 요청에는 매개변수가 없습니다.

응답

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

messages

알림 메시지 스트림. 이 개체ComponentUpdatePolicyEvents, 에는 다음 정보가 들어 있습니다.

preUpdateEvent(Python:pre_update_event)

(선택 사항) 핵이 구성 요소를 업데이트하려고 한다는 것을 나타내는 이벤트입니다. DeferComponentUpdate작업에 응답하여 구성 요소를 다시 시작할 준비가 될 때까지 업데이트를 승인하거나 연기할 수 있습니다. 이 개체에는 다음 정보가 PreComponentUpdateEvent 들어 있습니다.

deploymentId(Python:deployment_id)

컴포넌트를 업데이트하는 AWS IoT Greengrass 디플로이먼트의 ID.

isGgcRestarting(Python:is_ggc_restarting)

업데이트를 적용하기 위해 Nucleus를 다시 시작해야 하는지 여부.

postUpdateEvent(Python:post_update_event)

(선택 사항) 핵이 구성 요소를 업데이트했음을 나타내는 이벤트입니다. 이 객체에는 다음 정보가 들어 PostComponentUpdateEvent 있습니다.

deploymentId(Python:deployment_id)

컴포넌트를 업데이트한 AWS IoT Greengrass 디플로이먼트의 ID.

참고

이 기능을 사용하려면 v2.7.0 이상의 Greengrass 핵 구성 요소가 필요합니다.

DeferComponentUpdate

발견한 구성 요소 업데이트를 승인하거나 연기하십시오. SubscribeToComponentUpdates NUCLEUS가 구성 요소 업데이트를 진행할 준비가 되었는지 구성 요소가 다시 확인될 때까지 기다릴 시간을 지정합니다. 이 작업을 사용하여 Nucleus에 구성 요소가 업데이트할 준비가 되었음을 알릴 수도 있습니다.

구성 요소가 구성 요소 업데이트 알림에 응답하지 않는 경우 NUCLEUS는 배포의 구성 요소 업데이트 정책에 지정된 시간만큼 기다립니다. 제한 시간이 지나면 NUCLEUS는 배포를 진행합니다. 기본 구성 요소 업데이트 제한 시간은 60초입니다. 자세한 내용은 CreateDeployment작업을 호출할 때 제공할 수 있는 DeploymentComponentUpdatePolicy객체를 참조하십시오배포 만들기.

작은 정보

자습서를 따라 구성 요소 업데이트를 조건부로 연기하는 구성 요소를 개발하는 방법을 배울 수 있습니다. 자세한 설명은 튜토리얼: 구성 요소 업데이트를 연기하는 Greengrass 구성 요소 개발 섹션을 참조하세요.

요청

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

deploymentId(Python:deployment_id)

연기할 AWS IoT Greengrass 배포의 ID.

message

(선택 사항) 업데이트를 연기할 구성 요소의 이름.

요청을 보내는 구성 요소의 이름이 기본값입니다.

recheckAfterMs(Python:recheck_after_ms)

업데이트를 연기하는 데 걸리는 시간 (밀리초). 핵은 이 시간 동안 기다린 다음 발견할 수 PreComponentUpdateEvent 있는 다른 시간을 보냅니다. SubscribeToComponentUpdates

업데이트를 0 승인하도록 지정하십시오. 이렇게 하면 구성 요소가 업데이트할 준비가 되었음을 Nucleus에 알립니다.

기본값은 0밀리초이며, 이는 업데이트 확인을 의미합니다.

응답

이 작업은 응답에 어떠한 정보도 제공하지 않습니다.

PauseComponent

이 기능은 Greengrass 핵 구성 요소 v2.4.0 이상에서 사용할 수 있습니다. AWS IoT Greengrass현재 Windows 코어 디바이스에서는 이 기능을 지원하지 않습니다.

코어 장치의 구성 요소 프로세스를 일시 중지합니다. 구성 요소를 재개하려면 ResumeComponent작업을 사용하십시오.

일반 구성 요소만 일시 중지할 수 있습니다. 다른 유형의 구성 요소를 일시 중지하려고 하면 이 작업을 수행하면 가 발생합니다. InvalidRequestError

참고

이 작업은 Docker 컨테이너와 같은 컨테이너화된 프로세스를 일시 중지할 수 없습니다. Docker 컨테이너를 일시 중지하고 재개하려면 docker 일시 중지 및 docker 일시 중지 해제 명령을 사용할 수 있습니다.

이 작업을 수행해도 구성 요소 종속 항목이나 일시 중지한 구성 요소에 종속되는 구성 요소는 일시 중지되지 않습니다. 종속 구성 요소의 종속 항목이 일시 중지되면 종속 구성 요소에 문제가 발생할 수 있으므로 다른 구성 요소의 종속 구성 요소를 일시 중지할 때는 이 동작을 고려하세요.

배포 등을 통해 일시 중지된 구성 요소를 다시 시작하거나 종료하면 Greengrass nucleus가 구성 요소를 재개하고 종료 수명 주기를 실행합니다. 구성 요소 재시작에 대한 자세한 내용은 을 참조하십시오. RestartComponent

중요

이 작업을 사용하려면 이 작업을 사용할 권한을 부여하는 권한 부여 정책을 정의해야 합니다. 자세한 설명은 권한 부여 섹션을 참조하세요.

최소 SDK 버전

다음 표에는 구성 요소를 일시 중지하고 AWS IoT Device SDK 재개하는 데 사용해야 하는 의 최소 버전이 나와 있습니다.

요청

이 작업의 요청에는 다음과 같은 매개변수가 있습니다.

componentName(Python:component_name)

일시 중지할 구성 요소의 이름. 이 구성 요소는 일반 구성 요소여야 합니다. 자세한 설명은 구성 요소 유형 섹션을 참조하세요.

응답

이 작업은 응답에 어떠한 정보도 제공하지 않습니다.

ResumeComponent

이 기능은 Greengrass 핵 구성 요소 v2.4.0 이상에서 사용할 수 있습니다. AWS IoT Greengrass현재 Windows 코어 디바이스에서는 이 기능을 지원하지 않습니다.

코어 장치에서 구성 요소의 프로세스를 재개합니다. 구성 요소를 일시 중지하려면 작업을 사용합니다. PauseComponent

일시 중지된 구성 요소만 재개할 수 있습니다. 일시 중지되지 않은 구성 요소를 다시 시작하려고 하면 이 작업을 수행하면 가 발생합니다. InvalidRequestError

중요

이 작업을 사용하려면 권한을 부여하는 권한 부여 정책을 정의해야 합니다. 자세한 설명은 권한 부여 섹션을 참조하세요.

최소 SDK 버전

다음 표에는 구성 요소를 일시 중지하고 AWS IoT Device SDK 재개하는 데 사용해야 하는 의 최소 버전이 나와 있습니다.

요청

이 작업의 요청에는 다음과 같은 매개변수가 있습니다.

componentName(Python:component_name)

재개할 구성 요소의 이름.

응답

이 작업은 응답에 어떠한 정보도 제공하지 않습니다.