클라이언트 장치 문제 해결 - AWS IoT Greengrass

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

클라이언트 장치 문제 해결

이 섹션의 문제 해결 정보와 솔루션을 사용하면 Greengrass 클라이언트 장치 및 클라이언트 장치 구성 요소와 관련된 문제를 해결하는 데 도움이 됩니다.

그린그래스 디스커버리 이슈

다음 정보를 사용하여 Greengrass 검색 관련 문제를 해결하십시오. 이러한 문제는 클라이언트 장치가 Greengrass 검색 API를 사용하여 연결할 수 있는 Greengrass 코어 장치를 식별할 때 발생할 수 있습니다.

그린그래스 디스커버리 이슈 (HTTP API)

다음 정보를 사용하여 Greengrass 검색 관련 문제를 해결하십시오. cURL로 검색 API를 테스트하는 경우 이러한 오류가 표시될 수 있습니다.

curl: (52) Empty reply from server

요청에서 비활성 AWS IoT 인증서를 지정하면 이 오류가 표시될 수 있습니다.

클라이언트 장치에 연결된 인증서가 있고 인증서가 활성 상태인지 확인하십시오. 자세한 내용은 AWS IoT Core개발자 안내서의 클라이언트 인증서에 사물 또는 정책 연결 및 클라이언트 인증서 활성화 또는 비활성화를 참조하십시오.

HTTP 403: {"message":null,"traceId":"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"}

클라이언트 장치에 자체 호출 greengrass:Discover 권한이 없는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치의 인증서에 허용하는 정책이 있는지 확인하세요greengrass:Discover. Resource섹션의 사물 정책 변수 (iot:Connection.Thing.*) 는 이 권한에 사용할 수 없습니다. 자세한 설명은 디스커버리 인증 및 권한 부여 섹션을 참조하세요.

HTTP 404: {"errorMessage":"The thing provided for discovery was not found"}

다음과 같은 경우에 이 오류가 표시될 수 있습니다.

  • 클라이언트 장치는 Greengrass 코어 장치 또는 AWS IoT Greengrass V1 그룹과 연결되어 있지 않습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스 또는 AWS IoT Greengrass V1 그룹에는 MQTT 브로커 엔드포인트가 없습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스는 클라이언트 디바이스 인증 구성 요소를 실행하지 않습니다.

클라이언트 장치가 연결하려는 코어 장치에 연결되어 있는지 확인하십시오. 그런 다음 코어 디바이스가 클라이언트 디바이스 인증 구성 요소를 실행하고 MQTT Broker 엔드포인트가 하나 이상 있는지 확인합니다. 자세한 내용은 다음 자료를 참조하세요.

그린그래스 디스커버리 이슈 (파이썬의 경우 AWS IoT Device SDK v2)

Python용 v2에서 AWS IoT Device SDK Greengrass 검색과 관련된 문제를 해결하려면 다음 정보를 사용하십시오.

awscrt.exceptions.AwsCrtError: AWS_ERROR_HTTP_CONNECTION_CLOSED: The connection has closed or is closing.

요청에서 비활성 AWS IoT 인증서를 지정하면 이 오류가 표시될 수 있습니다.

클라이언트 장치에 연결된 인증서가 있고 인증서가 활성 상태인지 확인하십시오. 자세한 내용은 AWS IoT Core개발자 안내서의 클라이언트 인증서에 사물 또는 정책 연결 및 클라이언트 인증서 활성화 또는 비활성화를 참조하십시오.

awsiot.greengrass_discovery.DiscoveryException: ('Error during discover call: response_code=403', 403)

클라이언트 장치에 자체 호출 greengrass:Discover 권한이 없는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치의 인증서에 허용하는 정책이 있는지 확인하세요greengrass:Discover. Resource섹션의 사물 정책 변수 (iot:Connection.Thing.*) 는 이 권한에 사용할 수 없습니다. 자세한 설명은 디스커버리 인증 및 권한 부여 섹션을 참조하세요.

awsiot.greengrass_discovery.DiscoveryException: ('Error during discover call: response_code=404', 404)

다음과 같은 경우에 이 오류가 표시될 수 있습니다.

  • 클라이언트 장치는 Greengrass 코어 장치 또는 AWS IoT Greengrass V1 그룹과 연결되어 있지 않습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스 또는 AWS IoT Greengrass V1 그룹에는 MQTT 브로커 엔드포인트가 없습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스는 클라이언트 디바이스 인증 구성 요소를 실행하지 않습니다.

클라이언트 장치가 연결하려는 코어 장치에 연결되어 있는지 확인하십시오. 그런 다음 코어 디바이스가 클라이언트 디바이스 인증 구성 요소를 실행하고 MQTT Broker 엔드포인트가 하나 이상 있는지 확인합니다. 자세한 내용은 다음 자료를 참조하세요.

그린그래스 디스커버리 이슈 (C++의 경우 AWS IoT Device SDK v2)

다음 정보를 사용하여 C++용 v2에서 Greengrass 검색 관련 문제를 AWS IoT Device SDK 해결하십시오.

aws-c-http: AWS_ERROR_HTTP_CONNECTION_CLOSED, The connection has closed or is closing.

