AWS IoT Panduan pemecahan masalah Device Advisor - AWS IoT Core

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

AWS IoT Panduan pemecahan masalah Device Advisor

Umum
T: Dapatkah saya menjalankan beberapa suite pengujian secara paralel?

J: Ya. Device Advisor sekarang mendukung menjalankan beberapa rangkaian pengujian pada perangkat yang berbeda menggunakan titik akhir tingkat Perangkat. Jika Anda menggunakan titik akhir tingkat Akun, Anda dapat menjalankan satu suite pada satu waktu karena satu titik akhir Device Advisor tersedia per akun. Untuk informasi selengkapnya, lihat Mengonfigurasi perangkat Anda.

T: Saya melihat dari perangkat saya bahwa TLS koneksi ditolak oleh Device Advisor. Apakah ini diharapkan?

J: Ya. Device Advisor menolak TLS koneksi sebelum dan sesudah setiap pengujian dijalankan. Kami menyarankan agar pengguna menerapkan mekanisme coba ulang perangkat untuk memiliki pengalaman pengujian yang sepenuhnya otomatis dengan Device Advisor. Jika Anda menjalankan rangkaian pengujian dengan lebih dari satu kasus uji, misalnya TLS sambungkan, MQTT sambungkan, dan MQTT publikasikan, sebaiknya Anda memiliki mekanisme yang dibuat untuk perangkat Anda. Mekanisme ini dapat mencoba terhubung ke titik akhir pengujian kami setiap 5 detik selama satu hingga dua menit. Dengan cara ini Anda dapat menjalankan beberapa kasus uji secara berurutan secara otomatis.

T: Dapatkah saya mendapatkan riwayat API panggilan Device Advisor yang dilakukan di akun saya untuk tujuan analisis keamanan dan pemecahan masalah operasional?

J: Ya. Untuk menerima riwayat API panggilan Device Advisor yang dilakukan di akun Anda, Anda cukup CloudTrail mengaktifkannya AWS IoT Management Console dan filter sumber acara yang akan menjadiiotdeviceadvisor.amazonaws.com.

T: Bagaimana cara melihat log Device Advisor? CloudWatch

J: Log yang dihasilkan selama rangkaian pengujian dijalankan akan diunggah CloudWatch jika Anda menambahkan kebijakan yang diperlukan (misalnya, CloudWatchFullAccess) ke peran layanan Anda (lihatMenyiapkan). Jika setidaknya ada satu kasus uji dalam rangkaian pengujian, grup log “aws/iot/deviceadvisor/$" dibuat testSuiteId dengan dua aliran log. Satu aliran adalah “$testRunId" dan menyertakan log tindakan yang diambil sebelum dan sesudah menjalankan kasus pengujian di rangkaian pengujian Anda, seperti langkah penyiapan dan pembersihan. Aliran log lainnya adalah “$ suiteRunId _$testRunId,” yang khusus untuk menjalankan rangkaian pengujian. Acara yang dikirim dari perangkat dan AWS IoT Core akan dicatat ke aliran log ini.

T: Apa tujuan dari peran izin perangkat?

A: Device Advisor berdiri di antara perangkat uji Anda dan AWS IoT Core untuk mensimulasikan skenario pengujian. Ini menerima koneksi dan pesan dari perangkat pengujian Anda dan meneruskannya ke AWS IoT Core dengan mengasumsikan peran izin perangkat Anda dan memulai koneksi atas nama Anda. Penting untuk memastikan izin peran perangkat sama dengan izin pada sertifikat yang Anda gunakan untuk menjalankan pengujian. AWS IoT kebijakan sertifikat tidak diberlakukan saat Device Advisor memulai koneksi ke AWS IoT Core atas nama Anda dengan menggunakan peran izin perangkat. Namun, izin dari peran izin perangkat yang Anda tetapkan diberlakukan.

T: Di Wilayah apa Device Advisor didukung?

J: Device Advisor didukung di Wilayah us-east-1, us-west-2, ap-northeast-1, dan eu-west-1.

T: Mengapa saya melihat hasil yang tidak konsisten?

J: Salah satu penyebab utama hasil yang tidak konsisten adalah menetapkan tes EXECUTION_TIMEOUT ke nilai yang terlalu rendah. Untuk informasi selengkapnya tentang EXECUTION_TIMEOUT nilai yang direkomendasikan dan default, lihat Kasus pengujian Device Advisor.

T: MQTT Protokol apa yang didukung oleh Device Advisor?

A: Device Advisor mendukung MQTT Versi 3.1.1 dengan sertifikat klien X509.

T: Bagaimana jika kasus pengujian saya gagal dengan pesan habis waktu eksekusi meskipun saya mencoba menghubungkan perangkat saya ke titik akhir pengujian?

J: Validasi semua langkah di bawah Buat IAM peran yang akan digunakan sebagai peran perangkat Anda. Jika pengujian masih gagal, bisa jadi perangkat tidak mengirimkan ekstensi Server Name Indication (SNI) yang benar, yang diperlukan agar Device Advisor berfungsi. SNINilai yang benar adalah alamat titik akhir yang dikembalikan saat mengikuti bagian Konfigurasi perangkat Anda. AWS IoT juga mengharuskan perangkat untuk mengirim ekstensi Server Name Indication (SNI) ke protokol Transport Layer Security (TLS). Untuk informasi selengkapnya, lihat Keamanan transportasi di AWS IoT.

T: MQTT Koneksi saya gagal dengan kesalahan "libaws-c-mqtt: AWS_ERROR _ MQTT _ UNEXPECTED _HANGUP" (atau) MQTT koneksi perangkat saya secara otomatis terputus dari titik akhir Device Advisor. Bagaimana kesalahan ini bisa diatasi?

J: Kode kesalahan khusus ini dan pemutusan yang tidak terduga dapat disebabkan oleh banyak hal yang berbeda, tetapi kemungkinan besar terkait dengan peran perangkat yang terpasang pada perangkat. Pos pemeriksaan di bawah ini (dalam urutan prioritas) akan menyelesaikan masalah ini.

  • Peran perangkat yang terpasang pada perangkat harus memiliki IAM izin minimum yang diperlukan untuk menjalankan pengujian. Device Advisor akan menggunakan peran perangkat terlampir untuk melakukan AWS IoT MQTTtindakan atas nama perangkat uji. Jika izin yang diperlukan tidak ada, maka AWS_ERROR_MQTT_UNEXPECTED_HANGUP kesalahan akan terlihat atau pemutusan tak terduga akan terjadi saat perangkat mencoba terhubung ke titik akhir Device Advisor. Misalnya, jika Anda memilih untuk menjalankan kasus uji MQTTPublikasikan, tindakan Connect dan Publish harus disertakan dalam peran dengan yang sesuai ClientId dan Topik (Anda dapat memberikan beberapa nilai dengan menggunakan koma untuk memisahkan nilai, dan Anda dapat memberikan nilai awalan menggunakan karakter wildcard (*). Misalnya: Untuk memberikan izin untuk mempublikasikan topik apa pun yang dimulaiTestTopic, Anda dapat memberikan "TestTopic*” sebagai nilai sumber daya. Berikut adalah beberapa contoh kebijakan.

  • Ketidakcocokan antara nilai yang ditentukan dalam peran perangkat untuk jenis sumber daya Anda dan nilai aktual yang digunakan dalam kode. Misalnya: Ketidakcocokan dalam ClientId didefinisikan dalam peran dan aktual yang ClientId digunakan dalam kode perangkat Anda. Nilai seperti ClientId, Topik, dan TopicFilter harus identik dalam peran perangkat dan kode.

  • Sertifikat perangkat yang dilampirkan ke perangkat Anda harus aktif dan memiliki kebijakan yang dilampirkan padanya dengan izin tindakan yang diperlukan untuk sumber daya. Perhatikan bahwa, kebijakan sertifikat perangkat memberikan atau menolak akses AWS IoT sumber daya dan AWS IoT Core operasi pesawat data. Device Advisor mengharuskan Anda untuk memiliki sertifikat perangkat aktif yang dilampirkan ke perangkat Anda yang memberikan izin tindakan yang digunakan selama kasus uji.