Menyelesaikan masalah perangkat klien - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyelesaikan masalah perangkat klien

Gunakan informasi pemecahan masalah dan solusi di bagian ini untuk membantu menyelesaikan masalah dengan perangkat klien Greengrass dan komponen perangkat klien.

Masalah penemuan Greengrass

Gunakan informasi berikut untuk memecahkan masalah dengan penemuan Greengrass. Masalah ini dapat terjadi ketika perangkat klien menggunakan API penemuan Greengrass untuk mengidentifikasi perangkat inti Greengrass yang dapat mereka hubungkan.

Masalah penemuan Greengrass (HTTP API)

Gunakan informasi berikut untuk memecahkan masalah dengan penemuan Greengrass. Anda mungkin melihat kesalahan ini jika Anda menguji API penemuan dengan cURL.

curl: (52) Empty reply from server

Anda mungkin melihat kesalahan ini jika Anda menentukan sertifikat AWS IoT dalam permintaan.

Periksa apakah perangkat klien memiliki sertifikat terlampir, dan apakah sertifikat itu aktif. Untuk informasi selengkapnya, lihat Lampirkan objek atau kebijakan ke sertifikat klien dan Aktifkan atau nonaktifkan sertifikat klien dalam Panduan Developer AWS IoT Core.

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

Anda mungkin melihat kesalahan ini jika perangkat klien tidak memiliki izin untuk memanggil greengrass:Discover untuk dirinya sendiri.

Periksa apakah sertifikat perangkat klien memiliki kebijakan yang mengizinkan greengrass:Discover. Anda tidak dapat menggunakan variabel kebijakan (iot:Connection.Thing.*) di bagian Resource untuk izin ini. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi penemuan.

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

Anda mungkin melihat kesalahan ini dalam kasus berikut:

  • Perangkat klien tidak terkait dengan perangkat inti Greengrass atauAWS IoT Greengrass V1grup.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien atauAWS IoT Greengrass V1kelompok memiliki titik akhir broker MQTT.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien yang menjalankankomponen auth perangkat klien.

Periksa apakah perangkat klien terkait ke perangkat inti yang Anda inginkan untuk terhubung. Kemudian, periksa apakah perangkat inti menjalankankomponen auth perangkat kliendan memiliki setidaknya satu titik akhir broker. Untuk informasi selengkapnya, lihat yang berikut:

Masalah penemuan Greengrass (AWS IoT Device SDK v2 for Python)

Gunakan informasi berikut untuk memecahkan masalah dengan penemuan Greengrass di AWS IoT Device SDK v2 for Python.

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

Anda mungkin melihat kesalahan ini jika Anda menentukan sertifikat AWS IoT yang tidak aktif dalam permintaan.

Periksa apakah perangkat klien memiliki sertifikat terlampir, dan apakah sertifikat itu aktif. Untuk informasi selengkapnya, lihat Lampirkan objek atau kebijakan ke sertifikat klien dan Aktifkan atau nonaktifkan sertifikat klien dalam Panduan Developer AWS IoT Core.

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

Anda mungkin melihat kesalahan ini jika perangkat klien tidak memiliki izin untuk memanggil greengrass:Discover untuk dirinya sendiri.

Periksa apakah sertifikat perangkat klien memiliki kebijakan yang mengizinkan greengrass:Discover. Anda tidak dapat menggunakan variabel kebijakan (iot:Connection.Thing.*) di bagian Resource untuk izin ini. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi penemuan.

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

Anda mungkin melihat kesalahan ini dalam kasus berikut:

  • Perangkat klien tidak terkait dengan perangkat inti Greengrass atauAWS IoT Greengrass V1grup.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien atauAWS IoT Greengrass V1kelompok memiliki titik akhir broker MQTT.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien yang menjalankankomponen auth perangkat klien.

Periksa apakah perangkat klien terkait ke perangkat inti yang Anda inginkan untuk terhubung. Kemudian, periksa apakah perangkat inti menjalankankomponen auth perangkat kliendan memiliki setidaknya satu titik akhir broker. Untuk informasi selengkapnya, lihat yang berikut:

Masalah penemuan Greengrass (AWS IoT Device SDK v2 for C++)

Gunakan informasi berikut untuk memecahkan masalah dengan penemuan Greengrass di AWS IoT Device SDK v2 for C++.

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

Anda mungkin melihat kesalahan ini jika Anda menentukan sertifikat AWS IoT yang tidak aktif dalam permintaan.

Periksa apakah perangkat klien memiliki sertifikat terlampir, dan apakah sertifikat itu aktif. Untuk informasi selengkapnya, lihat Lampirkan objek atau kebijakan ke sertifikat klien dan Aktifkan atau nonaktifkan sertifikat klien dalam Panduan Developer AWS IoT Core.

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

Anda mungkin melihat kesalahan ini jika perangkat klien tidak memiliki izin untuk memanggil greengrass:Discover untuk dirinya sendiri.

