AWS IoT Greengrass 코어에 AWS IoT Greengrass 그룹 배포 - AWS IoT Greengrass

다음에 대한 설명서를 보고 있습니다.AWS IoT Greengrass Version 1.AWS IoT Greengrass Version 2의 최신 주요 버전입니다AWS IoT Greengrass. 사용에 관한 자세한 내용은 단원을 참조하십시오.AWS IoT Greengrass V2에 대한 자세한 내용은AWS IoT Greengrass Version 2개발자 안내서.

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

AWS IoT Greengrass 코어에 AWS IoT Greengrass 그룹 배포

사용AWS IoT Greengrass그룹을 사용하여 엣지 환경에서 엔터티를 구성합니다. 그룹을 사용하여 그룹의 엔터티가 서로 상호 작용하는 방식을 제어할 수 있으며AWS 클라우드. 예를 들어 로컬 실행에는 그룹의 Lambda 함수만 배포되며, 그룹에 있는 디바이스만 로컬 MQTT 서버를 사용하여 통신할 수 있습니다.

그룹에는core(이는) 가 있는AWS IoT장치를 실행하는AWS IoT Greengrass코어 소프트웨어. 코어는 엣지 게이트웨이 역할을 하며, 엣지 환경에서 AWS IoT Core 기능을 제공합니다. 비즈니스 요구에 맞게 그룹에 다음 엔터티를 추가할 수도 있습니다.

당신은에서 Greengrass 그룹을 관리AWS 클라우드코어에 배포합니다. 배포하면 코어 디바이스에서 group.json 파일로 그룹 구성이 복제됩니다. 이 파일은 greengrass-root/ggc/deployments/group에 위치합니다.


                    코어 디바이스에 배포된 Greengrass 그룹의 클라우드 정의
참고

배포 중에는 코어 디바이스에서 Greengrass 데몬 프로세스가 중지한 다음 다시 시작됩니다.

에서 그룹 배포AWS IoT콘솔

그룹 구성 페이지에서 그룹을 배포하고 그룹 배포를 관리할 수 있습니다.AWS IoT콘솔.


                                    Greengrass 그룹의 배포 페이지
참고

콘솔에서 이 페이지를 열려면Greengrass을 선택한 다음클래식 (V1)을 선택한 다음그룹을 클릭한 다음Greengrass 그룹에서 그룹을 선택합니다.

현재 그룹 버전을 배포하려면
  • 작업에서 배포를 선택합니다.

그룹의 배포 이력을 확인하려면

그룹의 배포 이력에는 각 배포 시도의 날짜 및 시간, 그룹 버전, 상태를 포함하여 그룹의 배포 기록이 포함됩니다.

  1. 탐색 창에서 배포를 선택합니다.

  2. 오류 메시지를 비롯하여 배포에 대한 자세한 내용을 확인하려면 배포에 포함된 행을 선택하십시오.

그룹 배포를 재배포하려면

현재 배포가 실패할 경우 배포를 재배포하거나 다른 그룹 버전으로 되돌릴 수 있습니다.

  1. 탐색 창에서 배포를 선택합니다.

  2. 배포가 포함된 행의상태열에서 줄임표 (...) 를 선택한 다음재배포.

    배포에 대한 재배포 작업을 표시하는 배포 페이지.
그룹 배포를 재설정하려면

그룹 배포를 재설정하여 그룹을 이동 또는 삭제하거나 배포 정보를 제거할 수 있습니다. 자세한 정보는 배포 재설정을 참조하십시오.

  • 작업에서 배포 재설정을 선택합니다.

AWS IoT Greengrass API를 사용하여 그룹 배포

AWS IoT Greengrass API는 다음 작업을 통해 AWS IoT Greengrass 그룹을 배포하고 그룹 배포를 관리할 수 있습니다. AWS CLI, AWS IoT Greengrass API 또는 AWS SDK에서 이러한 작업을 호출할 수 있습니다.

작업 설명

CreateDeployment

NewDeployment 또는 Redeployment 배포를 생성합니다.

