AWS IoT Device Advisor 문제 해결 안내서 - AWS IoT Core

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

AWS IoT Device Advisor 문제 해결 안내서

일반
Q: 여러 테스트 스위트를 병렬로 실행할 수 있습니까?

A: 예. Device Advisor는 디바이스 수준 엔드포인트를 사용하여 서로 다른 디바이스에서 여러 테스트 스위트를 실행할 수 있습니다. 계정 수준 엔드포인트를 사용하는 경우 계정당 하나의 Device Advisor 엔드포인트를 사용할 수 있으므로 한 번에 하나의 스위트를 실행할 수 있습니다. 디바이스 구성에 대한 자세한 내용은 디바이스 구성을 참조하세요.

Q: 디바이스에서 디바이스 어드바이저가 TLS 연결을 거부했다는 것을 확인했습니다. 예상된 동작입니까?

A: 예. 디바이스 어드바이저는 각 테스트 실행 전후에 TLS 연결을 거부합니다. 사용자는 Device Advisor를 통한 테스트 완전 자동화를 위해 디바이스 재시도 메커니즘을 구현하는 것이 좋습니다. 두 개 이상의 테스트 사례 (예: TLS 연결, MQTT 연결, MQTT 게시) 가 포함된 테스트 도구 모음을 실행하는 경우 기기에 맞게 메커니즘을 빌드하는 것이 좋습니다. 이 메커니즘은 매 5초마다 1분~2분간 테스트 엔드포인트에 연결을 시도할 수 있습니다. 이렇게 하면 자동화된 방식으로 여러 테스트 케이스를 순서대로 실행할 수 있습니다.

Q: 보안 분석 및 운영 문제 해결 목적으로 내 계정에서 이루어진 Device Advisor API 통화 기록을 가져올 수 있습니까?

A: 예. 사용자 계정에서 이루어진 Device Advisor API 통화 기록을 받으려면 다음을 CloudTrail 켜기만 하면 됩니다. AWS IoT 관리 콘솔을 선택하고 이벤트 소스를 다음과 같이 iotdeviceadvisor.amazonaws.com 필터링하십시오.

Q: 디바이스 어드바이저 로그인을 보려면 어떻게 해야 합니까 CloudWatch?

A: 서비스 역할에 필수 정책 (예: CloudWatchFullAccess) 을 CloudWatch 추가하면 테스트 도구 모음 실행 중에 생성된 로그가 업로드됩니다 (참조설정). 테스트 스위트에 테스트 사례가 하나 이상 있는 경우 두 개의 로그 스트림을 포함하는 로그 그룹 “aws/iot/deviceadvisor/$ testSuiteId “가 생성됩니다. 한 스트림은 testRunId “$”이며, 여기에는 설정 및 정리 단계와 같이 테스트 스위트에서 테스트 케이스를 실행하기 전후에 수행한 작업 로그가 포함됩니다. 다른 로그 스트림은 “$ suiteRunId _$”이며testRunId, 이는 테스트 스위트 실행에만 해당됩니다. 디바이스에서 전송된 이벤트 및 AWS IoT Core 이 로그 스트림에 기록됩니다.

Q: 디바이스 권한 역할의 용도는 무엇입니까?

A: 디바이스 어드바이저는 테스트 디바이스와 테스트 디바이스 사이에 있습니다. AWS IoT Core 테스트 시나리오를 시뮬레이션합니다. 테스트 장치의 연결 및 메시지를 수락하고 다음 주소로 전달합니다. AWS IoT Core 기기 권한 역할을 위임하고 사용자를 대신하여 연결을 시작함으로써 가능합니다. 기기 역할 권한이 테스트 실행에 사용하는 인증서의 권한과 동일한지 확인하는 것이 중요합니다. AWS IoT 장치 관리자가 연결을 시작할 때는 인증서 정책이 적용되지 않습니다. AWS IoT Core 사용자 대신 장치 권한 역할을 사용하십시오. 그러나 설정한 디바이스 권한 역할의 권한은 적용됩니다.

Q: Device Advisor는 어떤 리전에서 지원되나요?

A: Device Advisor는 us-east-1, us-west-2, ap-northeast-1, and eu-west-1 리전에서 지원됩니다.

