Untuk kemampuan serupa AWS IoT Analytics, jelajahi Amazon Kinesis, Amazon S3, dan Amazon Athena. Layanan ini memberikan skalabilitas dan fleksibilitas tambahan untuk memenuhi persyaratan analitik Anda yang terus berkembang. Pelajari caranya di sini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemecahan Masalah AWS IoT Analytics
Lihat bagian berikut untuk memecahkan masalah kesalahan dan menemukan dan solusi yang mungkin untuk menyelesaikan masalah denganAWS IoT Analytics.
Topik
- Bagaimana cara saya tahu jika pesan saya masukAWS IoT Analytics?
- Mengapa pipeline saya kehilangan pesan? Bagaimana cara cara cara saya memperbaikinya?
- Mengapa tidak ada data di penyimpanan data saya?
- Mengapa dataset saya hanya ditampilkan__dt?
- Bagaimana cara membuat kode peristiwa yang didorong oleh penyelesaian kumpulan data?
- Bagaimana cara mengkonfigurasi instance notebook saya dengan benar untuk digunakanAWS IoT Analytics?
- Mengapa saya tidak bisa membuat notebook dalam sebuah instance?
- Mengapa saya tidak melihat kumpulan data saya di Amazon QuickSight?
- Mengapa saya tidak melihat tombol containerize pada Notebook Jupyter saya yang ada?
- Mengapa instalasi plugin containerization saya gagal?
- Mengapa plugin containerization saya melempar kesalahan?
- Mengapa saya tidak melihat variabel saya selama penampung?
- Variabel apa yang dapat saya tambahkan ke wadah saya sebagai input?
- Bagaimana cara mengatur output kontainer saya sebagai masukan untuk analisis selanjutnya?
- Mengapa dataset kontainer saya gagal?
Bagaimana cara saya tahu jika pesan saya masukAWS IoT Analytics?
Periksa apakah aturan untuk menyuntikkan data ke saluran melalui aturan-mesin dikonfigurasi dengan benar.
aws iot get-topic-rule --rule-name
your-rule-name
Responsnya akan terlihat seperti berikut.
{ "ruleArn": "arn:aws:iot:us-west-2:
your-account-id
:rule/your-rule-name
", "rule": { "awsIotSqlVersion": "2016-03-23", "sql": "SELECT * FROM 'iot/your-rule-name
'", "ruleDisabled": false, "actions": [ { "iotAnalytics": { "channelArn": "arn:aws:iotanalytics:region
:your_account_id
:channel/your-channel-name
" } } ], "ruleName": "your-rule-name
" } }
Pastikan wilayah dan nama saluran yang digunakan dalam aturan sudah benar. Untuk memastikan data Anda mencapai mesin aturan dan aturan dijalankan dengan benar, Anda mungkin ingin menambahkan target baru untuk menyimpan pesan masuk di bucket Amazon S3 sementara.
Mengapa pipeline saya kehilangan pesan? Bagaimana cara cara cara saya memperbaikinya?
-
Aktivitas telah menerima masukan JSON yang tidak valid:
Semua aktivitas, kecuali aktivitas Lambda, secara khusus memerlukan string JSON yang valid sebagai masukan. Jika JSON yang diterima oleh suatu aktivitas tidak valid, maka pesan akan dijatuhkan dan tidak masuk ke penyimpanan data. Pastikan Anda memasukkan pesan JSON yang valid ke dalam layanan. Dalam kasus input biner, pastikan aktivitas pertama dalam pipeline Anda adalah aktivitas Lambda yang mengubah data biner menjadi JSON yang valid sebelum meneruskannya ke aktivitas berikutnya atau menyimpannya di penyimpanan data. Untuk informasi selengkapnya, lihat Contoh fungsi Lambda 2.
-
Fungsi Lambda yang dipanggil oleh aktivitas Lambda memiliki izin yang tidak mencukupi:
Pastikan bahwa setiap fungsi Lambda dalam aktivitas Lambda memiliki izin untuk dipanggil dariAWS IoT Analytics layanan. Anda dapat menggunakanAWS CLI perintah berikut untuk memberikan izin.
aws lambda add-permission --function-name <name> --region <region> --statement-id <id> --principal iotanalytics.amazonaws.com --action lambda:InvokeFunction
-
Aktivitas filter atau removeAttribute tidak didefinisikan dengan benar:
Pastikan definisi jika ada
filter
atauremoveAttribute
aktivitas yang benar. Jika Anda menyaring pesan atau menghapus semua atribut dari pesan, pesan tersebut tidak ditambahkan ke penyimpanan data.
Mengapa tidak ada data di penyimpanan data saya?
-
Ada penundaan antara konsumsi data dan ketersediaan data:
Mungkin diperlukan beberapa menit setelah data dicerna ke saluran sebelum data tersebut tersedia di penyimpanan data. Waktunya bervariasi berdasarkan jumlah aktivitas pipeline dan definisi aktivitas Lambda khusus apa pun di pipeline Anda.
-
Pesan sedang disaring di pipeline Anda:
Pastikan Anda tidak menjatuhkan pesan di pipeline. (Lihat pertanyaan dan tanggapan sebelumnya.)
-
Kueri kumpulan data Anda salah:
Pastikan kueri yang menghasilkan dataset dari penyimpanan data sudah benar. Hapus filter yang tidak perlu dari kueri untuk memastikan data Anda mencapai penyimpanan data Anda.
Mengapa dataset saya hanya ditampilkan__dt
?
-
Kolom ini ditambahkan oleh layanan secara otomatis dan berisi perkiraan waktu konsumsi data. Ini dapat digunakan untuk mengoptimalkan pertanyaan Anda. Jika kumpulan data Anda tidak berisi apa pun selain ini, lihat pertanyaan dan tanggapan sebelumnya.
Bagaimana cara membuat kode peristiwa yang didorong oleh penyelesaian kumpulan data?
-
Anda harus mengatur polling berdasarkan
describe-dataset
perintah untuk memeriksa apakah status dataset dengan stempel waktu tertentu SUCCEEDED.
Bagaimana cara mengkonfigurasi instance notebook saya dengan benar untuk digunakanAWS IoT Analytics?
Ikuti langkah-langkah berikut untuk memastikan peran IAM yang Anda gunakan untuk membuat instance notebook memiliki izin yang diperlukan:
-
Pergi ke SageMaker konsol dan buat instance notebook.
-
Isi detailnya dan pilih buat peran baru. Perhatikan ARN peran.
-
Buat instans notebook. Ini juga menciptakan peran yang SageMaker dapat digunakan.
-
Buka konsol IAM dan ubah SageMaker peran yang baru dibuat. Ketika Anda membuka peran itu, itu harus memiliki kebijakan yang dikelola.
-
Klik tambahkan kebijakan sebaris, pilih IoTAnalytics sebagai layanan, dan di bawah izin baca, pilih GetDatasetContent.
-
Tinjau kebijakan, tambahkan nama kebijakan, lalu buat kebijakan. Peran yang baru dibuat sekarang memiliki izin kebijakan untuk membaca dataset dariAWS IoT Analytics.
-
Pergi keAWS IoT Analytics konsol dan buat notebook di instance notebook.
-
Tunggu instance notebook berada dalam keadaan “In Service”.
-
Pilih buat notebook, dan pilih instance notebook yang Anda buat. Ini menciptakan notebook Jupyter dengan template yang dipilih yang dapat mengakses dataset Anda.
Mengapa saya tidak bisa membuat notebook dalam sebuah instance?
-
Pastikan Anda membuat instance notebook dengan kebijakan IAM yang benar. (Ikuti langkah-langkah dalam pertanyaan sebelumnya.)
-
Pastikan instance notebook berada dalam keadaan “In Service”. Ketika Anda membuat sebuah instance, itu dimulai dalam keadaan “Pending”. Biasanya dibutuhkan sekitar lima menit untuk masuk ke keadaan “In Service”. Jika instance notebook masuk ke status “Gagal” setelah sekitar lima menit, periksa izin lagi.
Mengapa saya tidak melihat kumpulan data saya di Amazon QuickSight?
Amazon QuickSight mungkin memerlukan izin untuk membaca kontenAWS IoT Analytics kumpulan data Anda. Untuk memberikan izin, ikuti langkah-langkah ini.
-
Pilih nama akun Anda di sudut kanan atas Amazon QuickSight dan pilih Kelola QuickSight.
-
Di panel navigasi sebelah kiri, pilih Keamanan & izin. Di bawah QuickSight akses keAWS layanan, verifikasi bahwa akses diberikan kepadaAWS IoT Analytics.
-
JikaAWS IoT Analytics tidak memiliki akses, pilih Tambah atau hapus.
-
Pilih kotak di samping AWS IoT Analyticsdan kemudian pilih Perbarui. Ini memberi QuickSight izin Amazon untuk membaca konten kumpulan data Anda.
-
-
Coba lagi untuk memvisualisasikan data Anda.
Pastikan Anda memilihAWS Wilayah yang sama untuk keduanyaAWS IoT Analytics dan Amazon QuickSight. Jika tidak, Anda mungkin mengalami masalah dalam mengaksesAWS sumber daya. Untuk daftar Wilayah yang didukung, lihat AWS IoT Analyticstitik akhir dan kuota serta QuickSight titik akhir dan kuota Amazon di bagian Referensi Umum Amazon Web Services.
Mengapa saya tidak melihat tombol containerize pada Notebook Jupyter saya yang ada?
-
Hal ini disebabkan oleh PluginAWS IoT Analytics Containerization yang hilang. Jika Anda membuat contoh SageMaker notebook Anda sebelum 23 Agustus 2018, Anda perlu menginstal plugin secara manual dengan mengikuti petunjuk di Containerizing notebook.
-
Jika Anda tidak melihat tombol containerize setelah membuat instance SageMaker notebook dariAWS IoT Analytics konsol atau menginstalnya secara manual, hubungi dukunganAWS IoT Analytics teknis.
Mengapa instalasi plugin containerization saya gagal?
-
Biasanya, instalasi plugin gagal karena izin yang hilang dalam contoh SageMaker notebook. Untuk izin yang diperlukan untuk instance notebook, lihat Izin dan tambahkan izin yang diperlukan ke peran instance notebook. Jika masalah berlanjut, buat instance notebook baru dariAWS IoT Analytics konsol.
-
Anda dapat dengan aman mengabaikan pesan berikut di log jika muncul selama instalasi plugin: “Untuk menginisialisasi ekstensi ini di browser setiap kali notebook (atau aplikasi lain) dimuat.”
Mengapa plugin containerization saya melempar kesalahan?
-
Containerization dapat gagal dan menghasilkan kesalahan karena berbagai alasan. Pastikan Anda menggunakan kernel yang benar sebelum menyusun notebook Anda. Kernel dalam wadah dimulai dengan awalan “Kontainer”.
-
Karena plugin membuat dan menyimpan gambar docker di repositori ECR, pastikan bahwa peran instance notebook Anda memiliki izin yang cukup untuk membaca, membuat daftar, dan membuat repositori ECR. Untuk izin yang diperlukan untuk instance notebook, lihat Izin dan tambahkan izin yang diperlukan ke peran instance notebook.
-
Pastikan juga bahwa nama repositori sesuai dengan persyaratan ECR. Nama repositori ECR harus dimulai dengan huruf dan hanya dapat berisi huruf kecil, angka, tanda hubung, garis bawah, dan garis miring.
-
Jika proses containerization gagal dengan kesalahan: "Instance ini memiliki ruang kosong yang tidak mencukupi untuk menjalankan containerization” coba gunakan instance yang lebih besar untuk menyelesaikan masalah.
-
Jika Anda melihat kesalahan koneksi atau kesalahan pembuatan gambar, coba lagi. Jika masalah berlanjut, restart instance dan instal versi plugin terbaru.
Mengapa saya tidak melihat variabel saya selama penampung?
-
PluginAWS IoT Analytics containerization secara otomatis mengenali semua variabel di notebook Anda setelah menjalankan notebook dengan kernel “Containerized”. Gunakan salah satu kernel dalam peti kemas untuk menjalankan notebook, lalu lakukan kontainerisasi.
Variabel apa yang dapat saya tambahkan ke wadah saya sebagai input?
-
Anda dapat menambahkan variabel apa pun yang nilainya ingin Anda modifikasi selama runtime sebagai masukan ke wadah Anda. Hal ini memungkinkan Anda untuk menjalankan wadah yang sama dengan parameter yang berbeda yang perlu disediakan pada saat pembuatan dataset. PluginAWS IoT Analytics containerization Jupyter menyederhanakan proses ini dengan secara otomatis mengenali variabel di notebook dan membuatnya tersedia sebagai bagian dari proses containerization.
Bagaimana cara mengatur output kontainer saya sebagai masukan untuk analisis selanjutnya?
-
Lokasi S3 spesifik tempat artefak yang dieksekusi dapat disimpan dibuat untuk setiap rangkaian data kontainer Anda. Untuk mengakses lokasi keluaran ini, buat variabel dengan tipe
outputFileUriValue
dataset kontainer Anda. Nilai variabel ini harus berupa jalur S3 yang digunakan untuk menyimpan file keluaran tambahan Anda. Untuk mengakses artefak yang disimpan ini dalam proses selanjutnya, Anda dapat menggunakangetDatasetContent
API dan memilih file keluaran yang sesuai yang diperlukan untuk proses selanjutnya.
Mengapa dataset kontainer saya gagal?
-
Pastikan Anda meneruskan yang benar
executionRole
ke set data kontainer. Kebijakan kepercayaan dariexecutionRole
harus mencakup keduanyaiotanalytics.amazonaws.com
dansagemaker.amazonaws.com
. -
Jika Anda melihat
AlgorithmError
sebagai alasan kegagalan, cobalah untuk men-debug kode kontainer Anda secara manual. Hal ini terjadi jika ada bug dalam kode kontainer atau peran eksekusi tidak memiliki izin untuk mengeksekusi kontainer. Jika Anda melakukan kontainer dengan menggunakan pluginAWS IoT Analytics Jupyter, buat instance SageMaker notebook baru dengan peran yang sama dengan ExecutionRole dari ContainerDataSet dan coba jalankan notebook secara manual. Jika wadah dibuat di luar plugin Jupyter, coba jalankan kode secara manual dan batasi izin ke ExecutionRole.