배포 및 구성 요소 상태 알림 받기 - AWS IoT Greengrass

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

배포 및 구성 요소 상태 알림 받기

Amazon EventBridge 이벤트 규칙은 디바이스에서 수신한 Greengrass 배포와 디바이스에 설치된 구성 요소의 상태 변경에 대한 알림을 제공합니다. EventBridge 리소스 변경을 설명하는 시스템 이벤트의 스트림을 거의 실시간으로 제공합니다. AWS AWS IoT Greengrass 최선을 EventBridge 다해 이러한 이벤트를 전송합니다. 즉, 모든 이벤트를 AWS IoT Greengrass 전송하려고 EventBridge 시도하지만 드문 경우이긴 하지만 이벤트가 전달되지 않을 수도 있습니다. 또한 특정 이벤트의 복사본을 여러 개 전송할 수 있습니다. 즉, 이벤트 리스너가 이벤트가 발생한 순서대로 이벤트를 수신하지 못할 수도 있습니다. AWS IoT Greengrass

참고

EventBridge Amazon은 Greengrass 코어 디바이스, 배포 및 구성 요소 알림과 같은 다양한 소스의 데이터와 애플리케이션을 연결하는 데 사용할 수 있는 이벤트 버스 서비스입니다. 자세한 내용은 Amazon이란 무엇입니까 EventBridge? 를 참조하십시오. Amazon EventBridge 사용 설명서에서 확인할 수 있습니다.

배포 상태 변경 이벤트

AWS IoT Greengrass 배포가FAILED,, SUCCEEDED COMPLETEDREJECTED, 및 CANCELED 상태가 되면 이벤트를 발생시킵니다. 모든 상태 전환 또는 지정한 상태로의 전환에 대해 실행되는 EventBridge 규칙을 만들 수 있습니다. 배포가 규칙을 시작하는 상태로 전환되면 규칙에 정의된 대상 작업을 EventBridge 호출합니다. 이렇게 하면 알림을 전송하고, 이벤트 정보를 캡처하고, 적절한 조치를 취하거나, 상태 변경에 대응하는 기타 이벤트를 시작할 수 있습니다. 예를 들면, 다음 사용 사례에 대한 규칙을 생성할 수 있습니다.

  • 자산 다운로드 및 담당자 알림 전송과 같은 배포 후 작업을 트리거합니다.

  • 배포 성공 또는 실패 시 알림 보내기

  • 배포 이벤트에 대한 사용자 지정 지표 게시

배포 상태 변경에 대한 이벤트에서 사용하는 형식은 다음과 같습니다.

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Effective Deployment Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail":{ "deploymentId": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681", "coreDeviceExecutionStatus": "FAILED|SUCCEEDED|COMPLETED|REJECTED|CANCELED", "statusDetails": { "errorStack": ["DEPLOYMENT_FAILURE", "ARTIFACT_DOWNLOAD_ERROR", "S3_ERROR", "S3_ACCESS_DENIED", "S3_HEAD_OBJECT_ACCESS_DENIED"], "errorTypes": ["DEPENDENCY_ERROR", "PERMISSION_ERROR"], }, "reason": "S3_HEAD_OBJECT_ACCESS_DENIED: FAILED_NO_STATE_CHANGE: Failed to download artifact name: 's3://pentest27/nucleus/281/aws.greengrass.nucleus.zip' for component aws.greengrass.Nucleus-2.8.1, reason: S3 HeadObject returns 403 Access Denied. Ensure the IAM role associated with the core device has a policy granting s3:GetObject. null (Service: S3, Status Code: 403, Request ID: HR94ZNT2161DAR58, Extended Request ID: wTX4DDI+qigQt3uzwl9rlnQiYlBgwvPm/KJFWeFAn9t1mnGXTms/luLCYANgq08RIH+x2H+hEKc=)" } }

배포 상태를 업데이트하는 규칙 및 이벤트를 생성할 수 있습니다. 배포가FAILED,, SUCCEEDED COMPLETEDREJECTED, 또는 중 하나로 완료되면 이벤트가 시작됩니다. CANCELED 코어 기기에서 배포가 실패한 경우 배포가 실패한 이유를 설명하는 자세한 응답을 받게 됩니다. 배포 오류 코드에 대한 자세한 내용은 을 참조하십시오세부 배포 오류 코드.