Q: 일관성이 없는 결과가 표시되면 어떻게 해야 하나요?

A: 일관성 없는 결과의 주요 원인 중 하나는 테스트의 EXECUTION_TIMEOUT을 너무 낮은 값으로 설정하는 것입니다. 권장 및 기본 EXECUTION_TIMEOUT 값에 대한 자세한 내용은 Device Advisor 테스트 사례를 참조하세요.

Q: 디바이스 어드바이저는 어떤 MQTT 프로토콜을 지원합니까?

A: 디바이스 어드바이저는 X509 MQTT 클라이언트 인증서와 함께 버전 3.1.1을 지원합니다.

Q: 디바이스를 테스트 엔드포인트에 연결하려고 해도 테스트 케이스가 실행 시간 초과 메시지와 함께 실패하면 어떻게 하나요?

A: 장치 IAM역할로 사용할 역할 만들기의 모든 단계를 검증하십시오. 그래도 테스트에 실패할 경우 장치가 올바른 서버 이름 표시 (SNI) 확장자를 전송하지 않는 것일 수 있으며, 이는 Device Advisor가 작동하는 데 필요합니다. 올바른 SNI 값은 장치 구성 섹션을 따랐을 때 반환된 엔드포인트 주소입니다. AWS IoT 또한 장치가 서버 이름 표시 (SNI) 확장자를 전송 계층 보안 (TLS) 프로토콜로 전송해야 합니다. 자세한 내용은 의 전송 보안을 참조하십시오. AWS IoT.

Q: "libaws-c-mqtt: AWS_ERROR _ _ MQTT UNEXPECTED _HANGUP" 오류가 발생하여 MQTT 연결이 실패하거나 Device Advisor 엔드포인트에서 장치 MQTT 연결이 자동으로 끊깁니다. 이 오류를 어떻게 해결할 수 있나요?

A: 이 특정 오류 코드 및 예기치 않은 연결 끊김은 여러 가지 원인으로 인해 발생할 수 있지만, 디바이스에 연결된 디바이스 역할과 관련이 있을 가능성이 큽니다. 아래 체크포인트(우선순위 순)를 점검하여 이 문제를 해결할 수 있습니다.

  • 장치에 연결된 장치 역할에는 테스트를 실행하는 데 필요한 최소 IAM 권한이 있어야 합니다. 기기 관리자는 연결된 장치 역할을 사용하여 다음 작업을 수행합니다. AWS IoT MQTT테스트 기기를 대신한 작업. 필요한 권한이 없는 경우, 디바이스가 Device Advisor 엔드포인트에 연결을 시도하는 중에 AWS_ERROR_MQTT_UNEXPECTED_HANGUP 오류가 표시되거나 예기치 않은 연결 끊김이 발생합니다. 예를 들어, MQTTPublish 테스트 사례를 실행하도록 선택한 경우 Connect 및 Publish 작업 모두 해당 ClientId 및 주제와 함께 역할에 포함되어야 합니다. 쉼표로 값을 구분하여 여러 값을 제공할 수 있으며 와일드카드 (*) 문자를 사용하여 접두사 값을 제공할 수 있습니다. 예: TestTopic으로 시작하는 주제에 대한 게시 권한을 제공하려면 리소스 값으로 "TestTopic*"을 제공할 수 있습니다. 다음은 몇 가지 정책 예제입니다.

  • 리소스 유형에 대한 디바이스 역할에 정의된 값과 코드에 사용된 실제 값이 일치하지 않습니다. 예: 역할에 ClientId 정의된 역할과 기기 코드에 실제로 ClientId 사용된 값이 일치하지 않는 경우. Topic 및 와 같은 ClientId 값은 장치 역할 및 코드에서 TopicFilter 동일해야 합니다.

  • 디바이스에 연결된 디바이스 인증서는 활성 상태여야 하며, 리소스에 대한 필수 작업 권한과 함께 연결된 정책이 있어야 합니다. 참고로, 장치 인증서 정책은 다음에 대한 액세스를 허용하거나 거부합니다. AWS IoT 리소스 및 AWS IoT Core 데이터 플레인 작업. Device Advisor를 사용하려면 테스트 사례 중에 사용되는 작업 권한을 부여하는 활성 디바이스 인증서가 디바이스에 연결되어 있어야 합니다.