Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyelesaian masalah IDT untuk V2 AWS IoT Greengrass
IDT untuk V2 AWS IoT Greengrass menuliskan kesalahan ke berbagai lokasi berdasarkan jenis kesalahan. IDT menuliskan kesalahan ke konsol, file log, dan laporan tes.
Di mana mencari kesalahan
Kesalahan tingkat tinggi ditampilkan di konsol saat pengujian sedang berjalan, dan ringkasan pengujian yang gagal ditampilkan saat semua pengujian selesai.awsiotdevicetester_report.xml
berisi ringkasan semua kesalahan yang menyebabkan tes gagal. IDT menyimpan file log untuk setiap pengujian yang dijalankan di direktori dengan UUID untuk eksekusi pengujian, ditampilkan di konsol selama uji coba.
Direktori log uji IDT adalah
. Direktori ini berisi file-file berikut yang ditampilkan dalam tabel. Ini berguna untuk debugging.<device-tester-extract-location>
/results/<execution-id>
/logs/
File | Deskripsi |
---|---|
test_manager.log |
Log ditulis ke konsol saat tes sedang berjalan. Ringkasan hasil pada akhir file ini mencakup daftar tes yang gagal. Catatan peringatan dan kesalahan dalam file ini dapat memberikan beberapa informasi tentang kegagalan. |
|
Log terperrinci untuk tes spesifik dalam grup uji. Untuk tes yang men-deploy komponen Greengrass, uji kasus file log tersebut disebut greengrass-test-run.log . |
|
Log terperinci untuk perangkat lunak inti AWS IoT Greengrass. IDT menyalin file ini dari perangkat yang diuji ketika menjalankan tes yang menginstal perangkat lunak inti AWS IoT Greengrass pada perangkat. Untuk informasi selengkapnya tentang pesan dalam file log ini, lihat Pemecahan masalah AWS IoT Greengrass V2. |
|
Log terperinci untuk komponen Greengrass yang di-deploy selama uji coba. IDT menyalin file log komponen dari perangkat yang diuji ketika menjalankan tes yang men-deploy komponen tertentu. Nama setiap file log komponen sesuai dengan nama komponen yang di-deploy. Untuk informasi selengkapnya tentang pesan dalam berkas log ini, lihat Pemecahan masalah AWS IoT Greengrass V2. |
Menyelesaikan IDT untuk kesalahan V2 AWS IoT Greengrass
Sebelum Anda menjalankan IDT untuk AWS IoT Greengrass, dapatkan file konfigurasi yang benar di tempatnya. Jika Anda menerima parsing dan konfigurasi kesalahan, langkah pertama Anda adalah menemukan dan menggunakan templat konfigurasi yang sesuai untuk lingkungan Anda.
Jika Anda masih mengalami masalah, lihat proses debugging berikut.
Topik
- Kesalahan resolusi alias
- Kesalahan konflik
- Tidak dapat memulai kesalahan uji
- Gambar kualifikasi docker ada kesalahan
- Gagal membaca kredensi
- Kesalahan Guice dengan PreInstalled Greengrass
- Pengecualian tanda tangan tidak valid
- Kesalahan kualifikasi machine learning
- Penerapan gagal Open Test Framework (OTF)
- Kesalahan parsing
- Kesalahan ditolak izin
- Kesalahan pembuatan laporan kualifikasi
- Parameter yang diperlukan kehilangan kesalahan
- Pengecualian keamanan di macOS
- Kesalahan koneksi SSH
- Kesalahan kualifikasi stream manager
- Kesalahan batas waktu
- Kesalahan pemeriksaan versi
Kesalahan resolusi alias
Saat Anda menjalankan suite pengujian khusus, Anda mungkin melihat kesalahan berikut di konsol dan ditest_manager.log
.
Couldn't resolve placeholders: couldn't do a json lookup: index out of range
Kesalahan ini dapat terjadi ketika alias yang dikonfigurasi dalam orkestrator pengujian IDT tidak diselesaikan dengan benar atau jika nilai yang diselesaikan tidak ada dalam file konfigurasi. Untuk mengatasi kesalahan ini, pastikan bahwadevice.json
danuserdata.json
berisi informasi yang benar yang diperlukan untuk rangkaian pengujian Anda. Untuk informasi tentang konfigurasi yang diperlukan untukAWS IoT Greengrasskualifikasi, lihatKonfigurasikan pengaturan IDT untuk menjalankan rangkaian AWS IoT Greengrass kualifikasi.
Kesalahan konflik
Anda mungkin melihat kesalahan berikut ketika Anda menjalankan rangkaian kualifikasi AWS IoT Greengrass secara bersamaan di lebih dari satu perangkat.
ConflictException: Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id
] already exists with state: [DEPLOYABLE] { RespMetadata: { StatusCode: 409, RequestID: “id
” }, Message_: “Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id
] already exists with state: [DEPLOYABLE]” }
Eksekusi uji bersamaan belum didukung untuk rangkaian kualifikasi AWS IoT Greengrass. Jalankan rangkaian kualifikasi secara berurutan untuk setiap perangkat.
Tidak dapat memulai kesalahan uji
Anda mungkin mengalami kesalahan yang mengarah ke kegagalan yang terjadi ketika tes mencoba untuk dimulai. Ada beberapa kemungkinan penyebabnya, jadi lakukan hal berikut:
-
Pastikan bahwa nama kolam dalam perintah eksekusi Anda benar-benar ada. IDT mengacu nama kolam secara langsung dari file
device.json
. -
Pastikan bahwa perangkat di kolam Anda memiliki parameter konfigurasi yang benar.
Gambar kualifikasi docker ada kesalahan
Tes kualifikasi manajer aplikasi Docker menggunakanamazon/amazon-ec2-metadata-mock
gambar kontainer di Amazon ECR untuk memenuhi syarat perangkat yang diuji.
Anda mungkin menerima kesalahan berikut jika gambar sudah ada dalam kontainer Docker pada perangkat yang diuji.
The Docker image amazon/amazon-ec2-metadata-mock:
version
already exists on the device.
Jika Anda sebelumnya telah mengunduh gambar ini dan menjalankan amazon/amazon-ec2-metadata-mock
di perangkat Anda, pastikan Anda menghapus gambar ini dari perangkat yang sedang diuji sebelum Anda menjalankan tes kualifikasi.
Gagal membaca kredensi
Saat menguji perangkat Windows, Anda mungkin menemukanFailed to read
credential
kesalahan dalamgreengrass.log
berkas jika pengguna yang Anda gunakan untuk menyambung ke perangkat yang sedang diuji tidak diatur di pengelola kredensi pada perangkat tersebut.
Untuk mengatasi kesalahan ini, konfigurasikan pengguna dan kata sandi untuk pengguna IDT di pengelola kredensi pada perangkat yang sedang diuji.
Untuk informasi selengkapnya, lihat Konfigurasikan kredensional pengguna untuk perangkat Windows.
Kesalahan Guice dengan PreInstalled Greengrass
Saat menjalankan IDT dengan PreInstalled Greengrass, jika Anda menemukan kesalahanGuice
atauErrorInCustomProvider
, periksa apakah fileuserdata.json
memilikiInstalledDirRootOnDevice
atur ke folder instalasi Greengrass. IDT memeriksa fileeffectiveConfig.yaml
di bawah<InstallationDirRootOnDevice>/config/effectiveConfig.yaml
.
Untuk informasi selengkapnya, lihat Konfigurasikan kredensional pengguna untuk perangkat Windows.
Pengecualian tanda tangan tidak valid
Ketika Anda menjalankan tes kualifikasi Lambda, Anda mungkin menemukaninvalidsignatureexception
kesalahan jika mesin host IDT Anda mengalami masalah akses jaringan. Setel ulang router Anda dan jalankan tes lagi.
Kesalahan kualifikasi machine learning
Saat menjalankan tes kualifikasi machine learning (ML), Anda mungkin mengalami kegagalan kualifikasi jika perangkat Anda tidak memenuhipersyaratanuntuk menyebarkanAWS-menyediakan komponen ML. Untuk memecahkan masalah kesalahan kualifikasi ML, lakukan hal berikut:
-
Cari rincian kesalahan dalam log komponen untuk komponen yang di-deploy selama uji coba. Log komponen terletak di direktori
.<device-tester-extract-location>
/results/<execution-id>
/logs/<test-group-id>
-
Tambahkan argumen
-Dgg.persist=installed.software
ke filetest.json
untuk uji kasus yang gagal. Filetest.json
terletak di<device-tester-extract-location>
/tests/GGV2Q_version
directory.
Penerapan gagal Open Test Framework (OTF)
Jika pengujian OTF gagal menyelesaikan penerapan, kemungkinan penyebabnya adalah izin yang ditetapkan untuk folder indukTempResourcesDirOnDevice
danInstallationDirRootOnDevice
. Untuk mengatur izin folder ini dengan benar, jalankan perintah berikut. Ganti
dengan nama folder induk.folder-name
sudo chmod
755
folder-name
Kesalahan parsing
Kesalahan ketik dalam konfigurasi JSON dapat menyebabkan kesalahan parsing. Sering kali, masalah ini adalah akibat dari menghilangkan kurung, koma, atau tanda kutip dari file JSON Anda. IDT melakukan validasi JSON dan mencetak informasi debugging. IDT mencetak garis di mana kesalahan terjadi, nomor baris, dan nomor kolom kesalahan sintaks. Informasi ini akan cukup untuk membantu Anda memperbaiki kesalahan, tetapi jika Anda masih tidak dapat menemukan kesalahan, Anda dapat melakukan validasi secara manual di IDE Anda, editor teks seperti Atom atau Sublime, atau melalui alat online seperti JSONLint.
Kesalahan ditolak izin
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.
-
Gunakan sudo usermod -aG sudo
<ssh-username>
untuk menambahkan pengguna SSH Anda ke grup sudo. -
Keluar, lalu masuk agar perubahan diterapkan.
-
Buka file
/etc/sudoers
dan tambahkan baris berikut ke akhir file:<ssh-username>
ALL=(ALL) NOPASSWD: ALLcatatan
Sebagai praktik terbaik, kami menyarankan Anda menggunakan sudo visudo saat Anda mengedit
/etc/sudoers
.
Kesalahan pembuatan laporan kualifikasi
IDT mendukung empat versi
terakhir dari versi rangkaian kualifikasi V2 AWS IoT Greengrass (GGV2Q) untuk menghasilkan laporan kualifikasi yang dapat Anda kirimkan ke AWS Partner Network untuk menyertakan perangkat Anda di Katalog Perangkat AWS Partner. Versi sebelumnya dari rangkaian kualifikasi ini tidak menghasilkan laporan kualifikasi.major
.minor
Jika Anda memiliki pertanyaan tentang kebijakan dukungan, hubungi AWS Dukungan
Parameter yang diperlukan kehilangan kesalahan
Ketika IDT menambahkan fitur baru, ia mungkin memperkenalkan perubahan pada file konfigurasi. Penggunaan file konfigurasi lama mungkin akan merusak konfigurasi Anda. Jika hal ini terjadi, file
di bawah <test_case_id>
.log/results/
secara eksplisit mencantumkan semua parameter yang hilang. IDT juga memvalidasi skema file konfigurasi JSON Anda untuk memverifikasi bahwa Anda menggunakan versi terbaru yang didukung.<execution-id>
/logs
Pengecualian keamanan di macOS
Saat Anda menjalankan IDT di komputer host macOS, IDT memblokir IDT agar tidak berjalan. Untuk menjalankan IDT, berikan pengecualian keamanan ke executable yang merupakan bagian dari fungsionalitas runtime IDT. Saat Anda melihat tampilan pesan peringatan di komputer host Anda, lakukan hal berikut untuk setiap executable yang berlaku:
Untuk memberikan pengecualian keamanan untuk executable IDT
-
Di komputer MacOS, pada menu Apple, bukaPreferensi Sistem.
-
Pilih Keamanan & Privasi, kemudian pada tab Umum, pilih ikon kunci untuk membuat perubahan pada pengaturan keamanan.
-
Dalam kasus diblokir
devicetester_mac_x86-64
, cari pesannya"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.
dan pilihIzinkan Pokoknya. -
Lanjutkan pengujian IDT, sampai Anda melewati semua executable yang terlibat.
Kesalahan koneksi SSH
Ketika IDT tidak dapat terhubung ke perangkat yang diuji, ia mencatat kegagalan koneksi di /results/
. Pesan SSH muncul di bagian atas file log ini karena penyambungan ke perangkat yang diuji adalah salah satu operasi pertama yang dilakukan oleh IDT.<execution-id>
/logs/<test-case-id>
.log
Sebagian besar konfigurasi Windows menggunakan aplikasi terminal PuTTy untuk terhubung ke host Linux. Aplikasi ini mengharuskan Anda mengonversi file kunci privat PEM standar ke dalam format Windows berpemilik yang disebut PPK. Jika Anda mengonfigurasi SSH di device.json
, gunakan file PEM. Jika Anda menggunakan file PPK, IDT tidak dapat membuat koneksi SSH dengan AWS IoT Greengrass Anda dan tidak dapat menjalankan tes.
Dimulai dengan IDT v4.4.0, jika Anda belum mengaktifkan SFTP di perangkat yang sedang diuji, Anda mungkin melihat kesalahan berikut di file log.
SSH connection failed with EOF
Untuk mengatasi kesalahan ini, aktifkan SFTP di perangkat Anda.
Kesalahan kualifikasi stream manager
Ketika Anda menjalankan uji kualifikasi manajer pengaliran, Anda mungkin akan melihat kesalahan berikut di file com.aws.StreamManagerExport.log
.
Failed to upload data to S3
Kesalahan ini dapat terjadi ketika stream manager menggunakan kredensial AWS di file ~/root/.aws/credentials
pada perangkat Anda dan tidak menggunakan kredensial lingkungan yang diekspor oleh IDT ke perangkat yang sedang diuji. Untuk mencegah masalah ini, hapus file credentials
di perangkat Anda, dan jalankan kembali tes kualifikasi.
Kesalahan batas waktu
Anda dapat meningkatkan batas waktu untuk setiap tes dengan menentukan pengganda batas waktu yang diterapkan ke nilai default dari setiap batas waktu 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 GGV2Q_1.0.0 --pool-id DevicePool1 --timeout-multiplier 2.5
Untuk informasi lebih lanjut, jalankan run-suite --help
.
Beberapa kesalahan batas waktu terjadi ketika kasus uji IDT tidak dapat diselesaikan karena masalah konfigurasi. Anda tidak dapat mengatasi kesalahan ini dengan meningkatkan pengganda batas waktu. Gunakan log dari uji coba untuk memecahkan masalah konfigurasi yang mendasarinya.
-
Jika log komponen MQTT atau Lambda berisi
Access denied
kesalahan, folder instalasi Greengrass Anda mungkin tidak memiliki izin file yang benar. Jalankan perintah berikut untuk setiap folder di jalur instalasi yang Anda tentukan diuserdata.json
berkas.sudo chmod 755
folder-name
-
Jika log Greengrass menunjukkan bahwa penerapan Greengrass CLI belum selesai, lakukan hal berikut:
-
Verifikasi bahwa
bash
diinstal pada perangkat yang sedang diuji. -
Jika Anda
userdata.json
file termasukGreengrassCliVersion
parameter konfigurasi, hapus. Parameter ini tidak digunakan lagi di IDT v4.1.0 dan versi yang lebih baru. Untuk informasi selengkapnya, lihat Konfigurasikan userdata.json.
-
-
Jika pengujian penerapan Lambda gagal dengan pesan kesalahan “Memvalidasi Lambda publish: time out” dan Anda menerima kesalahan dalam file log pengujian (
idt-gg2-lambda-function-idt-
) yang mengatakan<resource-id>
.logError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime.
, lakukan hal berikut:-
Verifikasi folder apa yang digunakan
InstallationDirRootOnDevice
diuserdata.json
berkas. -
Pastikan izin pengguna yang benar diatur di perangkat Anda. Untuk lebih jelasnya, lihatKonfigurasikan izin pengguna di perangkat Anda.
-
Kesalahan pemeriksaan versi
IDT mengeluarkan kesalahan berikut ketika kredensial pengguna AWS untuk pengguna IDT tidak memiliki izin IAM yang diperlukan.
Failed to check version compatibility
Pengguna AWS yang tidak memiliki izin IAM yang diperlukan.