배포 상태
  • FAILED. 배포가 실패했습니다.

  • SUCCEEDED. 사물 그룹을 대상으로 하는 배포가 성공적으로 완료되었습니다.

  • COMPLETED. 배포를 목표로 한 일이 성공적으로 완료되었습니다.

  • REJECTED. 배포가 거부되었습니다. 자세한 내용은 statusDetails 필드를 참조하십시오.

  • CANCELED. 사용자가 배포를 취소했습니다.

이벤트가 중복되거나 이벤트 순서가 잘못되었을 수 있습니다. 이벤트 순서를 정하려면 time 속성을 사용하세요.

및 에 있는 오류 코드의 전체 목록은 errorStackserrorTypes 을 참조하십시오 세부 배포 오류 코드세부 구성 요소 상태 코드.

구성 요소 상태 변경 이벤트

AWS IoT Greengrass 버전 2.12.2 및 이전 버전의 경우 Greengrass는 구성 요소가 다음 상태에 들어갈 때 이벤트를 생성합니다. ERRORED BROKEN Greengrass nucleus 버전 2.12.3 이상의 경우 Greengrass는 구성 요소가,, 및 상태에 들어갈 때 이벤트를 발생시킵니다. ERRORED BROKEN RUNNING FINISHED Greengrass는 배포가 완료되면 이벤트도 내보냅니다. 모든 상태 전환 또는 지정한 상태로의 전환에 대해 실행되는 EventBridge 규칙을 만들 수 있습니다. 설치된 구성 요소가 규칙을 시작하는 상태에 들어가면 규칙에 정의된 대상 동작을 EventBridge 호출합니다. 이렇게 하면 알림을 전송하고, 이벤트 정보를 캡처하고, 적절한 조치를 취하거나, 상태 변경에 대응하는 기타 이벤트를 시작할 수 있습니다.

구성 요소 상태 변경 이벤트는 다음 형식을 사용합니다.

Greengrass nucleus v2.12.2 and earlier

구성 요소 상태: ERRORED 또는 BROKEN

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "ERRORED|BROKEN", "lifecycleStatusCodes": ["STARTUP_ERROR"], "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1." } ] } }
Greengrass nucleus v2.12.3 and later

구성 요소 상태: ERRORED 또는 BROKEN

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "ERRORED|BROKEN", "lifecycleStatusCodes": ["STARTUP_ERROR"], "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1." } ] } }

구성 요소 상태: RUNNING 또는 FINISHED

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "RUNNING|FINISHED", "lifecycleStateDetails": null } ] } }

설치된 구성 요소의 상태를 업데이트하는 규칙 및 이벤트를 만들 수 있습니다. 디바이스에서 구성 요소의 상태가 변경될 때 이벤트가 시작됩니다. 구성 요소에 오류가 발생하거나 손상된 이유를 설명하는 자세한 응답을 받게 됩니다. 또한 실패 이유를 나타내는 상태 코드도 받게 됩니다. 구성 요소 상태 코드에 대한 자세한 내용은 을 참조하십시오세부 구성 요소 상태 코드.

규칙 생성을 위한 사전 요구 사항 EventBridge

에 대한 EventBridge 규칙을 생성하기 전에 AWS IoT Greengrass다음을 수행하십시오.

  • 에서 이벤트, 규칙, 대상을 숙지하세요. EventBridge

  • 규칙에 따라 호출되는 대상을 만들고 구성하세요. EventBridge 규칙은 다음을 비롯한 다양한 유형의 대상을 간접 호출할 수 있습니다.

    • Amazon Simple Notification Service(Amazon SNS)

    • AWS Lambda 함수

    • Amazon Kinesis Video Streams

    • Amazon Simple Queue Service(Amazon SQS) 대기열

자세한 내용은 Amazon이란 무엇입니까 EventBridge? 를 참조하십시오. 및 Amazon EventBridge 사용 EventBridge 설명서에서 Amazon 시작하기를 참조하십시오.