현재 배포가 실패할 경우 배포를 재배포할 수 있습니다. 또는 재배포를 통해 다른 그룹 버전으로 되돌릴 수 있습니다.

GetDeploymentStatus

배포 상태를 Building, InProgress, Success 또는 Failure로 반환합니다.

배포 알림을 수신하도록 Amazon EventBridge 이벤트를 구성할 수 있습니다. 자세한 정보는 배포 알림 받기을 참조하십시오.

ListDeployments

그룹의 배포 이력을 반환합니다.

ResetDeployments

그룹에 대한 배포를 재설정합니다.

그룹 배포를 재설정하여 그룹을 이동 또는 삭제하거나 배포 정보를 제거할 수 있습니다. 자세한 정보는 배포 재설정을 참조하십시오.

참고

대량 작업에 대한 자세한 내용은 그룹의 대량 배포 생성 단원을 참조하십시오.

그룹 ID 가져오기

그룹 ID는 일반적으로 API 작업에 사용됩니다. ListGroups 작업을 사용하여 그룹 목록에서 대상 그룹의 ID를 찾을 수 있습니다. 예를 들어 AWS CLI에서 list-groups 명령을 사용합니다.

aws greengrass list-groups

결과를 필터링하는 query 옵션을 포함할 수도 있습니다. 예:

  • 가장 최근에 만든 그룹을 가져오려면 다음을 수행하십시오.

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  • 이름으로 그룹을 가져오려면 다음을 수행하십시오.

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"

    그룹 이름은 고유한 이름이 아니어도 되므로 여러 그룹을 반환할 수도 있습니다.

다음은 list-groups 응답의 예입니다. 각 그룹에 대한 정보에는 속성에 있는 그룹의 ID(Id 속성에 있음) 및 최신 그룹 버전의 ID(LatestVersion 속성에 있음)가 포함됩니다. 그룹의 다른 버전 ID를 가져오려면 ListGroupVersions와 함께 그룹 ID를 사용합니다.

참고

에서도 이러한 값을 찾을 수 있습니다.AWS IoT콘솔. 그룹 ID는 그룹의 설정 페이지에 표시됩니다. 그룹 버전 ID는 그룹의 배포 페이지에 표시됩니다.