요청에서 비활성 AWS IoT 인증서를 지정하는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치에 연결된 인증서가 있고 인증서가 활성 상태인지 확인하십시오. 자세한 내용은 AWS IoT Core개발자 안내서의 클라이언트 인증서에 사물 또는 정책 연결 및 클라이언트 인증서 활성화 또는 비활성화를 참조하십시오.

aws-c-common: AWS_ERROR_UNKNOWN, Unknown error. (HTTP 403)

클라이언트 장치에 자체 호출 greengrass:Discover 권한이 없는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치의 인증서에 허용하는 정책이 있는지 확인하세요greengrass:Discover. Resource섹션의 사물 정책 변수 (iot:Connection.Thing.*) 는 이 권한에 사용할 수 없습니다. 자세한 설명은 디스커버리 인증 및 권한 부여 섹션을 참조하세요.

aws-c-common: AWS_ERROR_UNKNOWN, Unknown error. (HTTP 404)

다음과 같은 경우에 이 오류가 표시될 수 있습니다.

  • 클라이언트 장치는 Greengrass 코어 장치 또는 AWS IoT Greengrass V1 그룹과 연결되어 있지 않습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스 또는 AWS IoT Greengrass V1 그룹에는 MQTT 브로커 엔드포인트가 없습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스는 클라이언트 디바이스 인증 구성 요소를 실행하지 않습니다.

클라이언트 장치가 연결하려는 코어 장치에 연결되어 있는지 확인하십시오. 그런 다음 코어 디바이스가 클라이언트 디바이스 인증 구성 요소를 실행하고 MQTT Broker 엔드포인트가 하나 이상 있는지 확인합니다. 자세한 내용은 다음 자료를 참조하세요.

그린그래스 디스커버리 이슈 (AWS IoT Device SDKv2의 경우) JavaScript

다음 정보를 사용하여 v2 양식에서 Greengrass 검색 관련 문제를 AWS IoT Device SDK해결하십시오. JavaScript

Error: aws-c-http: AWS_ERROR_HTTP_CONNECTION_CLOSED, The connection has closed or is closing.

요청에서 비활성 AWS IoT 인증서를 지정하는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치에 연결된 인증서가 있고 인증서가 활성 상태인지 확인하십시오. 자세한 내용은 AWS IoT Core개발자 안내서의 클라이언트 인증서에 사물 또는 정책 연결 및 클라이언트 인증서 활성화 또는 비활성화를 참조하십시오.

Error: Discovery failed (headers: [object Object]) { response_code: 403 }

클라이언트 장치에 자체 호출 greengrass:Discover 권한이 없는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치의 인증서에 허용하는 정책이 있는지 확인하세요greengrass:Discover. Resource섹션의 사물 정책 변수 (iot:Connection.Thing.*) 는 이 권한에 사용할 수 없습니다. 자세한 설명은 디스커버리 인증 및 권한 부여 섹션을 참조하세요.

Error: Discovery failed (headers: [object Object]) { response_code: 404 }

다음과 같은 경우에 이 오류가 표시될 수 있습니다.

  • 클라이언트 장치는 Greengrass 코어 장치 또는 AWS IoT Greengrass V1 그룹과 연결되어 있지 않습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스 또는 AWS IoT Greengrass V1 그룹에는 MQTT 브로커 엔드포인트가 없습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스는 클라이언트 디바이스 인증 구성 요소를 실행하지 않습니다.

클라이언트 장치가 연결하려는 코어 장치에 연결되어 있는지 확인하십시오. 그런 다음 코어 디바이스가 클라이언트 디바이스 인증 구성 요소를 실행하고 MQTT Broker 엔드포인트가 하나 이상 있는지 확인합니다. 자세한 내용은 다음 자료를 참조하세요.

Error: Discovery failed (headers: [object Object])

Greengrass 검색 샘플을 실행할 때 HTTP 응답 코드가 없는 상태에서 이 오류가 표시될 수 있습니다. 이 오류는 여러 가지 이유로 발생할 수 있습니다.

  • 클라이언트 장치에 자체 호출 greengrass:Discover 권한이 없는 경우 이 오류가 표시될 수 있습니다.

    클라이언트 장치의 인증서에 허용하는 정책이 있는지 확인하세요greengrass:Discover. Resource섹션의 사물 정책 변수 (iot:Connection.Thing.*) 는 이 권한에 사용할 수 없습니다. 자세한 설명은 디스커버리 인증 및 권한 부여 섹션을 참조하세요.

  • 다음과 같은 경우에 이 오류가 표시될 수 있습니다.

    • 클라이언트 장치는 Greengrass 코어 장치 또는 AWS IoT Greengrass V1 그룹과 연결되어 있지 않습니다.

    • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스 또는 AWS IoT Greengrass V1 그룹에는 MQTT 브로커 엔드포인트가 없습니다.

    • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스는 클라이언트 디바이스 인증 구성 요소를 실행하지 않습니다.

    클라이언트 장치가 연결하려는 코어 장치에 연결되어 있는지 확인하십시오. 그런 다음 코어 디바이스가 클라이언트 디바이스 인증 구성 요소를 실행하고 MQTT Broker 엔드포인트가 하나 이상 있는지 확인합니다. 자세한 내용은 다음 자료를 참조하세요.