디바이스 상태 알림 구성 (콘솔)

다음 단계를 사용하여 그룹의 배포 상태가 변경될 때 Amazon SNS 주제를 게시하는 EventBridge 규칙을 생성합니다. 이렇게 하면 웹 서버, 이메일 주소 및 기타 주제 구독자가 이벤트에 대응할 수 있습니다. 자세한 내용은 Amazon EventBridge User Guide의 AWS 리소스에서 이벤트를 트리거하는 EventBridge 규칙 생성을 참조하십시오.

  1. Amazon EventBridge 콘솔을 엽니다.

  2. 탐색 창에서 규칙을 선택합니다.

  3. 규칙 생성을 선택합니다.

  4. 규칙에 대해 이름과 설명을 입력하십시오.

    규칙은 동일한 지역과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

  5. 이벤트 버스에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 AWS 기본 이벤트 버스(default event bus)를 선택합니다. 계정의 AWS 서비스에서 이벤트가 발생하면 해당 이벤트는 항상 계정의 기본 이벤트 버스로 이동합니다.

  6. 규칙 유형에서 이벤트 패턴이 있는 규칙을 선택합니다.

  7. 다음을 선택합니다.

  8. 이벤트 소스(Event source)에서 AWS 이벤트( events)를 선택합니다.

  9. 이벤트 패턴의 경우, AWS 서비스를 선택합니다.

  10. AWS 서비스 이름에서 Greengrass를 선택합니다.

  11. 이벤트 유형에서는 다음 중에서 선택하십시오.

    • 배포 이벤트의 경우 Greengrass V2 유효 배포 상태 변경을 선택합니다.

    • 구성 요소 이벤트의 경우 Greengrass V2 설치된 구성 요소 상태 변경을 선택합니다.

  12. 다음을 선택합니다.

  13. 대상 유형에서 AWS 서비스를 선택합니다.

  14. 대상 선택에서 대상을 구성합니다. 이 예제에서는 Amazon SNS 주제를 사용하지만 알림을 보내도록 다른 대상 유형을 구성할 수 있습니다.

    1. 대상에서 SNS 주제를 선택합니다.

    2. 주제에서 대상 주제를 선택합니다.

    3. 다음을 선택합니다.

  15. 다음을 선택합니다.

  16. 규칙의 세부 정보를 검토하고 규칙 생성을 선택합니다.

디바이스 상태 알림 (CLI) 구성

다음 단계를 사용하여 Greengrass 상태 변경 이벤트가 있을 때 Amazon SNS 주제를 게시하는 EventBridge 규칙을 생성하십시오. 이렇게 하면 웹 서버, 이메일 주소 및 기타 주제 구독자가 이벤트에 대응할 수 있습니다.

  1. 규칙을 생성합니다.

    • 배포 상태 변경 이벤트용.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Effective Deployment Status Change\"]}"
    • 구성 요소 상태 변경 이벤트용.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Installed Component Status Change\"]}"

    패턴에서 생략된 속성은 무시됩니다.

  2. 규칙 대상으로 주제를 추가합니다.

    • topic-arn을 Amazon SNS 주제의 ARN으로 바꿉니다.

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="topic-arn"
    참고

    Amazon에서 대상 주제를 EventBridge 호출하도록 허용하려면 주제에 리소스 기반 정책을 추가해야 합니다. 자세한 내용은 Amazon 사용 설명서의 Amazon SNS EventBridge 권한을 참조하십시오.

자세한 내용은 Amazon EventBridge 사용 설명서의 이벤트 및 이벤트 패턴을 참조하십시오. EventBridge

디바이스 상태 알림 구성 (AWS CloudFormation)

AWS CloudFormation 템플릿을 사용하여 Greengrass 그룹 배포의 상태 변경에 대한 알림을 보내는 EventBridge 규칙을 만들 수 있습니다. 자세한 내용은 AWS CloudFormation 사용 설명서의 Amazon EventBridge 리소스 유형 참조를 참조하십시오.

다음 사항도 참조하세요.