Periksa apakah sertifikat perangkat klien memiliki kebijakan yang mengizinkan greengrass:Discover. Anda tidak dapat menggunakan variabel kebijakan (iot:Connection.Thing.*) di bagian Resource untuk izin ini. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi penemuan.

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

Anda mungkin melihat kesalahan ini dalam kasus berikut:

  • Perangkat klien tidak terkait dengan perangkat inti Greengrass atauAWS IoT Greengrass V1grup.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien atauAWS IoT Greengrass V1kelompok memiliki titik akhir broker MQTT.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien yang menjalankankomponen auth perangkat klien.

Periksa apakah perangkat klien terkait ke perangkat inti yang Anda inginkan untuk terhubung. Kemudian, periksa apakah perangkat inti menjalankankomponen auth perangkat kliendan memiliki setidaknya satu titik akhir broker. Untuk informasi selengkapnya, lihat yang berikut:

Masalah penemuan Greengrass (AWS IoT Device SDKv2 JavaScript)

Gunakan informasi berikut untuk memecahkan masalah dengan penemuan Greengrass diAWS IoT Device SDKv2 JavaScript.

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

Anda mungkin melihat kesalahan ini jika Anda menentukan sertifikat AWS IoT yang tidak aktif dalam permintaan.

Periksa apakah perangkat klien memiliki sertifikat terlampir, dan apakah sertifikat itu aktif. Untuk informasi selengkapnya, lihat Lampirkan objek atau kebijakan ke sertifikat klien dan Aktifkan atau nonaktifkan sertifikat klien dalam Panduan Developer AWS IoT Core.

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

Anda mungkin melihat kesalahan ini jika perangkat klien tidak memiliki izin untuk memanggil greengrass:Discover untuk dirinya sendiri.

Periksa apakah sertifikat perangkat klien memiliki kebijakan yang mengizinkan greengrass:Discover. Anda tidak dapat menggunakan variabel kebijakan (iot:Connection.Thing.*) di bagian Resource untuk izin ini. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi penemuan.

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

Anda mungkin melihat kesalahan ini dalam kasus berikut:

  • Perangkat klien tidak terkait dengan perangkat inti Greengrass atauAWS IoT Greengrass V1grup.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien atauAWS IoT Greengrass V1kelompok memiliki titik akhir broker MQTT.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien yang menjalankankomponen auth perangkat klien.

Periksa apakah perangkat klien terkait ke perangkat inti yang Anda inginkan untuk terhubung. Kemudian, periksa apakah perangkat inti menjalankankomponen auth perangkat kliendan memiliki setidaknya satu titik akhir broker. Untuk informasi selengkapnya, lihat yang berikut:

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

Anda mungkin melihat kesalahan ini (tanpa kode respons HTTP) ketika Anda menjalankan sampel penemuan Greengrass. Kesalahan ini dapat terjadi karena berbagai alasan.

  • Anda mungkin melihat kesalahan ini jika perangkat klien tidak memiliki izin untuk memanggil greengrass:Discover untuk dirinya sendiri.

    Periksa apakah sertifikat perangkat klien memiliki kebijakan yang mengizinkan greengrass:Discover. Anda tidak dapat menggunakan variabel kebijakan (iot:Connection.Thing.*) di bagian Resource untuk izin ini. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi penemuan.

  • Anda mungkin melihat kesalahan ini dalam kasus berikut:

    • Perangkat klien tidak terkait dengan perangkat inti Greengrass atauAWS IoT Greengrass V1grup.

    • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien atauAWS IoT Greengrass V1kelompok memiliki titik akhir broker MQTT.

    • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien yang menjalankankomponen auth perangkat klien.

    Periksa apakah perangkat klien terkait ke perangkat inti yang Anda inginkan untuk terhubung. Kemudian, periksa apakah perangkat inti menjalankankomponen auth perangkat kliendan memiliki setidaknya satu titik akhir broker. Untuk informasi selengkapnya, lihat yang berikut:

Masalah penemuan Greengrass (v2 for Java AWS IoT Device SDK)

Gunakan informasi berikut untuk memecahkan masalah dengan penemuan Greengrass di AWS IoT Device SDK v2 for Java.

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.)

Anda mungkin melihat kesalahan ini jika Anda menentukan sertifikat AWS IoT yang tidak aktif dalam permintaan.

Periksa apakah perangkat klien memiliki sertifikat terlampir, dan apakah sertifikat itu aktif. Untuk informasi selengkapnya, lihat Lampirkan objek atau kebijakan ke sertifikat klien dan Aktifkan atau nonaktifkan sertifikat klien dalam Panduan Developer AWS IoT Core.

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

Anda mungkin melihat kesalahan ini jika perangkat klien tidak memiliki izin untuk memanggil greengrass:Discover untuk dirinya sendiri.

Periksa apakah sertifikat perangkat klien memiliki kebijakan yang mengizinkan greengrass:Discover. Anda tidak dapat menggunakan variabel kebijakan (iot:Connection.Thing.*) di bagian Resource untuk izin ini. Untuk informasi selengkapnya, lihat Autentikasi dan otorisasi penemuan.

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