{ "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }

지정하지 않은 경우AWS 리전,AWS CLI명령은 프로필의 기본 Region을 사용합니다. 다른 리전의 그룹을 반환하려면 리전 옵션을 포함합니다. 예:

aws greengrass list-groups --region us-east-1

AWS IoT Greengrass 그룹 객체 모델 개요

AWS IoT Greengrass API를 프로그래밍할 때 Greengrass 그룹 객체 모델을 이해하는 것은 도움이 됩니다.

Groups

AWS IoT Greengrass API에서, 최상위 Group 객체는 메타데이터와 GroupVersion 객체 목록으로 구성되어 있습니다. GroupVersion 객체는 Group에 ID를 기준으로 연결되어 있습니다.


                                그룹 다이어그램(그룹 버전 목록과 메타데이터로 구성)

그룹 버전

GroupVersion 객체는 그룹 구성원을 정의합니다. 각 GroupVersionCoreDefinitionVersion과, ARN을 기준으로 다른 구성 요소 버전을 참조합니다. 이러한 참조를 통해 그룹에 포함할 엔터티가 결정됩니다.


                                ARN 기준 다른 버전 유형을 참조하는 그룹 버전 다이어그램

예를 들어 그룹에 Lambda 함수 3개, 디바이스 1개, 구독 2개를 포함하려면GroupVersion참조:

  • 필수 코어가 포함된 CoreDefinitionVersion입니다.

  • 3개의 함수가 포함된 FunctionDefinitionVersion

  • 디바이스가 포함된 DeviceDefinitionVersion

  • 2개의 구독이 포함된 SubscriptionDefinitionVersion

코어 디바이스에 배포된 GroupVersion은 로컬 환경에서 제공되는 개체와 해당 개체가 상호 작용하는 방식을 결정합니다.

그룹 구성 요소

그룹에 추가한 구성 요소는 3개 레벨의 계층 구조로 되어 있습니다.

  • A정의의 목록을 참조하는DefinitionVersion주어진 유형의 개체를 반환합니다. 예를 들어 DeviceDefinitionDeviceDefinitionVersion 객체를 참조합니다.

  • 지정된 유형의 엔터티 집합이 포함된 DefinitionVersion. 예를 들어 DeviceDefinitionVersion에는 Device 객체 목록이 포함되어 있습니다.

  • 속성과 동작을 정의하는 개별 엔터티. 예를 들어, Device는 AWS IoT 레지스트리에서 해당하는 디바이스 ARN, 디바이스 인증서의 ARN, 그리고 클라우드에서 로컬 섀도우가 자동으로 동기화되는 위치를 정의합니다.

    다음 유형의 엔터티를 그룹에 추가할 수 있습니다.

다음 예제는 DeviceDefinition 각각 여러 Device 객체를 포함하고 있는 3개의 DeviceDefinitionVersion 객체를 참조합니다. 그룹에서는 한 번에 한 개의 DeviceDefinitionVersion만 사용됩니다.


                                디바이스 계층 구조 다이어그램(DeviceDefinition, DeviceDefinitionVersion, Device 객체 포함)

그룹 업데이트

AWS IoT Greengrass API에서 버전을 사용하여 그룹 구성을 업데이트할 수 있습니다. 버전은 불변하므로 그룹 구성요소를 추가, 제거 또는 변경하려면 새롭거나 업데이트된 엔터티를 포함하는 DefinitionVersion 객체를 생성해야 합니다.

DefinitionVersions 객체는 신규이거나 기존에 있었던 Definition 객체와 연결할 수 있습니다. 예를 들어, CreateFunctionDefinition 작업을 사용하여 FunctionDefinitionVersion을 초기 버전으로 포함하는 FunctionDefinition을 만들거나, CreateFunctionDefinitionVersion 작업을 사용하여 기존 FunctionDefinition을 참조할 수 있습니다.

그룹 구성 요소를 만든 후GroupVersion모든 것을 포함하는DefinitionVersion그룹에 포함시키려는 개체입니다. 그런 다음 GroupVersion을 배포합니다.

GroupVersion을 배포하려면 Core가 정확히 1개 포함된 CoreDefinitionVersion을 참조해야 합니다. 참조된 모든 엔터티는 그룹의 구성원이어야 합니다. 또한,Greengrass 서비스 역할와 연결되어 있어야 합니다.AWS 계정의AWS 리전를 배포하고 있는GroupVersion.

참고

API에서 Update 작업은 Group 또는 구성 요소 Definition 객체의 이름을 변경하는 데 사용됩니다.

참조하는 엔터티 업데이트AWS리소스

Greengrass 함수 및암호 리소스Greengrass별 속성을 정의하고 해당AWS있습니다. 이러한 엔터티를 업데이트하려면 해당AWS자원 대신 Greengrass 객체의. 예를 들어 Lambda 함수는AWS Lambda을 선택하고 수명 주기와 Greengrass 그룹에 적용되는 기타 속성도 정의합니다.

  • Lambda 함수 코드나 패키징된 종속성을 업데이트하려면AWS Lambda. 이러한 변경 사항은 그 다음 그룹 배포 시 AWS Lambda에서 가져와 로컬 환경에 복사됩니다.

  • Greengrass별 속성을 업데이트하려면 업데이트된 Function 속성이 포함된 FunctionDefinitionVersion을 생성합니다.

참고

Greengrass 함수는 별칭 ARN 또는 버전 ARN을 기준으로 Lambda 함수를 참조할 수 있습니다. 별칭 ARN을 참조하면(권장 사항), AWS Lambda에서 새로운 함수 버전을 게시할 때 FunctionDefinitionVersion(또는 SubscriptionDefinitionVersion)을 업데이트하지 않아도 됩니다. 자세한 정보는 Lambda 함수 참조을 참조하십시오.

다음 사항도 참조하세요.