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 V2 menulis 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 AWS IoT Greengrass Core. IDT menyalin file ini dari perangkat yang diuji saat menjalankan pengujian yang menginstal perangkat lunak AWS IoT Greengrass Core 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
Saat 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 bahwa Anda device.json
dan userdata.json
berisi informasi yang benar yang diperlukan untuk rangkaian pengujian Anda. Untuk informasi tentang konfigurasi yang diperlukan untuk AWS IoT Greengrass kualifikasi, lihatKonfigurasikan pengaturan IDT untuk menjalankan rangkaian AWS IoT Greengrass kualifikasi.
Kesalahan konflik
Anda mungkin melihat kesalahan berikut saat menjalankan rangkaian AWS IoT Greengrass kualifikasi 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 pengujian bersamaan belum didukung untuk rangkaian AWS IoT Greengrass kualifikasi. 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 menggunakan gambar amazon/amazon-ec2-metadata-mock
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 mengalami Failed to read
credential
kesalahan dalam greengrass.log
file 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 mengalami kesalahan Guice
ErrorInCustomProvider
atau, periksa apakah file tersebut userdata.json
telah InstalledDirRootOnDevice
disetel ke folder instalasi Greengrass. IDT memeriksa file di effectiveConfig.yaml
bawah<InstallationDirRootOnDevice>/config/effectiveConfig.yaml
.
Untuk informasi selengkapnya, lihat Konfigurasikan kredensional pengguna untuk perangkat Windows.
Pengecualian tanda tangan tidak valid
Saat Anda menjalankan tes kualifikasi Lambda, Anda mungkin mengalami invalidsignatureexception
kesalahan jika mesin host IDT Anda mengalami masalah akses jaringan. Setel ulang router Anda dan jalankan tes lagi.
Kesalahan kualifikasi machine learning
Saat menjalankan pengujian kualifikasi machine learning (ML), Anda mungkin mengalami kegagalan kualifikasi jika perangkat Anda tidak memenuhi persyaratan untuk menerapkan komponen ML AWS yang disediakan. 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 induk dan. TempResourcesDirOnDevice
InstallationDirRootOnDevice
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 seharusnya 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 terbaru dari suite kualifikasi AWS IoT Greengrass V2 (GGV2Q) untuk menghasilkan laporan kualifikasi yang dapat Anda kirimkan AWS Partner Network untuk menyertakan perangkat Anda dalam Katalog AWS Partner Perangkat. Versi sebelumnya dari rangkaian kualifikasi ini tidak menghasilkan laporan kualifikasi.major
.minor
Jika Anda memiliki pertanyaan tentang kebijakan dukungan, hubungi AWS Support
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, buka System Preferences.
-
Pilih Keamanan & Privasi, kemudian pada tab Umum, pilih ikon kunci untuk membuat perubahan pada pengaturan keamanan.
-
Jika diblokir
devicetester_mac_x86-64
, cari pesan"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.
dan pilih Allow Anyway. -
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 TTy terminal Pu 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 perangkat dan tidak dapat menjalankan pengujian.
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 pengelola aliran menggunakan AWS kredensional dalam ~/root/.aws/credentials
file di perangkat Anda, bukan menggunakan kredenal lingkungan yang diekspor 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. Sebagai contoh:
./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 kesalahan
Access denied
, folder instalasi Greengrass Anda mungkin tidak memiliki izin file yang benar. Jalankan perintah berikut untuk setiap folder di jalur instalasi yang Anda tentukan dalamuserdata.json
file Anda.sudo chmod 755
folder-name
-
Jika log Greengrass menunjukkan bahwa penerapan CLI Greengrass belum selesai, lakukan hal berikut:
-
Verifikasi
bash
yang diinstal pada perangkat yang sedang diuji. -
Jika
userdata.json
file Anda menyertakan parameterGreengrassCliVersion
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, lakukan hal berikut:<resource-id>
.logError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime.
-
Verifikasi folder apa yang digunakan
InstallationDirRootOnDevice
dalamuserdata.json
file. -
Pastikan izin pengguna yang benar diatur di perangkat Anda. Untuk detail selengkapnya, lihat Mengonfigurasi izin pengguna di perangkat Anda.
-
Kesalahan pemeriksaan versi
IDT mengeluarkan kesalahan berikut ketika kredensi AWS pengguna untuk pengguna IDT tidak memiliki izin IAM yang diperlukan.
Failed to check version compatibility
AWS Pengguna yang tidak memiliki izin IAM yang diperlukan.