그린그래스 디스커버리 이슈 (자바의 경우 AWS IoT Device SDK v2)

다음 정보를 사용하여 Java용 v2에서 Greengrass 검색 관련 문제를 AWS IoT Device SDK 해결하십시오.

software.amazon.awssdk.crt.CrtRuntimeException: Error Getting Response Status Code from HttpStream. (aws_last_error: AWS_ERROR_HTTP_DATA_NOT_AVAILABLE(2062), This data is not yet available.)

요청에서 비활성 AWS IoT 인증서를 지정하는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치에 연결된 인증서가 있고 인증서가 활성 상태인지 확인하십시오. 자세한 내용은 AWS IoT Core개발자 안내서의 클라이언트 인증서에 사물 또는 정책 연결 및 클라이언트 인증서 활성화 또는 비활성화를 참조하십시오.

java.lang.RuntimeException: Error x-amzn-ErrorType(403)

클라이언트 장치에 자체 호출 greengrass:Discover 권한이 없는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치의 인증서에 허용하는 정책이 있는지 확인하세요greengrass:Discover. Resource섹션의 사물 정책 변수 (iot:Connection.Thing.*) 는 이 권한에 사용할 수 없습니다. 자세한 설명은 디스커버리 인증 및 권한 부여 섹션을 참조하세요.

java.lang.RuntimeException: Error x-amzn-ErrorType(404)

다음과 같은 경우에 이 오류가 표시될 수 있습니다.

  • 클라이언트 장치는 Greengrass 코어 장치 또는 AWS IoT Greengrass V1 그룹과 연결되어 있지 않습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스 또는 AWS IoT Greengrass V1 그룹에는 MQTT 브로커 엔드포인트가 없습니다.

  • 클라이언트 디바이스와 연결된 Greengrass 코어 디바이스는 클라이언트 디바이스 인증 구성 요소를 실행하지 않습니다.

클라이언트 장치가 연결하려는 코어 장치에 연결되어 있는지 확인하십시오. 그런 다음 코어 디바이스가 클라이언트 디바이스 인증 구성 요소를 실행하고 MQTT Broker 엔드포인트가 하나 이상 있는지 확인합니다. 자세한 내용은 다음 자료를 참조하세요.

MQTT 연결 문제

다음 정보를 사용하여 클라이언트 장치 MQTT 연결 문제를 해결하십시오. 이러한 문제는 클라이언트 장치가 MQTT를 통해 코어 장치에 연결하려고 할 때 발생할 수 있습니다.

io.moquette.broker.Authorizator: Client does not have read permissions on the topic

클라이언트 장치가 권한이 없는 MQTT 주제를 구독하려고 하면 Greengrass 로그에 이 오류가 표시될 수 있습니다. 오류 메시지에는 해당 주제가 포함되어 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하십시오.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 주제에 대한 mqtt:subscribe 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

MQTT 연결 문제 (Python)

Python용 AWS IoT Device SDK v2를 사용할 때 다음 정보를 사용하여 클라이언트 장치 MQTT 연결 문제를 해결하십시오.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

클라이언트 장치 인증 구성 요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 인증 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

클라이언트 장치 인증 구성요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 인증 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

MQTT 연결 문제 (C++)

C++용 v2를 사용할 때 다음 정보를 사용하여 클라이언트 장치 MQTT 연결 문제를 해결하십시오AWS IoT Device SDK.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

클라이언트 장치 인증 구성 요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 인증 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

클라이언트 장치 인증 구성요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 인증 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

MQTT 연결 문제 (Java)

Java용 AWS IoT Device SDKv2를 사용할 때 다음 정보를 사용하여 클라이언트 장치 MQTT 연결 문제를 해결하십시오.

software.amazon.awssdk.crt.mqtt.MqttException: Protocol error occurred

클라이언트 장치 인증 구성 요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 인증 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

클라이언트 장치 인증 구성요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 인증 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

MQTT 연결 문제 () JavaScript

다음 정보를 사용하여 v2를 사용할 때 클라이언트 장치 MQTT 연결 문제를 해결하십시오AWS IoT Device SDK. JavaScript

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

클라이언트 장치 인증 구성 요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 권한 부여 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.

AWS_ERROR_MQTT_UNEXPECTED_HANGUP: Unexpected hangup occurred

클라이언트 장치 인증 구성요소가 클라이언트 장치에 연결 권한을 부여하는 클라이언트 장치 인증 정책을 정의하지 않는 경우 이 오류가 표시될 수 있습니다.

클라이언트 장치 인증 구성 요소의 구성에 다음이 포함되어 있는지 확인하세요.

  • 클라이언트 장치와 일치하는 장치 그룹.

  • 클라이언트 장치에 대한 mqtt:connect 권한을 부여하는 해당 장치 그룹의 클라이언트 장치 인증 정책.

클라이언트 장치 인증 구성 요소를 배포하고 구성하는 방법에 대한 자세한 내용은 다음을 참조하십시오.