OTA 업데이트를 위한 Cloudwatch Logs 설정 - FreeRTOS

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

OTA 업데이트를 위한 Cloudwatch Logs 설정

OTA 업데이트 서비스에서는 Amazon CloudWatch를 통한 로깅을 지원합니다. AWS IoT 콘솔을 사용하여 OTA 업데이트에 대한 Amazon CloudWatch 로깅을 활성화하고 구성할 수 있습니다. 자세한 내용은 Cloudwatch Logs를 참조하십시오.

로깅을 활성화하려면 IAM 역할을 생성하고 OTA 업데이트 로깅을 구성해야 합니다.

참고

OTA 업데이트 로깅을 활성화하기 전에 CloudWatch Logs 액세스 권한을 이해해야 합니다. CloudWatch 로그 액세스 권한이 있는 사용자는 디버깅 정보를 볼 수 있습니다. 자세한 내용은 Amazon CloudWatch Logs에 대한 인증 및 액세스 제어를 참조하십시오.

로깅 역할 생성 및 로깅 활성화

AWS IoT 콘솔을 사용하여 로깅 역할을 생성하고 로깅을 활성화합니다.

  1. 탐색 창에서 설정을 선택합니다.

  2. 로그에서 편집을 선택합니다.

  3. 세부 사항 수준에서 디버깅을 선택합니다.

  4. 역할 설정에서 새로 생성을 선택하여 로깅을 위한 IAM 역할을 생성합니다.

  5. 이름 아래에 역할의 고유한 이름을 입력합니다. 모든 필요한 권한을 가진 역할이 생성됩니다.

  6. 업데이트를 선택합니다.

OTA 업데이트 로그

OTA 업데이트 서비스에서는 다음 중 하나가 발생할 경우 사용자의 계정에 로그를 게시합니다.

  • OTA 업데이트가 생성된 경우

  • OTA 업데이트가 완료된 경우

  • 코드 서명 작업이 생성된 경우

  • 코드 서명 작업이 완료된 경우

  • AWS IoT 작업이 생성됩니다.

  • AWS IoT 작업이 완료되었습니다.

  • 스트림이 생성된 경우

CloudWatch 콘솔에서 로그를 확인할 수 있습니다.

CloudWatch Logs에서 OTA 업데이트를 보려면
  1. 탐색 창에서 로그를 선택합니다.

  2. 로그 그룹에서 AWSIoTLogsV2를 선택합니다.

OTA 업데이트 로그는 다음 속성을 포함할 수 있습니다.

accountId

로그가 생성된 AWS 계정 ID입니다.

actionType

로그를 생성한 작업입니다. 이 속성은 다음 값 중 하나로 설정될 수 있습니다.

  • CreateOTAUpdate: OTA 업데이트가 생성되었습니다.

  • DeleteOTAUpdate: OTA 업데이트가 삭제되었습니다.

  • StartCodeSigning: 코드 서명 작업이 시작되었습니다.

  • CreateAWSJob: AWS IoT 작업이 생성되었습니다.

  • CreateStream: 스트림이 생성되었습니다.

  • GetStream: 스트림에 대한 요청이 AWS IoT MQTT 기반 파일 전송 기능으로 전송되었습니다.

  • DescribeStream: 스트림 정보에 대한 정보 요청이 AWS IoT MQTT 기반 파일 전송 기능으로 전송되었습니다.

awsJobId

로그를 생성한 AWS IoT 작업 ID입니다.

clientId

로그를 생성한 요청을 보낸 MQTT 클라이언트 ID입니다.

clientToken

로그를 생성한 요청과 연결된 클라이언트 토큰입니다.

details

로그를 생성한 작업에 대한 추가 정보입니다.

logLevel

로그의 로깅 수준입니다. OTA 업데이트 로그의 경우 이 값은 항상 DEBUG로 설정됩니다.

otaUpdateId

로그를 생성한 OTA 업데이트의 ID입니다.

protocol

로그를 생성한 요청을 만드는 데 사용된 프로토콜입니다.

status

로그를 생성한 작업의 상태입니다. 유효값은 다음과 같습니다.

  • Success

  • 실패

streamId

로그를 생성한 AWS IoT 스트림 ID입니다.

timestamp

로그가 생성된 시간입니다.

topicName

로그를 생성한 요청을 만드는 데 사용된 MQTT 주제입니다.

로그 예

다음은 코드 서명 작업을 시작할 때 생성되는 로그의 예입니다.

{ "timestamp": "2018-07-23 22:59:44.955", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "actionType": "StartCodeSigning", "otaUpdateId": "08957b03-eea3-448a-87fe-743e6891ca3a", "details": "Start code signing job. The request status is SUCCESS." }

다음은 AWS IoT 작업이 생성될 때 생성되는 로그의 예입니다.

{ "timestamp": "2018-07-23 22:59:45.363", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "actionType": "CreateAWSJob", "otaUpdateId": "08957b03-eea3-448a-87fe-743e6891ca3a", "awsJobId": "08957b03-eea3-448a-87fe-743e6891ca3a", "details": "Create AWS Job The request status is SUCCESS." }

다음은 OTA 업데이트를 만들 때 생성되는 로그의 예입니다.

{ "timestamp": "2018-07-23 22:59:45.413", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "actionType": "CreateOTAUpdate", "otaUpdateId": "08957b03-eea3-448a-87fe-743e6891ca3a", "details": "OTAUpdate creation complete. The request status is SUCCESS." }

다음은 스트림을 만들 때 생성되는 로그의 예입니다.

{ "timestamp": "2018-07-23 23:00:26.391", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "actionType": "CreateStream", "otaUpdateId": "3d3dc5f7-3d6d-47ac-9252-45821ac7cfb0", "streamId": "6be2303d-3637-48f0-ace9-0b87b1b9a824", "details": "Create stream. The request status is SUCCESS." }

다음은 OTA 업데이트를 삭제할 때 생성되는 로그의 예입니다.

{ "timestamp": "2018-07-23 23:03:09.505", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "actionType": "DeleteOTAUpdate", "otaUpdateId": "9bdd78fb-f113-4001-9675-1b595982292f", "details": "Delete OTA Update. The request status is SUCCESS." }

다음은 디바이스가 MQTT 기반 파일 전송 기능에서 스트림을 요청할 때 생성되는 로그의 예입니다.

{ "timestamp": "2018-07-25 22:09:02.678", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "actionType": "GetStream", "protocol": "MQTT", "clientId": "b9d2e49c-94fe-4ed1-9b07-286afed7e4c8", "topicName": "$aws/things/b9d2e49c-94fe-4ed1-9b07-286afed7e4c8/streams/1e51e9a8-9a4c-4c50-b005-d38452a956af/get/json", "streamId": "1e51e9a8-9a4c-4c50-b005-d38452a956af", "details": "The request status is SUCCESS." }

다음은 디바이스가 DescribeStream API를 호출할 때 생성되는 로그의 예입니다.

{ "timestamp": "2018-07-25 22:10:12.690", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "actionType": "DescribeStream", "protocol": "MQTT", "clientId": "581075e0-4639-48ee-8b94-2cf304168e43", "topicName": "$aws/things/581075e0-4639-48ee-8b94-2cf304168e43/streams/71c101a8-bcc5-4929-9fe2-af563af0c139/describe/json", "streamId": "71c101a8-bcc5-4929-9fe2-af563af0c139", "clientToken": "clientToken", "details": "The request status is SUCCESS." }