Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menelan data dari AWS IoT berbagai hal
Pelajari cara menyerap data AWS IoT SiteWise dari armada AWS IoT benda dengan menggunakan bayangan perangkat dalam tutorial ini. Bayangan perangkat adalah JSON objek yang menyimpan informasi status saat ini untuk AWS IoT perangkat. Untuk informasi selengkapnya, lihat Layanan bayangan perangkat di Panduan AWS IoT Pengembang.
Setelah Anda menyelesaikan tutorial ini, Anda dapat mengatur operasi AWS IoT SiteWise berdasarkan AWS IoT hal-hal. Dengan menggunakan AWS IoT berbagai hal, Anda dapat mengintegrasikan operasi Anda dengan fitur berguna lainnya dari AWS IoT. Misalnya, Anda dapat mengonfigurasi AWS IoT fitur untuk melakukan tugas-tugas berikut:
-
Konfigurasikan aturan tambahan untuk mengalirkan data ke AWS IoT Events, Amazon DynamoDB, dan lainnya. Layanan AWS Untuk informasi selengkapnya, lihat Aturan di Panduan AWS IoT Pengembang.
-
Indeks, telusuri, dan agregat data perangkat Anda dengan layanan pengindeksan AWS IoT armada. Untuk informasi selengkapnya, lihat layanan pengindeksan armada di AWS IoT Panduan Pengembang.
-
Audit dan amankan perangkat Anda dengan AWS IoT Device Defender. Untuk informasi lebih lanjut, lihat AWS IoT Device Defender dalam Panduan Pengembang AWS IoT .
Dalam tutorial ini, Anda mempelajari cara menelan data dari bayangan perangkat AWS IoT benda ke aset. AWS IoT SiteWise Untuk melakukannya, Anda membuat satu atau beberapa AWS IoT hal dan menjalankan skrip yang memperbarui bayangan perangkat setiap benda dengan CPU dan data penggunaan memori. Anda menggunakan CPU dan data penggunaan memori dalam tutorial ini untuk meniru data sensor yang realistis. Kemudian, Anda membuat aturan dengan AWS IoT SiteWise tindakan yang mengirimkan data ini ke aset AWS IoT SiteWise setiap kali bayangan perangkat diperbarui. Untuk informasi selengkapnya, lihat Menelan data menggunakan aturan AWS IoT Core.
Topik
- Prasyarat
- Langkah 1: Buat AWS IoT kebijakan
- Langkah 2: Buat dan konfigurasikan AWS IoT sesuatu
- Langkah 3: Buat model aset perangkat
- Langkah 4: Buat model aset armada perangkat
- Langkah 5: Buat dan konfigurasikan aset perangkat
- Langkah 6: Buat dan konfigurasikan aset armada perangkat
- Langkah 7: Buat aturan di AWS IoT Core untuk mengirim data ke aset perangkat
- Langkah 8: Jalankan skrip klien perangkat
- Langkah 9: Bersihkan sumber daya setelah tutorial
Prasyarat
Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:
-
Sebuah Akun AWS. Jika Anda tidak memilikinya, lihat Menyiapkan sebuah Akun AWS.
-
Sebuah komputer pengembangan yang berjalan WindowsmacOS,Linux,, atau Unix untuk mengakses AWS Management Console. Untuk informasi lebih lanjut, lihat Memulai dengan AWS Management Console.
-
Pengguna AWS Identity and Access Management (IAM) dengan izin administrator.
-
Python3 diinstal pada komputer pengembangan Anda atau diinstal pada perangkat yang ingin Anda daftarkan sebagai AWS IoT sesuatu.
Langkah 1: Buat AWS IoT kebijakan
Dalam prosedur ini, buat AWS IoT kebijakan yang memungkinkan AWS IoT barang-barang Anda mengakses sumber daya yang digunakan dalam tutorial ini.
Untuk membuat AWS IoT kebijakan
-
Masuk ke AWS Management Console
. -
Tinjau AWS Wilayah AWS IoT SiteWise yang didukung. Beralih ke salah satu Wilayah yang didukung ini, jika perlu.
-
Navigasikan ke konsol AWS IoT
tersebut. Jika tombol Connect device muncul, pilih tombol tersebut. -
Di panel navigasi kiri, pilih Keamanan, lalu pilih Kebijakan.
-
Pilih Buat.
-
Masukkan nama untuk AWS IoT kebijakan (misalnya,
SiteWiseTutorialDevicePolicy
). -
Di bawah Dokumen kebijakan, pilih JSONuntuk memasukkan JSON formulir kebijakan berikut. Ganti
region
andaccount-id
dengan Wilayah dan ID akun Anda, sepertius-east-1
dan123456789012
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:aws:iot:
region
:account-id
:client/SiteWiseTutorialDevice*" }, { "Effect": "Allow", "Action": "iot:Publish", "Resource": [ "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update", "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete", "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get" ] }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": [ "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/accepted", "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/accepted", "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/accepted", "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/rejected", "arn:aws:iot:region
:account-id
:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region
:account-id
:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/accepted", "arn:aws:iot:region
:account-id
:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/accepted", "arn:aws:iot:region
:account-id
:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/accepted", "arn:aws:iot:region
:account-id
:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/rejected", "arn:aws:iot:region
:account-id
:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:GetThingShadow", "iot:UpdateThingShadow", "iot:DeleteThingShadow" ], "Resource": "arn:aws:iot:region
:account-id
:thing/SiteWiseTutorialDevice*" } ] }Kebijakan ini memungkinkan AWS IoT perangkat Anda membuat koneksi dan berkomunikasi dengan bayangan perangkat menggunakan MQTT pesan. Untuk informasi selengkapnya tentang MQTT pesan, lihat Apa ituMQTT?
. Untuk berinteraksi dengan bayangan perangkat, AWS IoT barang-barang Anda mempublikasikan dan menerima MQTT pesan tentang topik yang dimulai $aws/things/
. Kebijakan ini menggabungkan variabel kebijakan sesuatu yang dikenal sebagaithing-name
/shadow/${iot:Connection.Thing.ThingName}
. Variabel ini menggantikan nama benda yang terhubung di setiap topik.iot:Connect
Pernyataan tersebut menetapkan batasan di mana perangkat dapat membuat koneksi, memastikan bahwa variabel kebijakan hal hanya dapat menggantikan nama yang dimulai denganSiteWiseTutorialDevice
.Untuk informasi selengkapnya, lihat Variabel kebijakan Thing di Panduan AWS IoT Pengembang.
catatan
Kebijakan ini berlaku untuk hal-hal yang namanya dimulai
SiteWiseTutorialDevice
. Untuk menggunakan nama yang berbeda untuk barang-barang Anda, Anda harus memperbarui kebijakan yang sesuai. -
Pilih Buat.
Langkah 2: Buat dan konfigurasikan AWS IoT sesuatu
Dalam prosedur ini, Anda membuat dan mengkonfigurasi AWS IoT sesuatu. Anda dapat menunjuk komputer pengembangan Anda sebagai AWS IoT sesuatu. Saat Anda maju, ingatlah bahwa prinsip-prinsip yang Anda pelajari di sini dapat diterapkan pada proyek yang sebenarnya. Anda memiliki fleksibilitas untuk membuat dan mengatur AWS IoT hal-hal di perangkat apa pun yang mampu menjalankan AWS IoT SDK, termasuk AWS IoT Greengrass dan GratisRTOS. Untuk informasi selengkapnya, lihat AWS IoT SDKsdi Panduan AWS IoT Pengembang.
Untuk membuat dan mengkonfigurasi AWS IoT sesuatu
-
Buka baris perintah dan jalankan perintah berikut untuk membuat direktori untuk tutorial ini.
mkdir iot-sitewise-rule-tutorial cd iot-sitewise-rule-tutorial
-
Jalankan perintah berikut untuk membuat direktori untuk sertifikat barang Anda.
mkdir device1
Jika Anda membuat hal-hal tambahan, tambahkan nomor dalam nama direktori yang sesuai untuk melacak sertifikat mana yang termasuk dalam hal itu.
-
Navigasikan ke konsol AWS IoT
tersebut. -
Di panel navigasi kiri, pilih Semua perangkat di bagian Kelola. Lalu, pilih Berbagai hal.
-
Jika kotak dialog Anda belum memiliki hal apa pun muncul, pilih Buat sesuatu. Jika tidak, pilih Buat sesuatu.
-
Pada halaman Creating things, pilih Create a single dan kemudian pilih Next.
-
Pada halaman Tentukan properti benda, masukkan nama untuk AWS IoT barang Anda (misalnya,
SiteWiseTutorialDevice1
) lalu pilih Berikutnya. Jika Anda membuat hal-hal tambahan, tambahkan nomor dalam nama benda yang sesuai.penting
Nama benda harus sesuai dengan nama yang digunakan dalam kebijakan yang Anda buat di Langkah 1: Membuat AWS IoT kebijakan. Jika tidak, perangkat Anda tidak dapat terhubung AWS IoT.
-
Pada halaman Konfigurasi sertifikat perangkat - opsional, pilih Buat otomatis sertifikat baru (disarankan) pilih Berikutnya. Sertifikat memungkinkan AWS IoT untuk mengidentifikasi perangkat Anda dengan aman.
-
Pada halaman Lampirkan kebijakan ke sertifikat - opsional, pilih kebijakan yang Anda buat di Langkah 1: Membuat AWS IoT kebijakan dan pilih Buat sesuatu.
-
Pada kotak dialog Unduh sertifikat dan kunci, lakukan hal berikut:
-
Pilih tautan Unduh untuk mengunduh sertifikat barang Anda, kunci publik, dan kunci pribadi. Simpan ketiga file ke direktori yang Anda buat untuk sertifikat barang Anda (misalnya,
iot-sitewise-rule-tutorial/device1
).penting
Ini adalah satu-satunya saat Anda dapat mengunduh sertifikat dan kunci barang Anda, yang Anda perlukan agar perangkat Anda berhasil terhubung AWS IoT.
-
Pilih tautan Unduh untuk mengunduh sertifikat CA root. Simpan sertifikat CA root ke file
iot-sitewise-rule-tutorial
. Kami merekomendasikan mengunduh Amazon Root CA 1.
-
-
Pilih Selesai.
Anda sekarang telah mendaftarkan AWS IoT sesuatu di komputer Anda. Ambil salah satu langkah berikut:
-
Lanjutkan ke Langkah 3: Membuat model aset perangkat tanpa membuat AWS IoT hal-hal tambahan. Anda dapat menyelesaikan tutorial ini hanya dengan satu hal.
-
Ulangi langkah-langkah di bagian ini di komputer atau perangkat lain untuk membuat lebih banyak AWS IoT hal. Untuk tutorial ini, kami sarankan Anda mengikuti opsi ini sehingga Anda dapat menelan data unik CPU dan penggunaan memori dari beberapa perangkat.
-
Ulangi langkah-langkah di bagian ini pada perangkat yang sama (komputer Anda) untuk membuat lebih banyak AWS IoT hal. Setiap AWS IoT benda menerima data serupa CPU dan penggunaan memori dari komputer Anda, jadi gunakan pendekatan ini untuk menunjukkan pengambilan data non-unik dari beberapa perangkat.
Langkah 3: Buat model aset perangkat
Dalam prosedur ini, Anda membuat model aset AWS IoT SiteWise untuk mewakili perangkat Anda yang melakukan streaming CPU dan data penggunaan memori. Untuk memproses data dalam aset yang mewakili kelompok perangkat, model aset menerapkan informasi yang konsisten di beberapa aset dengan jenis yang sama. Untuk informasi selengkapnya, lihat Model aset industri.
Untuk membuat model aset yang mewakili perangkat
-
Navigasikan ke konsol AWS IoT SiteWise
tersebut. -
Di panel navigasi kiri, pilih Model.
-
Pilih Buat model.
-
Di bawah Detail model, masukkan nama untuk model Anda. Misalnya,
SiteWise Tutorial Device Model
. -
Di bawah definisi Pengukuran, lakukan hal berikut:
-
Di Nama, masukkan
CPU Usage
. -
Di Unit, masukkan
%
. -
Biarkan tipe Data sebagai Ganda.
Properti pengukuran mewakili aliran data mentah perangkat. Untuk informasi selengkapnya, lihat Tentukan aliran data dari peralatan (pengukuran).
-
-
Pilih Tambahkan pengukuran baru untuk menambahkan properti pengukuran kedua.
-
Di baris kedua di bawah Definisi pengukuran, lakukan hal berikut:
-
Di Nama, masukkan
Memory Usage
. -
Di Unit, masukkan
%
. -
Biarkan tipe Data sebagai Ganda.
-
-
Di bawah definisi Metrik, lakukan hal berikut:
-
Di Nama, masukkan
Average CPU Usage
. -
Dalam Formula, masukkan
avg(CPU Usage)
. Pilih CPU Usagedari daftar pelengkapan otomatis saat muncul. -
Dalam Interval waktu, masukkan
5 minutes
.
Properti metrik mendefinisikan perhitungan agregasi yang memproses semua titik data input selama interval dan mengeluarkan satu titik data per interval. Properti metrik ini menghitung CPU penggunaan rata-rata setiap perangkat setiap 5 menit. Untuk informasi selengkapnya, lihat Data agregat dari properti dan aset lainnya (metrik).
-
-
Pilih Tambahkan metrik baru untuk menambahkan properti metrik kedua.
-
Di baris kedua di bawah Definisi metrik, lakukan hal berikut:
-
Di Nama, masukkan
Average Memory Usage
. -
Dalam Formula, masukkan
avg(Memory Usage)
. Pilih Memory Usagedari daftar pelengkapan otomatis saat muncul. -
Dalam Interval waktu, masukkan
5 minutes
.
Properti metrik ini menghitung penggunaan memori rata-rata setiap perangkat setiap 5 menit.
-
-
(Opsional) Tambahkan metrik tambahan lain yang ingin Anda hitung per perangkat. Beberapa fungsi menarik termasuk
min
danmax
. Untuk informasi selengkapnya, lihat Gunakan ekspresi rumus. Pada Langkah 4: Membuat model aset armada perangkat, Anda membuat aset induk yang dapat menghitung metrik menggunakan data dari seluruh armada perangkat Anda. -
Pilih Buat model.
Langkah 4: Buat model aset armada perangkat
Dalam prosedur ini, Anda membuat model aset AWS IoT SiteWise untuk melambangkan koleksi perangkat Anda. Dalam model aset ini, Anda membuat struktur yang memungkinkan Anda menautkan banyak aset perangkat ke satu aset armada menyeluruh. Setelah itu, Anda menguraikan metrik dalam model aset armada untuk mengkonsolidasikan data dari semua aset perangkat yang terhubung. Pendekatan ini memberi Anda wawasan komprehensif tentang kinerja kolektif seluruh armada Anda.
Untuk membuat model aset yang mewakili armada perangkat
-
Navigasikan ke konsol AWS IoT SiteWise
tersebut. -
Di panel navigasi kiri, pilih Model.
-
Pilih Buat model.
-
Di bawah Detail model, masukkan nama untuk model Anda. Misalnya,
SiteWise Tutorial Device Fleet Model
. -
Di bawah definisi Hierarki, lakukan hal berikut:
-
Dalam nama Hierarki, masukkan
Device
. -
Dalam model Hierarki, pilih model aset perangkat Anda (
SiteWise Tutorial Device Model
).
Hirarki mendefinisikan hubungan antara model aset induk (armada) dan model aset anak (perangkat). Aset induk dapat mengakses data properti aset anak. Saat Anda membuat aset nanti, Anda perlu mengaitkan aset anak ke aset induk sesuai dengan definisi hierarki dalam model aset induk. Untuk informasi selengkapnya, lihat Tentukan hierarki model aset.
-
-
Di bawah definisi Metrik, lakukan hal berikut:
-
Di Nama, masukkan
Average CPU Usage
. -
Dalam Formula, masukkan
avg(Device | Average CPU Usage)
. Ketika daftar pelengkapan otomatis muncul, pilih Deviceuntuk memilih hierarki, lalu pilih Average CPU Usageuntuk memilih metrik dari aset perangkat yang Anda buat sebelumnya. -
Dalam Interval waktu, masukkan
5 minutes
.
Properti metrik ini menghitung CPU penggunaan rata-rata semua aset perangkat yang terkait dengan aset armada melalui
Device
hierarki. -
-
Pilih Tambahkan metrik baru untuk menambahkan properti metrik kedua.
-
Di baris kedua di bawah Definisi metrik, lakukan hal berikut:
-
Di Nama, masukkan
Average Memory Usage
. -
Dalam Formula, masukkan
avg(Device | Average Memory Usage)
. Ketika daftar pelengkapan otomatis muncul, pilih Deviceuntuk memilih hierarki, lalu pilih Average Memory Usageuntuk memilih metrik dari aset perangkat yang Anda buat sebelumnya. -
Dalam Interval waktu, masukkan
5 minutes
.
Properti metrik ini menghitung penggunaan memori rata-rata dari semua aset perangkat yang terkait dengan aset armada melalui
Device
hierarki. -
-
(Opsional) Tambahkan metrik tambahan lain yang ingin Anda hitung di seluruh armada perangkat Anda.
-
Pilih Buat model.
Langkah 5: Buat dan konfigurasikan aset perangkat
Dalam prosedur ini, Anda menghasilkan aset perangkat yang didasarkan pada model aset perangkat Anda. Kemudian, Anda menentukan alias properti untuk setiap properti pengukuran. Alias properti adalah string unik yang mengidentifikasi properti aset. Kemudian, Anda dapat mengidentifikasi properti untuk upload data dengan menggunakan alias alih-alih ID aset dan ID properti. Untuk informasi selengkapnya, lihat Memetakan aliran data industri ke properti aset.
Untuk membuat aset perangkat dan menentukan alias properti
-
Navigasikan ke konsol AWS IoT SiteWise
tersebut. -
Di panel navigasi kiri, pilih Aset.
-
Pilih Buat aset.
-
Di bawah Informasi model, pilih model aset perangkat Anda
SiteWise Tutorial Device Model
. -
Di bawah informasi Aset, masukkan nama untuk aset Anda. Misalnya,
SiteWise Tutorial Device 1
. -
Pilih Buat aset.
-
Untuk aset perangkat baru Anda, pilih Edit.
-
Di bawah CPU Usage, masukkan
/tutorial/device/SiteWiseTutorialDevice1/cpu
sebagai alias properti. Anda menyertakan nama AWS IoT benda dalam alias properti, sehingga Anda dapat menyerap data dari semua perangkat Anda menggunakan satu AWS IoT aturan. -
Di bawah Memory Usage, masukkan
/tutorial/device/SiteWiseTutorialDevice1/memory
sebagai alias properti. -
Pilih Simpan.
Jika Anda membuat beberapa AWS IoT hal sebelumnya, ulangi langkah 3 hingga 10 untuk setiap perangkat, dan tambahkan nomor dalam nama aset dan alias properti yang sesuai. Misalnya, nama aset perangkat kedua harusSiteWise Tutorial Device 2
, dan alias propertinya harus/tutorial/device/SiteWiseTutorialDevice2/cpu
, dan/tutorial/device/SiteWiseTutorialDevice2/memory
.
Langkah 6: Buat dan konfigurasikan aset armada perangkat
Dalam prosedur ini, Anda membentuk aset armada perangkat yang berasal dari model aset armada perangkat Anda. Kemudian, Anda menautkan aset perangkat individual Anda ke aset armada. Asosiasi ini memungkinkan properti metrik aset armada untuk mengkompilasi dan menganalisis data dari beberapa perangkat. Data ini memberi Anda pandangan konsolidasi tentang kinerja kolektif seluruh armada.
Untuk membuat aset armada perangkat dan mengaitkan aset perangkat
-
Navigasikan ke konsol AWS IoT SiteWise
tersebut. -
Di panel navigasi kiri, pilih Aset.
-
Pilih Buat aset.
-
Di bawah Informasi model, pilih model aset armada perangkat Anda
SiteWise Tutorial Device Fleet Model
. -
Di bawah informasi Aset, masukkan nama untuk aset Anda. Misalnya,
SiteWise Tutorial Device Fleet 1
. -
Pilih Buat aset.
-
Untuk aset armada perangkat baru Anda, pilih Edit.
-
Di bawah Aset yang terkait dengan aset ini, pilih Tambahkan aset terkait dan lakukan hal berikut:
-
Di bawah Hierarki, pilih Device. Hirarki ini mengidentifikasi hubungan hierarkis antara perangkat dan aset armada perangkat. Anda mendefinisikan hierarki ini dalam model aset armada perangkat sebelumnya dalam tutorial ini.
-
Di bawah Aset, pilih aset perangkat Anda, SiteWise Tutorial Device1.
-
-
(Opsional) Jika Anda membuat beberapa aset perangkat lebih awal, ulangi langkah 8 hingga 10 untuk setiap aset perangkat yang Anda buat.
-
Pilih Simpan.
Anda sekarang akan melihat aset perangkat Anda diatur sebagai hierarki.
Langkah 7: Buat aturan di AWS IoT Core untuk mengirim data ke aset perangkat
Dalam prosedur ini, Anda membuat aturan di AWS IoT Core. Aturan ini dirancang untuk menafsirkan pesan notifikasi dari bayangan perangkat dan mengirimkan data ke aset perangkat Anda di AWS IoT SiteWise.Setiap kali bayangan perangkat Anda diperbarui, AWS IoT mengirim MQTT pesan. Anda dapat membuat aturan yang mengambil tindakan saat bayangan perangkat berubah berdasarkan MQTT pesan. Dalam hal ini, tujuannya adalah untuk menangani pesan pembaruan, mengekstrak nilai properti, dan mengirimkannya ke aset perangkat Anda AWS IoT SiteWise.
Untuk membuat aturan dengan AWS IoT SiteWise tindakan
-
Navigasikan ke konsol AWS IoT
tersebut. -
Di panel navigasi kiri, pilih Perutean pesan, lalu pilih Aturan.
-
Pilih Buat aturan.
-
Masukkan nama dan deskripsi untuk aturan Anda dan pilih Berikutnya.
-
Masukkan SQL pernyataan berikut dan pilih Berikutnya.
SELECT * FROM '$aws/things/+/shadow/update/accepted' WHERE startsWith(topic(3), "SiteWiseTutorialDevice")
Pernyataan kueri aturan ini berfungsi karena layanan bayangan perangkat menerbitkan pembaruan bayangan ke
$aws/things/
. Untuk informasi selengkapnya tentang bayangan perangkat, lihat Layanan bayangan perangkat di Panduan AWS IoT Pengembang.thingName
/shadow/update/acceptedDalam
WHERE
klausa, pernyataan kueri aturan ini menggunakantopic(3)
fungsi untuk mendapatkan nama benda dari segmen ketiga topik. Kemudian, pernyataan tersebut menyaring perangkat yang memiliki nama yang tidak cocok dengan perangkat tutorial. Untuk informasi selengkapnya AWS IoT SQL, lihat AWS IoT SQLreferensi di Panduan AWS IoT Pengembang. -
Di bawah Tindakan aturan, pilih Kirim data pesan ke properti aset AWS IoT SiteWise dan lakukan hal berikut:
-
Pilih Berdasarkan alias properti.
-
Dalam alias Properti, masukkan
/tutorial/device/${topic(3)}/cpu
.${...}
Sintaks adalah template substitusi. AWS IoT mengevaluasi isi dalam kawat gigi. Template substitusi ini menarik nama benda dari topik untuk membuat alias unik untuk setiap hal. Untuk informasi selengkapnya, lihat Templat substitusi di Panduan AWS IoT Pengembang.catatan
Karena ekspresi dalam templat substitusi dievaluasi secara terpisah dari
SELECT
pernyataan, Anda tidak dapat menggunakan templat substitusi untuk mereferensikan alias yang dibuat menggunakan klausa.AS
Anda hanya dapat mereferensikan informasi yang ada di muatan asli, selain fungsi dan operator yang didukung. -
Di ID Entri - opsional, masukkan
${concat(topic(3), "-cpu-", floor(state.reported.timestamp))}
.Entri IDs secara unik mengidentifikasi setiap upaya entri nilai. Jika entri mengembalikan kesalahan, Anda dapat menemukan ID entri di output kesalahan untuk memecahkan masalah. Template substitusi dalam ID entri ini menggabungkan nama benda dan stempel waktu perangkat yang dilaporkan. Misalnya, ID entri yang dihasilkan mungkin terlihat seperti
SiteWiseTutorialDevice1-cpu-1579808494
. -
Dalam Waktu dalam hitungan detik, masukkan
${floor(state.reported.timestamp)}
.Template substitusi ini menghitung waktu dalam hitungan detik dari stempel waktu yang dilaporkan perangkat. Dalam tutorial ini, perangkat melaporkan stempel waktu dalam hitungan detik dalam waktu epoch Unix sebagai nomor floating point.
-
Di Offset dalam nanos - opsional, masukkan.
${floor((state.reported.timestamp % 1) * 1E9)}
Template substitusi ini menghitung offset nanodetik dari waktu dalam detik dengan mengubah bagian desimal dari stempel waktu yang dilaporkan perangkat.
catatan
AWS IoT SiteWise mengharuskan data Anda memiliki stempel waktu saat ini dalam waktu epoch Unix. Jika perangkat Anda tidak melaporkan waktu secara akurat, Anda bisa mendapatkan waktu saat ini dari mesin AWS IoT aturan dengan stempel waktu (). Fungsi ini melaporkan waktu dalam milidetik, jadi Anda harus memperbarui parameter waktu tindakan aturan Anda ke nilai berikut:
-
Dalam Waktu dalam hitungan detik, masukkan
${floor(timestamp() / 1E3)}
. -
Di Offset di nanos, masukkan.
${(timestamp() % 1E3) * 1E6}
-
-
Di Tipe data, pilih Ganda.
Tipe data ini harus cocok dengan tipe data properti aset yang Anda tentukan dalam model aset.
-
Dalam Value (Nilai), masukkan
${state.reported.cpu}
. Dalam template substitusi, Anda menggunakan.
operator untuk mengambil nilai dari dalam struktur. JSON -
Pilih Tambah entri untuk menambahkan entri baru untuk properti penggunaan memori, dan selesaikan langkah-langkah berikut lagi untuk properti itu:
-
Pilih Berdasarkan alias properti.
-
Dalam alias Properti, masukkan
/tutorial/device/${topic(3)}/memory
. -
Di ID Entri - opsional, masukkan
${concat(topic(3), "-memory-", floor(state.reported.timestamp))}
. -
Dalam Waktu dalam hitungan detik, masukkan
${floor(state.reported.timestamp)}
. -
Di Offset dalam nanos - opsional, masukkan.
${floor((state.reported.timestamp % 1) * 1E9)}
-
Di Tipe data, pilih Ganda.
-
Dalam Value (Nilai), masukkan
${state.reported.memory}
.
-
-
Di bawah IAMPeran, pilih Buat peran baru untuk membuat IAM peran untuk tindakan aturan ini. Peran ini memungkinkan AWS IoT untuk mendorong data ke properti di aset armada perangkat Anda dan hierarki asetnya.
-
Masukkan nama peran dan pilih Buat.
-
-
(Opsional) Konfigurasikan tindakan kesalahan yang dapat Anda gunakan untuk memecahkan masalah aturan Anda. Untuk informasi selengkapnya, lihat Memecahkan masalah aturan ()AWS IoT SiteWise.
-
Pilih Berikutnya.
-
Tinjau pengaturan dan pilih Buat untuk membuat aturan.
Langkah 8: Jalankan skrip klien perangkat
Untuk tutorial ini, Anda tidak menggunakan perangkat yang sebenarnya untuk melaporkan data. Sebagai gantinya, Anda menjalankan skrip untuk memperbarui bayangan perangkat AWS IoT benda Anda CPU dan penggunaan memori untuk meniru data sensor nyata. Untuk menjalankan skrip, Anda harus terlebih dahulu menginstal Python paket yang diperlukan. Dalam prosedur ini, Anda menginstal Python paket yang diperlukan dan kemudian menjalankan skrip klien perangkat.
Untuk mengkonfigurasi dan menjalankan skrip klien perangkat
-
Navigasikan ke konsol AWS IoT
tersebut. -
Di bagian bawah panel navigasi kiri, pilih Pengaturan.
-
Simpan titik akhir kustom Anda untuk digunakan dengan skrip klien perangkat. Anda menggunakan titik akhir ini untuk berinteraksi dengan bayangan benda Anda. Titik akhir ini unik untuk akun Anda di Wilayah saat ini.
Titik akhir kustom Anda akan terlihat seperti contoh berikut.
identifier
.iot.region
.amazonaws.com -
Buka baris perintah dan jalankan perintah berikut untuk menavigasi ke direktori tutorial yang Anda buat sebelumnya.
cd iot-sitewise-rule-tutorial
-
Jalankan perintah berikut untuk menginstal file AWS IoT Device SDK for Python.
pip3 install AWSIoTPythonSDK
Untuk informasi selengkapnya, lihat AWS IoT Device SDK for Pythondi Panduan AWS IoT Pengembang
-
Jalankan perintah berikut untuk menginstal psutil, proses lintas platform dan perpustakaan utilitas sistem.
pip3 install psutil
Untuk informasi selengkapnya, lihat psutil
di Indeks Paket Python. -
Buat file yang disebut
thing_performance.py
dalamiot-sitewise-rule-tutorial
direktori dan kemudian salin kode Python berikut ke dalam file.import AWSIoTPythonSDK.MQTTLib as AWSIoTPyMQTT import json import psutil import argparse import logging import time # Configures the argument parser for this program. def configureParser(): parser = argparse.ArgumentParser() parser.add_argument( "-e", "--endpoint", action="store", required=True, dest="host", help="Your AWS IoT custom endpoint", ) parser.add_argument( "-r", "--rootCA", action="store", required=True, dest="rootCAPath", help="Root CA file path", ) parser.add_argument( "-c", "--cert", action="store", required=True, dest="certificatePath", help="Certificate file path", ) parser.add_argument( "-k", "--key", action="store", required=True, dest="privateKeyPath", help="Private key file path", ) parser.add_argument( "-p", "--port", action="store", dest="port", type=int, default=8883, help="Port number override", ) parser.add_argument( "-n", "--thingName", action="store", required=True, dest="thingName", help="Targeted thing name", ) parser.add_argument( "-d", "--requestDelay", action="store", dest="requestDelay", type=float, default=1, help="Time between requests (in seconds)", ) parser.add_argument( "-v", "--enableLogging", action="store_true", dest="enableLogging", help="Enable logging for the AWS IoT Device SDK for Python", ) return parser # An MQTT shadow client that uploads device performance data to AWS IoT at a regular interval. class PerformanceShadowClient: def __init__( self, thingName, host, port, rootCAPath, privateKeyPath, certificatePath, requestDelay, ): self.thingName = thingName self.host = host self.port = port self.rootCAPath = rootCAPath self.privateKeyPath = privateKeyPath self.certificatePath = certificatePath self.requestDelay = requestDelay # Updates this thing's shadow with system performance data at a regular interval. def run(self): print("Connecting MQTT client for {}...".format(self.thingName)) mqttClient = self.configureMQTTClient() mqttClient.connect() print("MQTT client for {} connected".format(self.thingName)) deviceShadowHandler = mqttClient.createShadowHandlerWithName( self.thingName, True ) print("Running performance shadow client for {}...\n".format(self.thingName)) while True: performance = self.readPerformance() print("[{}]".format(self.thingName)) print("CPU:\t{}%".format(performance["cpu"])) print("Memory:\t{}%\n".format(performance["memory"])) payload = {"state": {"reported": performance}} deviceShadowHandler.shadowUpdate( json.dumps(payload), self.shadowUpdateCallback, 5 ) time.sleep(args.requestDelay) # Configures the MQTT shadow client for this thing. def configureMQTTClient(self): mqttClient = AWSIoTPyMQTT.AWSIoTMQTTShadowClient(self.thingName) mqttClient.configureEndpoint(self.host, self.port) mqttClient.configureCredentials( self.rootCAPath, self.privateKeyPath, self.certificatePath ) mqttClient.configureAutoReconnectBackoffTime(1, 32, 20) mqttClient.configureConnectDisconnectTimeout(10) mqttClient.configureMQTTOperationTimeout(5) return mqttClient # Returns the local device's CPU usage, memory usage, and timestamp. def readPerformance(self): cpu = psutil.cpu_percent() memory = psutil.virtual_memory().percent timestamp = time.time() return {"cpu": cpu, "memory": memory, "timestamp": timestamp} # Prints the result of a shadow update call. def shadowUpdateCallback(self, payload, responseStatus, token): print("[{}]".format(self.thingName)) print("Update request {} {}\n".format(token, responseStatus)) # Configures debug logging for the AWS IoT Device SDK for Python. def configureLogging(): logger = logging.getLogger("AWSIoTPythonSDK.core") logger.setLevel(logging.DEBUG) streamHandler = logging.StreamHandler() formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) streamHandler.setFormatter(formatter) logger.addHandler(streamHandler) # Runs the performance shadow client with user arguments. if __name__ == "__main__": parser = configureParser() args = parser.parse_args() if args.enableLogging: configureLogging() thingClient = PerformanceShadowClient( args.thingName, args.host, args.port, args.rootCAPath, args.privateKeyPath, args.certificatePath, args.requestDelay, ) thingClient.run()
-
Jalankan
thing_performance.py
dari baris perintah dengan parameter berikut:-
-n
,--thingName
- Nama benda Anda, sepertiSiteWiseTutorialDevice1
. -
-e
,--endpoint
— AWS IoT Titik akhir kustom Anda yang Anda simpan sebelumnya dalam prosedur ini. -
-r
,--rootCA
— Jalur ke sertifikat CA AWS IoT root Anda. -
-c
,--cert
— Jalan menuju sertifikat AWS IoT barang Anda. -
-k
,--key
— Jalan menuju kunci pribadi sertifikat AWS IoT barang Anda. -
-d
,--requestDelay
— (Opsional) Waktu dalam hitungan detik untuk menunggu di antara setiap pembaruan bayangan perangkat. Default ke 1 detik. -
-v
,--enableLogging
— (Opsional) Jika parameter ini ada, skrip mencetak pesan debug dari AWS IoT Device SDK for Python.
Perintah Anda akan terlihat mirip dengan contoh berikut.
python3 thing_performance.py \ --thingName SiteWiseTutorialDevice1 \ --endpoint
identifier
.iot.region
.amazonaws.com \ --rootCA AmazonRootCA1.pem \ --cert device1/thing-id
-certificate.pem.crt \ --key device1/thing-id
-private.pem.keyJika Anda menjalankan skrip untuk AWS IoT hal-hal tambahan, perbarui nama benda dan direktori sertifikat yang sesuai.
-
-
Coba buka dan tutup program di perangkat Anda untuk melihat bagaimana penggunaan CPU dan memori berubah. Skrip mencetak setiap CPU bacaan penggunaan memori. Jika skrip mengunggah data ke layanan bayangan perangkat berhasil, output skrip akan terlihat seperti contoh berikut.
[SiteWiseTutorialDevice1] CPU: 24.6% Memory: 85.2% [SiteWiseTutorialDevice1] Update request e6686e44-fca0-44db-aa48-3ca81726f3e3 accepted
-
Ikuti langkah-langkah ini untuk memverifikasi bahwa skrip memperbarui bayangan perangkat:
-
Navigasikan ke konsol AWS IoT
tersebut. -
Di panel navigasi kiri, pilih Semua perangkat dan kemudian pilih Things.
-
Pilih barang Anda, SiteWiseTutorialDevice.
-
Pilih tab Device Shadows, pilih Classic Shadow, dan verifikasi bahwa status Shadow terlihat seperti contoh berikut.
{ "reported": { "cpu": 24.6, "memory": 85.2, "timestamp": 1579567542.2835066 } }
Jika status bayangan benda Anda kosong atau tidak terlihat seperti contoh sebelumnya, periksa apakah skrip sedang berjalan dan berhasil terhubung AWS IoT. Jika skrip terus habis saat menghubungkan ke AWS IoT, periksa apakah kebijakan hal Anda dikonfigurasi sesuai dengan tutorial ini.
-
-
Ikuti langkah-langkah ini untuk memverifikasi bahwa tindakan aturan mengirim data ke AWS IoT SiteWise:
-
Navigasikan ke konsol AWS IoT SiteWise
tersebut. -
Di panel navigasi kiri, pilih Aset.
-
Pilih tanda panah di samping aset armada perangkat (SiteWise Tutorial Device Fleet 11) untuk memperluas hierarki asetnya, lalu pilih aset perangkat Anda (SiteWise Tutorial Device1).
-
Pilih Pengukuran.
-
Verifikasi bahwa sel nilai terbaru memiliki nilai untuk CPU Usagedan Memory Usageproperti.
-
Jika Memory Usageproperti CPU Usagedan tidak memiliki nilai terbaru, segarkan halaman. Jika nilai tidak muncul setelah beberapa menit, lihatMemecahkan masalah aturan ()AWS IoT SiteWise.
-
Anda telah menyelesaikan tutorial ini. Jika Anda ingin menjelajahi visualisasi langsung data Anda, Anda dapat mengonfigurasi portal di. AWS IoT SiteWise Monitor Untuk informasi selengkapnya, lihat Memantau data dengan AWS IoT SiteWise Monitor. Jika tidak, Anda dapat CTRLmenekan+C di prompt perintah Anda untuk menghentikan skrip klien perangkat. Tidak mungkin program Python akan mengirim pesan yang cukup untuk dikenakan biaya, tetapi ini adalah praktik terbaik untuk menghentikan program ketika Anda selesai.
Langkah 9: Bersihkan sumber daya setelah tutorial
Setelah Anda menyelesaikan tutorial tentang menelan data dari AWS IoT berbagai hal, bersihkan sumber daya Anda untuk menghindari biaya tambahan.
Untuk menghapus aset hierarkis di AWS IoT SiteWise
-
Arahkan ke AWS IoT SiteWise konsol
-
Di panel navigasi kiri, pilih Aset.
-
Saat Anda menghapus aset AWS IoT SiteWise, Anda harus terlebih dahulu memisahkannya.
Selesaikan langkah-langkah berikut untuk memisahkan aset perangkat Anda dari aset armada perangkat Anda:
-
Pilih aset armada perangkat Anda (SiteWise Tutorial Device Fleet 1).
-
Pilih Edit.
-
Di bawah Aset yang terkait dengan aset ini, pilih Putuskan hubungan untuk setiap aset perangkat yang terkait dengan aset armada perangkat ini.
-
Pilih Simpan.
Anda sekarang akan melihat aset perangkat Anda tidak lagi diatur sebagai hierarki.
-
-
Pilih aset perangkat Anda (SiteWise Tutorial Device1).
-
Pilih Hapus.
-
Pada dialog konfirmasi, masukkan
Delete
lalu pilih Hapus. -
Ulangi langkah 4 hingga 6 untuk setiap aset perangkat dan aset armada perangkat (SiteWise Tutorial Device Fleet 1).
Untuk menghapus model aset hierarkis di AWS IoT SiteWise
-
Navigasikan ke konsol AWS IoT SiteWise
tersebut. -
Jika Anda belum melakukannya, hapus aset armada perangkat dan perangkat Anda. Untuk informasi lebih lanjut, lihat prosedur sebelumnya. Anda tidak dapat menghapus model jika Anda memiliki aset yang dibuat dari model tersebut.
-
Di panel navigasi kiri, pilih Model.
-
Pilih model aset armada perangkat Anda (SiteWise Tutorial Device Fleet Model).
Saat menghapus model aset hierarkis, mulailah dengan menghapus model aset induk terlebih dahulu.
-
Pilih Hapus.
-
Pada dialog konfirmasi, masukkan
Delete
lalu pilih Hapus. -
Ulangi langkah 4 hingga 6 untuk model aset perangkat Anda (SiteWise Tutorial Device Model).
Untuk menonaktifkan atau menghapus aturan di AWS IoT Core
-
Navigasikan ke konsol AWS IoT
tersebut. -
Di panel navigasi kiri, pilih Perutean pesan, lalu pilih Aturan.
-
Pilih aturan Anda dan pilih Hapus.
-
Dalam dialog konfirmasi, masukkan nama aturan dan kemudian pilih Hapus.