Anda mungkin melihat kesalahan ini dalam kasus berikut:

  • Perangkat klien tidak terkait dengan perangkat inti Greengrass atauAWS IoT Greengrass V1grup.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien atauAWS IoT Greengrass V1kelompok memiliki titik akhir broker MQTT.

  • Tak satu pun dari perangkat inti Greengrass terkait perangkat klien yang menjalankankomponen auth perangkat klien.

Periksa apakah perangkat klien terkait ke perangkat inti yang Anda inginkan untuk terhubung. Kemudian, periksa apakah perangkat inti menjalankankomponen auth perangkat kliendan memiliki setidaknya satu titik akhir broker. Untuk informasi selengkapnya, lihat yang berikut:

Masalah koneksi MQTT

Gunakan informasi berikut untuk memecahkan masalah dengan koneksi MQTT perangkat klien. Masalah ini dapat terjadi ketika perangkat klien mencoba menyambung ke perangkat inti melalui MQTT.

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

Anda mungkin melihat kesalahan ini di log Greengrass saat perangkat klien mencoba berlangganan topik MQTT yang tidak memiliki izin. Pesan kesalahan mencakup topik.

Periksa bahwakomponen autentikasi perangkat klien 'konfigurasi meliputi hal berikut:

  • Grup perangkat yang cocok dengan perangkat klien.

  • Kebijakan otorisasi perangkat klien untuk grup perangkat yang memberikanmqtt:subscribeizin untuk topik.

Untuk informasi selengkapnya tentang cara menerapkan dan mengonfigurasi komponen auth perangkat klien, lihat hal berikut:

Masalah koneksi MQTT (Python)

Gunakan informasi berikut untuk memecahkan masalah dengan koneksi MQTT perangkat klien saat Anda menggunakanAWS IoT Device SDKv2.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

Anda mungkin melihat kesalahan ini jikakomponen auth perangkat klientidak menentukan kebijakan otorisasi perangkat klien yang memberikan izin kepada perangkat klien untuk terhubung.

Periksa apakah konfigurasi komponen autentikasi perangkat klien mencakup hal-hal berikut:

  • Grup perangkat yang cocok dengan perangkat klien.

  • Kebijakan otorisasi perangkat klien untuk grup perangkat yang memberikanmqtt:connectizin untuk perangkat klien.

Untuk informasi selengkapnya tentang cara menerapkan dan mengonfigurasi komponen auth perangkat klien, lihat hal berikut:

Masalah koneksi MQTT (C++)

Gunakan informasi berikut untuk memecahkan masalah dengan koneksi MQTT perangkat klien saat Anda menggunakanAWS IoT Device SDKv2.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

Anda mungkin melihat kesalahan ini jikakomponen auth perangkat klientidak menentukan kebijakan otorisasi perangkat klien yang memberikan izin kepada perangkat klien untuk terhubung.

Periksa apakah konfigurasi komponen autentikasi perangkat klien mencakup hal-hal berikut:

  • Grup perangkat yang cocok dengan perangkat klien.

  • Kebijakan otorisasi perangkat klien untuk grup perangkat yang memberikanmqtt:connectizin untuk perangkat klien.

Untuk informasi selengkapnya tentang cara menerapkan dan mengonfigurasi komponen auth perangkat klien, lihat hal berikut:

Masalah koneksi MQTT (Java)

Gunakan informasi berikut untuk memecahkan masalah dengan koneksi MQTT perangkat klien saat Anda menggunakanAWS IoT Device SDKv2.

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

Anda mungkin melihat kesalahan ini jikakomponen auth perangkat klientidak menentukan kebijakan otorisasi perangkat klien yang memberikan izin kepada perangkat klien untuk terhubung.

Periksa apakah konfigurasi komponen autentikasi perangkat klien mencakup hal-hal berikut:

  • Grup perangkat yang cocok dengan perangkat klien.

  • Kebijakan otorisasi perangkat klien untuk grup perangkat yang memberikanmqtt:connectizin untuk perangkat klien.

Untuk informasi selengkapnya tentang cara menerapkan dan mengonfigurasi komponen auth perangkat klien, lihat hal berikut:

Masalah koneksi MQTT (JavaScript)

Gunakan informasi berikut untuk memecahkan masalah dengan koneksi MQTT perangkat klien saat Anda menggunakanAWS IoT Device SDKv2 JavaScript.

AWS_ERROR_MQTT_PROTOCOL_ERROR: Protocol error occurred

Anda mungkin melihat kesalahan ini jikakomponen auth perangkat klientidak menentukan kebijakan otorisasi perangkat klien yang memberikan izin kepada perangkat klien untuk terhubung.

Periksa apakah konfigurasi komponen autentikasi perangkat klien mencakup hal-hal berikut:

  • Grup perangkat yang cocok dengan perangkat klien.

  • Kebijakan otorisasi perangkat klien untuk grup perangkat yang memberikanmqtt:connectizin untuk perangkat klien.

Untuk informasi selengkapnya tentang cara menerapkan dan mengonfigurasi komponen auth perangkat klien, lihat hal berikut: