IDT untuk AWS IoT Greengrass pemecahan masalah - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

IDT untuk AWS IoT Greengrass pemecahan masalah

IDT untuk AWS IoT Greengrass menulis eror ini ke berbagai lokasi berdasarkan jenis eror. Eror ditulis ke konsol tersebut, berkas log, dan laporan tes.

Kode eror

Tabel berikut mencantumkan kode eror yang dihasilkan oleh IDT untuk AWS IoT Greengrass.

Kode eror Nama kode eror Kemungkinan akar masalah Pemecahan Masalah

101

InternalError

Terjadi eror internal.

Periksa log di bawah <device-tester-extract-location>/results direktori. Jika Anda tidak dapat men-debug masalah, hubungi Support DeveloperAWS.

102

TimeOutError

Tes tidak dapat diselesaikan dalam rentang waktu yang terbatas. Hal ini dapat terjadi jika:

  • Ada koneksi jaringan yang lambat antara mesin tes dan perangkat (sebagai contoh, jika Anda menggunakan jaringan VPN).

  • Jaringan yang lambat menunda komunikasi antara perangkat dan cloud.

  • Bidang timeout di file konfigurasi tes (test.json) telah diubah secara keliru.

  • Periksa koneksi jaringan dan kecepatan.

  • Pastikan bahwa Anda tidak mengubah file apa pun di bawah /test direktori.

  • Coba jalankan grup tes gagal secara manual dengan "--group-id" bendera.

  • Coba jalankan tes suite dengan meningkatkan batas waktu tes. Untuk informasi selengkapnya, lihat Eror waktu habis.

103

PlatformNotSupportError

Kombinasi OS/arsitektur salah yang ditentukan dalam device.json.

Ubah konfigurasi Anda ke salah satu kombinasi yang didukung:

  • Linux, x86_64

  • Linux, ARMv6l

  • Linux, ARMv7l

  • Linux, AArch64

  • Ubuntu, x86_64

  • OpenWRT, ARMv7l

  • OpenWRT, AArch64

Untuk informasi selengkapnya, lihat Konfigurasikan device.json.

104

VersionNotSupportError

Versi AWS IoT Greengrass perangkat lunak Core tidak didukung oleh versi IDT yang Anda gunakan.

Gunakan device_tester_bin version perintah untuk menemukan versi yang didukung AWS IoT Greengrass perangkat lunak Core. Sebagai contoh, jika Anda menggunakan macOS, gunakan ./devicetester_mac_x86_64 version.

Untuk menemukan versi AWS IoT Greengrass perangkat lunak Inti yang Anda gunakan:

  • Jika anda menjalankan percobaan dengan prapasang AWS IoT Greengrass perangkat lunak Core, gunakan SSH untuk terhubung ke perangkat core AWS IoT Greengrass dan jalankan <path-to-preinstalled-greengrass-location>/greengrass/ggc/core/greengrassd --version

  • Jika Anda menjalankan tes dengan versi yang berbeda dari AWS IoT Greengrass perangkat lunak Core, pergi ke direktori devicetester_greengrass_ <os>/products/greengrass/gcc ini. Vers AWS IoT Greengrass perangkat lunak Core adalah bagian dari nama file .zip.

Anda dapat mengetes versi yang berbeda dari AWS IoT Greengrass perangkat lunak Core. Untuk informasi selengkapnya, lihat Memulai dengan AWS IoT Greengrass.

105

LanguageNotSupportError

IDT mendukung Python untuk AWS IoT Greengrass perpustakaan dan SDK saja.

Pastikan:

  • Paket SDK di bawah devicetester_greengrass_<os>/products/greengrass/ggsdk adalah SDK Python.

  • Isi dari bin di bawah devicetester_greengrass_<os> /tests/GGQ_1.0.0/suite/resources/run.runtimefarm/bin belum berubah.

106

ValidationError

Beberapa bidang di device.json atau config.json tidak valid.

Periksa pesan eror di sisi kanan kode eror dalam laporan.

  • Jenis autentikasi tidak valid untuk perangkat: Tentukan metode yang benar untuk terhubung ke perangkat Anda. Untuk informasi selengkapnya, lihat Konfigurasikan device.json.

  • Jalur kunci pribadi tidak valid: Tentukan jalur yang benar ke kunci privat Anda. Untuk informasi selengkapnya, lihat Konfigurasikan device.json.

  • Tidak validWilayah AWS: Tentukan validWilayah AWSdalamconfig.jsonberkas. Untuk informasi selengkapnya, lihat AWS titik akhir layanan.

  • AWSkredensi: Atur validAWSkredensi pada mesin tes Anda (dengan menggunakan variabel lingkungan ataucredentials). Verifikasi bahwa auth bidang dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat Buat dan konfigurasikan Akun AWS.

  • Input HSM tidak valid: Periksap11Provider,privateKeyLabel,slotLabel,slotUserPin, danopenSSLEnginebidang didevice.json.

107

SSHConnectionFailed

Mesin tes tidak dapat terhubung ke perangkat yang dikonfigurasi.

Verifikasi bahwa kolom berikut di file device.json Anda adalah benar:

  • ip

  • user

  • privKeyPath

  • password

Untuk informasi selengkapnya, lihat Konfigurasikan device.json.

108

RunCommandError

Tes gagal untuk menjalankan perintah pada perangkat yang dites.

Verifikasi bahwa akses root diizinkan untuk pengguna terkonfigurasi di device.json.

Kata sandi diperlukan oleh beberapa perangkat saat menjalankan perintah dengan akses root. Pastikan akses root diperbolehkan tanpa kata sandi. Untuk informasi lebih lanjut, lihat dokumentasi untuk perangkat Anda.

Coba jalankan perintah gagal secara manual di perangkat Anda untuk melihat jika terjadi eror.

109

PermissionDeniedError

Tidak ada akses root.

Atur akses root untuk pengguna yang dikonfigurasi di perangkat Anda.

110

CreateFileError

Tidak dapat membuat file.

Periksa ruang disk dan izin direktori perangkat Anda.

111

CreateDirError

Tidak dapat membuat sebuah direktori.

Periksa ruang disk dan izin direktori perangkat Anda.

112

InvalidPathError

Jalur ke AWS IoT Greengrass perangkat lunak Core tidak benar.

Verifikasi bahwa jalur dalam pesan eror adalah valid. Jangan mengedit file apa pun di bawah direktori devicetester_greengrass_<os> ini.

113

InvalidFileError

Sebuah file tidak valid.

Verifikasi bahwa file dalam pesan eror adalah valid.

114

ReadFileError

File yang ditentukan tidak dapat dibaca.

Verifikasi hal berikut:

  • Izin file sudah benar.

  • limits.config mengizinkan file yang cukup untuk dibuka.

  • File yang ditentukan dalam pesan eror ada dan berlaku.

Jika Anda mengetes di macOS, tingkatkan batas file yang terbuka. Batas default adalah 256, yang cukup untuk pengujian.

115

FileNotFoundError

File yang diperlukan tidak ditemukan.

Verifikasi hal berikut:

  • Sebuah file Greengrass terkompresi ada di bawah devicetester_greengrass_<os>/products/greengrass/ggc. Anda dapat mengunduh file tar Core AWS IoT Greengrass dari halaman mengunduh AWS IoT Greengrass Perangkat Lunak Core ini.

  • Paket SDK ada di bawah devicetester_greengrass_<os>/products/greengrass/ggsdk.

  • File di bawah devicetester_greengrass_<os>/tests belum dimodifikasi.

116

OpenFileFailed

Tak dapat membuka file yang ditentukan.

Verifikasi hal berikut:

  • File yang ditentukan dalam pesan eror ada dan berlaku.

  • limits.config mengizinkan file yang cukup untuk dibuka.

Jika Anda mengetes di macOS, tingkatkan batas file yang terbuka. Batas default adalah 256, yang cukup untuk pengujian.

117

WriteFileFailed

Gagal menulis file (dapat berupa DUT atau mesin tes).

Verifikasi bahwa direktori yang ditentukan dalam pesan eror yang ada dan bahwa Anda memiliki izin menulis.

118

FileCleanUpError

Sebuah tes gagal untuk menghapus file tertentu atau direktori atau untuk menjumlah file tertentu pada perangkat remote.

Jika file biner masih berjalan, file mungkin terkunci. Akhiri proses dan hapus file yang ditentukan.

119

InvalidInputError

Konfigurasi tidak valid.

Verifikasi bahwa suite.json file valid.

120

InvalidCredentialError

Kredensial AWS tidak valid.

  • Verifikasi kredensial AWS Anda. Untuk informasi selengkapnya, lihat Konfigurasikan kredensial AWS Anda.

  • Periksa koneksi jaringan Anda dan jalankan kembali grup tes. Masalah jaringan juga dapat casue eror ini.

121

AWSSessionError

Gagal membuat AWS sesi.

Eror ini dapat terjadi jika AWS kredensial tidak valid atau koneksi internet tidak stabil. Coba gunakan AWS CLI untuk memanggil AWS Operasi API.

122

AWSApicallError

Sebuah AWS eror API terjadi.

Eror ini mungkin terjadi karena masalah jaringan. Periksa jaringan Anda sebelum mencoba kembali grup tes.

123

IpNotExistError

Alamat IP tidak termasuk dalam informasi konektivitas.

Periksa koneksi internet Anda. Anda dapat menggunakan AWS IoT Greengrass konsol untuk memeriksa informasi konektivitas untuk AWS IoT Greengrass hal core yang sedang digunakan oleh tes. Jika ada 10 titik akhir yang disertakan dalam informasi konektivitas, Anda dapat menghapus beberapa atau semua dari mereka dan jalankan kembali tes. Untuk informasi selengkapnya, lihat informasi Konektivitas.

124

OTAJobNotCompleteError

Pekerjaan OTA tidak selesai.

Periksa koneksi internet Anda dan coba lagi grup tes OTA.

125

CreateGreengrassServiceRoleError

Salah satu dari hal berikut terjadi:

  • Terjadi eror saat membuat peran.

  • Terjadi eror saat melampirkan kebijakan untuk AWS IoT Greengrass peran layanan.

  • Kebijakan yang terkait dengan peran layanan tidak valid.

  • Terjadi eror ketika mengaitkan peran dengan Akun AWS.

Mengonfigurasi AWS IoT Greengrass peran layanan. Untuk informasi selengkapnya, lihat Peran layanan Greengrass.

126

DependenciesNotPresentError

Satu atau lebih dependensi yang diperlukan untuk tes tertentu tidak ada pada perangkat.

Periksa log tes untuk melihat dependensi yang hilang di perangkat Anda: <device-tester-extract-location>/results/<execution-id>/logs/<test-case-name.log>

127

InvalidHSMConfiguration

Konfigurasi HSM/PKCS yang disediakan tidak benar.

Di file device.json Anda, menyediakan konfigurasi yang diperlukan untuk berinteraksi dengan HSM menggunakan PKCS #11.

128

OTAJobNotSuccededError

Tugas OTA tidak berhasil.

  • Jika Anda menjalankan grup tes ota secara individual, jalankan grup tes ggcdependencies untuk memverifikasi bahwa semua dependensi (seperti wget) hadir. Kemudian coba lagi ota grup tes.

  • Tinjau log terperinci di bawah <device-tester-extract-location>/results/<execution-id>/logs/ untuk informasi pemecahan masalah dan eror. Khususnya, periksa log berikut ini:

    • Log konsol (test_manager.log)

    • Log tes kasus OTA (ota_test.log)

    • Log daemon GGC (ota_test_ggc_logs.tar.gz)

    • Log agen OTA (ota_test_ota_logs.tar.gz)

  • Periksa konektivitas internet Anda dan coba lagi ota grup tes.

  • Jika masalah berlanjut, hubungi Support DeveloperAWS.

129

NoConnectivityError

Agen host gagal untuk terhubung ke internet.

Periksa koneksi jaringan dan pengaturan firewall Anda. Coba lagi grup tes setelah masalah konektivitas teratasi.

130

NoPermissionError

User IAM yang Anda gunakan untuk menjalankan IDT AWS IoT Greengrass tidak memiliki izin untuk membuat AWS sumber daya yang diperlukan untuk menjalankan IDT.

Lihat Templat kebijakan izin untuk templat kebijakan yang memberikan izin yang diperlukan untuk menjalankan IDT AWS IoT Greengrass.

131

LeftoverAgentExistError

Perangkat Anda menjalankan AWS IoT Greengrass proses ketika Anda mencoba untuk mulai IDT AWS IoT Greengrass.

Pastikan tidak ada daemon Greengrass yang ada yang berjalan di perangkat Anda.

  • Anda dapat menggunakan perintah ini untuk menghentikan daemon: sudo ./<absolute-path-to-greengrass-daemon>/greengrassd stop.

  • Anda juga dapat mengakhiri daemon Greengrass dengan PID.

catatan

Jika Anda menggunakan instalasi yang ada AWS IoT Greengrass dikonfigurasi untuk mulai secara otomatis setelah reboot, Anda harus menghentikan daemon setelah reboot dan sebelum menjalankan tes suite.

132

DeviceTimeOffsetError

Perangkat ini mempunyai waktu yang salah.

Atur perangkat Anda ke waktu yang benar.

133

InvalidMLConfiguration

Konfigurasi ML yang disediakan tidak benar.

Di file device.json Anda, sediakan konfigurasi yang benar yang diperlukan untuk menjalankan tes inferensi ML. Untuk informasi selengkapnya, lihat Opsional: Mengonfigurasi perangkat Anda untuk kualifikasi ML-nya.

Menyelesaikan IDT untuk AWS IoT Greengrass eror

Ketika Anda menggunakan IDT, Anda harus mendapatkan file konfigurasi yang benar di tempat sebelum Anda menjalankan IDT untuk AWS IoT Greengrass. Jika Anda mendapatkan eror penguraian dan konfigurasi, langkah pertama Anda adalah menemukan dan menggunakan templat konfigurasi yang sesuai untuk lingkungan Anda.

Jika Anda masih mengalami masalah, lihat proses debugging berikut.

Di mana saya mencari eror?

Eror tingkat tinggi ditampilkan di konsol selama pelaksanaan, dan ringkasan tes gagal dengan eror ditampilkan ketika semua tes selesai. awsiotdevicetester_report.xml berisi ringkasan dari semua eror yang menyebabkan tes gagal. Berkas log untuk setiap tes dilakukan akan disimpan dalam direktori yang bernama dengan UUID untuk pelaksanaan tes yang ditampilkan pada konsol tersebut selama tes dilakukan.

Direktori log tes terletak di <device-tester-extract-location>/results/<execution-id>/logs/. Direktori ini berisi file-file berikut, yang berguna untuk debugging.

File Deskripsi
test_manager.log

Semua log yang ditulis ke konsol tersebut selama pelaksanaan tes. Ringkasan hasil terletak di akhir file ini, yang mencakup daftar tes yang gagal.

Log peringatan dan eror dalam file ini dapat memberikan beberapa informasi tentang kegagalan.

<test-group-id>__<test-name>.log Log terperinci untuk tes tertentu.
<test-name>_ggc_logs.tar.gz Koleksi terkompresi dari semua log AWS IoT Greengrass core daemon yang dihasilkan selama pengetesan. Untuk informasi selengkapnya, lihat Pemecahan Masalah AWS IoT Greengrass.
<test-name>_ota_logs.tar.gz Koleksi terkompresi log yang dihasilkan oleh AWS IoT Greengrass agen OTA selama tes. Untuk tes OTA saja.
<test-name>_basic_assertion_publisher_ggad_logs.tar.gz Koleksi terkompresi log yang dihasilkan oleh AWS IoT perangkat penerbit selama pengetesan.
<test-name>_basic_assertion_subscriber_ggad_logs.tar.gz Koleksi terkompresi log yang dihasilkan oleh AWS IoT perangkat pelanggan selama pengetesan.

Penguraian eror

Kadang-kadang, eror ketik dalam konfigurasi JSON dapat menyebabkan penguraian eror. Sebagian besar waktu, masalah adalah hasil dari menghilangkan braket, koma, atau tanda kutip dari file JSON Anda. IDT melakukan validasi JSON dan mencetak informasi debugging. Ini mencetak garis di mana eror terjadi, nomor baris, dan nomor kolom eror sintaks. Informasi ini harus cukup untuk membantu Anda memperbaiki eror, tetapi jika Anda masih tidak dapat menemukan eror, Anda dapat melakukan validasi secara manual di IDE Anda, editor teks seperti Atom atau Sublime, atau melalui alat online seperti JsonLint.

Parameter yang diperlukan tidak ada eror

Karena fitur baru sedang ditambahkan ke IDT, perubahan pada file konfigurasi mungkin akan diperkenalkan. Menggunakan file konfigurasi lama mungkin merusak konfigurasi Anda. Jika hal ini terjadi, <test_case_id>.log file di bawah /results/<execution-id>/logs secara eksplisit mencantumkan semua parameter yang hilang. IDT juga memvalidasi skema file konfigurasi JSON Anda untuk memastikan bahwa versi terbaru yang didukung telah digunakan.

Tidak dapat memulai eror pengetesan

Anda mungkin mengalami eror yang mengarah ke kegagalan selama tes dimulai. Ada beberapa kemungkinan penyebabnya, jadi lakukan hal berikut:

  • Pastikan bahwa nama kolam Anda termasuk dalam perintah pelaksanaan Anda benar-benar ada. Nama kolam direferensikan langsung dari device.json file.

  • Pastikan bahwa perangkat di kolam renang Anda memiliki parameter konfigurasi yang benar.

Tidak diotorisasi untuk mengakses eror sumber daya

Anda mungkin melihat <user or role> is not authorized to access this resource pesan eror dalam output terminal atau di test_manager.log file di bawah /results/<execution-id>/logs. Untuk mengatasi masalah ini, lampirkan AWSIoTDeviceTesterForGreengrassFullAccess kebijakan terkelola untuk pengguna pengetesan Anda. Untuk informasi selengkapnya, lihat Buat dan konfigurasikan Akun AWS.

Izin ditolak eror

IDT melakukan operasi pada berbagai direktori dan file dalam perangkat yang diuji. Beberapa operasi ini memerlukan akses akar. Untuk mengotomatisasi operasi ini, IDT harus dapat menjalankan perintah dengan sudo tanpa memasukkan kata sandi.

Ikuti langkah-langkah ini untuk mengizinkan akses sudo tanpa mengetikkan kata sandi.

catatan

user dan username mengacu pada pengguna SSH yang digunakan oleh IDT untuk mengakses perangkat yang diuji.

  1. Gunakan sudo usermod -aG sudo <ssh-username> untuk menambahkan pengguna SSH Anda ke grup sudo.

  2. Keluar, lalu masuk agar perubahan diterapkan.

  3. Buka file /etc/sudoers dan tambahkan baris berikut ke akhir file: <ssh-username> ALL=(ALL) NOPASSWD: ALL

    catatan

    Sebagai praktik terbaik, kami merekomendasikan Anda menggunakan sudo visudo ketika Anda mengedit /etc/sudoers.

Eror koneksi SSH

Ketika IDT tidak dapat terhubung ke perangkat yang dites, kegagalan koneksi dicatat di /results/<execution-id>/logs/<test-case-id>.log. Pesan kegagalan SSH muncul di bagian atas berkas log ini karena menghubungkan ke perangkat yang sedang dites adalah salah satu operasi pertama yang dilakukan IDT.

Sebagian besar pengaturan Windows menggunakan aplikasi terminal Putty untuk terhubung ke host Linux. Aplikasi ini mengharuskan file kunci privat PEM standar diubah menjadi format Windows berpemilik yang disebut PPK. Ketika IDT dikonfigurasi di file device.json Anda, gunakan file PEM saja. Jika Anda menggunakan file PPK, IDT tidak dapat membuat koneksi SSH dengan AWS IoT Greengrass dan tidak dapat menjalankan tes run.

Eror waktu habis

Anda dapat meningkatkan waktu habis untuk setiap tes dengan menentukan pengganda waktu habis, yang diterapkan ke nilai default dari waktu habis setiap tes. Nilai apa pun yang dikonfigurasi untuk bendera ini harus lebih besar dari atau sama dengan 1.0.

Untuk menggunakan pengganda batas waktu, gunakan bendera --timeout-multiplier saat menjalankan tes. Misalnya:

./devicetester_linux run-suite --suite-id GGQ_1.0.0 --pool-id DevicePool1 --timeout-multiplier 2.5

Untuk informasi lebih lanjut, jalankan run-suite --help.

Perintah tidak ditemukan eror saat pengetesan

Anda memerlukan versi lama dari pustaka OpenSSL (libssl1.0.0) untuk menjalankan pengujian pada perangkat AWS IoT Greengrass. Sebagian besar distribusi Linux menggunakan libssl versi 1.0.2 atau yang lebih baru (v1.1.0).

Sebagai contoh, pada Raspberry Pi, jalankan perintah berikut untuk menginstal versi libssl yang diperlukan:

  1. wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.2l-1~bpo8+1_armhf.deb
  2. sudo dpkg -i libssl1.0.0_1.0.2l-1~bpo8+1_armhf.deb

Pengecualian keamanan di macOS

Saat Anda menjalankan IDT di mesin host yang menggunakan macOS 10.15, tiket notaris untuk IDT tidak terdeteksi dengan benar dan IDT diblokir agar tidak dijalankan. Untuk menjalankan IDT, Anda akan perlu untuk memberikan pengecualian keamanan untuk devicetester_mac_x86-64 dilaksanakan.

Untuk memberikan pengecualian keamanan untuk IDT executable

  1. Luncurkan Sistem Preferensi dari menu Apple.

  2. Pilih Keamanan & Privasi, kemudian pada tab Umum, klik ikon kunci untuk membuat perubahan pada pengaturan keamanan.

  3. Cari pesan "devicetester_mac_x86-64" was blocked from use because it is not from an identified developer. dan pilih Mengizinkan Bagaimanapun.

  4. Menerima peringatan keamanan.

Jika Anda memiliki pertanyaan tentang kebijakan dukungan IDT, hubungi AWS Dukungan Pelanggan.