Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan Windows atau Linux PC atau Mac sebagai AWS IoT perangkat
Dalam tutorial ini, Anda akan mengkonfigurasi komputer pribadi untuk digunakan dengan AWS IoT. Instruksi ini mendukung Windows dan Linux PCs dan Mac. Untuk mencapai ini, Anda perlu menginstal beberapa perangkat lunak di komputer Anda. Jika Anda tidak ingin menginstal perangkat lunak di komputer Anda, Anda dapat mencobaBuat perangkat virtual dengan Amazon EC2, yang menginstal semua perangkat lunak pada mesin virtual.
Dalam tutorial ini, Anda akan:
Siapkan komputer pribadi Anda
Untuk menyelesaikan tutorial ini, Anda memerlukan PC Windows atau Linux atau Mac dengan koneksi ke internet.
Sebelum Anda melanjutkan ke langkah berikutnya, pastikan Anda dapat membuka jendela baris perintah di komputer Anda. Gunakan cmd.exe pada PC Windows. Pada PC Linux atau Mac, gunakanTerminal.
Instal Git, Python, dan AWS IoT Perangkat SDK untuk Python
Di bagian ini, Anda akan menginstal Python, dan AWS IoT Perangkat untuk SDK Python di komputer Anda.
Instal versi terbaru Git dan Python
Prosedur ini menjelaskan cara menginstal versi terbaru Git dan Python di komputer pribadi Anda.
Untuk mengunduh dan menginstal Git dan Python di komputer Anda
-
Periksa untuk melihat apakah Anda telah menginstal Git di komputer Anda. Masukkan perintah ini di baris perintah.
git --version
Jika perintah menampilkan versi Git, Git diinstal dan Anda dapat melanjutkan ke langkah berikutnya.
Jika perintah menampilkan kesalahan, buka
https://git-scm.com/download
dan instal Git untuk komputer Anda. -
Periksa untuk melihat apakah Anda telah menginstal Python. Masukkan perintah di baris perintah.
python -V
catatan
Jika perintah ini memberikan kesalahan:
Python was not found
, mungkin karena sistem operasi Anda memanggil Python v3.x yang dapat dieksekusi sebagai.Python3
Dalam hal ini, ganti semua contohpython
denganpython3
dan lanjutkan sisa tutorial ini.Jika perintah menampilkan versi Python, Python sudah diinstal. Tutorial ini membutuhkan Python v3.7 atau yang lebih baru.
-
Jika Python diinstal, Anda dapat melewati langkah-langkah lainnya di bagian ini. Jika tidak, lanjutkan.
-
Buka https://www.python.org/downloads/
dan unduh installer untuk komputer Anda. -
Jika unduhan tidak secara otomatis mulai diinstal, jalankan program yang diunduh untuk menginstal Python.
-
Verifikasi instalasi Python.
python -V
Konfirmasikan bahwa perintah menampilkan versi Python. Jika versi Python tidak ditampilkan, coba unduh dan instal Python lagi.
Instal AWS IoT Perangkat SDK untuk Python
Untuk menginstal AWS IoT Perangkat SDK untuk Python di komputer Anda
-
Instal v2 AWS IoT Perangkat SDK untuk Python.
python3 -m pip install awsiotsdk
-
Kloning AWS IoT Perangkat SDK untuk repositori Python ke direktori -python-v2 aws-iot-device-sdk dari direktori home Anda. Prosedur ini mengacu pada direktori dasar untuk file yang Anda instal sebagai
home
.Lokasi sebenarnya dari
home
direktori tergantung pada sistem operasi Anda.catatan
Jika Anda menggunakan Windows PowerShell sebagai lawan daricmd.exe, maka gunakan perintah berikut.
echo $home
Untuk informasi selengkapnya, lihat AWS IoT
repositori Perangkat SDK untuk Python GitHub
Bersiaplah untuk menjalankan aplikasi sampel
Untuk mempersiapkan sistem Anda untuk menjalankan aplikasi sampel
-
Buatlah direktori
certs
. Kecerts
direktori, salin kunci pribadi, sertifikat perangkat, dan file sertifikat CA root yang Anda simpan saat Anda membuat dan mendaftarkan objek bendaBuat AWS IoT sumber daya. Nama file dari setiap file di direktori tujuan harus cocok dengan yang ada di tabel.Perintah di bagian berikutnya mengasumsikan bahwa file kunci dan sertifikat Anda disimpan di perangkat Anda seperti yang ditunjukkan dalam tabel ini.
Menyiapkan kebijakan dan menjalankan contoh aplikasi
Di bagian ini, Anda akan menyiapkan kebijakan dan menjalankan skrip pubsub.py
sampel yang ditemukan di aws-iot-device-sdk-python-v2/samples
direktori AWS IoT Device SDK for Python. Skrip ini menunjukkan cara perangkat Anda menggunakan MQTT pustaka untuk menerbitkan dan berlangganan MQTT pesan.
Aplikasi pubsub.py
sampel berlangganan topiktest/topic
, menerbitkan 10 pesan ke topik itu, dan menampilkan pesan saat diterima dari broker pesan.
Untuk menjalankan skrip pubsub.py
sampel, Anda memerlukan informasi berikut:
Nilai parameter aplikasi | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
Di mana menemukan nilainya |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
your-iot-endpoint |
|
Bagian your-iot-endpoint
nilai memiliki format:
, misalnya,endpoint_id
-ats.iot.region
.amazonaws.com.rproxy.goskope.coma3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com
.
Sebelum menjalankan skrip, pastikan kebijakan hal Anda memberikan izin untuk skrip sampel untuk terhubung, berlangganan, menerbitkan, dan menerima.
Untuk menemukan dan meninjau dokumen kebijakan untuk sumber daya sesuatu
-
Di AWS IoT konsol
, di daftar Things, temukan sumber daya benda yang mewakili perangkat Anda. -
Pilih tautan Nama dari sumber daya benda yang mewakili perangkat Anda untuk membuka halaman Detail hal.
-
Di halaman Detail hal, di tab Sertifikat, pilih sertifikat yang dilampirkan ke sumber daya benda. Seharusnya hanya ada satu sertifikat dalam daftar. Jika ada lebih dari satu, pilih sertifikat yang filenya diinstal pada perangkat Anda dan yang akan digunakan untuk terhubung AWS IoT Core.
Di halaman Detail sertifikat, di tab Kebijakan, pilih kebijakan yang dilampirkan pada sertifikat. Seharusnya hanya ada satu. Jika ada lebih dari satu, ulangi langkah berikutnya untuk masing-masing untuk memastikan bahwa setidaknya satu kebijakan memberikan akses yang diperlukan.
-
Di halaman Ringkasan kebijakan, temukan JSON editor dan pilih Edit dokumen kebijakan untuk meninjau dan mengedit dokumen kebijakan sesuai kebutuhan.
-
Kebijakan JSON ditampilkan dalam contoh berikut. Dalam
"Resource"
elemen, ganti
dengan Anda Wilayah AWS dan Akun AWS di setiapregion:account
Resource
nilai.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:
region:account
:topic/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account
:topicfilter/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:region:account
:client/test-*" ] } ] }
Contoh skrip:
-
Terhubung ke AWS IoT Core untuk akun Anda.
-
Berlangganan topik pesan, uji/topik, dan menampilkan pesan yang diterimanya pada topik itu.
-
Menerbitkan 10 pesan ke topik, uji/topik.
-
Menampilkan output yang mirip dengan berikut ini:
Connected! Subscribing to topic 'test/topic'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'test/topic': Hello World! [1] Received message from topic 'test/topic': b'"Hello World! [1]"' Publishing message to topic 'test/topic': Hello World! [2] Received message from topic 'test/topic': b'"Hello World! [2]"' Publishing message to topic 'test/topic': Hello World! [3] Received message from topic 'test/topic': b'"Hello World! [3]"' Publishing message to topic 'test/topic': Hello World! [4] Received message from topic 'test/topic': b'"Hello World! [4]"' Publishing message to topic 'test/topic': Hello World! [5] Received message from topic 'test/topic': b'"Hello World! [5]"' Publishing message to topic 'test/topic': Hello World! [6] Received message from topic 'test/topic': b'"Hello World! [6]"' Publishing message to topic 'test/topic': Hello World! [7] Received message from topic 'test/topic': b'"Hello World! [7]"' Publishing message to topic 'test/topic': Hello World! [8] Received message from topic 'test/topic': b'"Hello World! [8]"' Publishing message to topic 'test/topic': Hello World! [9] Received message from topic 'test/topic': b'"Hello World! [9]"' Publishing message to topic 'test/topic': Hello World! [10] Received message from topic 'test/topic': b'"Hello World! [10]"' 10 message(s) received. Disconnecting... Disconnected!
Jika Anda mengalami masalah dalam menjalankan aplikasi sampel, tinjauMemecahkan masalah dengan aplikasi sampel.
Anda juga dapat menambahkan --verbosity Debug
parameter ke baris perintah sehingga aplikasi sampel menampilkan pesan terperinci tentang apa yang dilakukannya. Informasi itu dapat membantu Anda memperbaiki masalah.
Melihat pesan dari aplikasi sampel di AWS IoT konsol
Anda dapat melihat pesan aplikasi sampel saat mereka melewati broker pesan dengan menggunakan klien MQTT pengujian di AWS IoT konsol.
Untuk melihat MQTT pesan yang diterbitkan oleh aplikasi sampel
-
UlasanLihat MQTT pesan dengan AWS IoT MQTT klien. Ini membantu Anda mempelajari cara menggunakan klien MQTT pengujian di AWS IoT konsol untuk melihat MQTT pesan saat mereka melewati broker pesan.
-
Buka klien MQTT uji di AWS IoT konsol.
-
Di Berlangganan topik, berlangganan topik, uji/topik.
-
Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan tonton pesan di MQTTklien di AWS IoT konsol.
Untuk informasi selengkapnya tentang MQTT dan cara AWS IoT Core mendukung protokol, lihat MQTT.
Jalankan contoh Berlangganan Bersama dengan Python
AWS IoT Core mendukung Langganan Bersama untuk MQTT 3 dan MQTT 5. Langganan Bersama memungkinkan beberapa klien untuk berbagi langganan ke suatu topik dan hanya satu klien yang akan menerima pesan yang dipublikasikan ke topik tersebut menggunakan distribusi acak. Untuk menggunakan Langganan Bersama, klien berlangganan filter topik Langganan Bersama:$share/{ShareName}/{TopicFilter}
.
Untuk menyiapkan kebijakan dan menjalankan contoh Langganan Bersama
-
Untuk menjalankan contoh Berlangganan Bersama, Anda harus menyiapkan kebijakan hal Anda seperti yang didokumentasikan dalam MQTT5 Langganan Bersama
. -
Untuk menjalankan contoh Berlangganan Bersama, jalankan perintah berikut.
catatan
Anda dapat secara opsional menentukan pengidentifikasi grup berdasarkan kebutuhan Anda saat menjalankan sampel (misalnya,
--group_identifier consumer
). Jika Anda tidak menentukannya,python-sample
adalah pengidentifikasi grup default. -
Output di baris perintah Anda dapat terlihat seperti berikut:
Publisher]: Lifecycle Connection Success [Publisher]: Connected Subscriber One]: Lifecycle Connection Success [Subscriber One]: Connected Subscriber Two]: Lifecycle Connection Success [Subscriber Two]: Connected [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [1]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [2]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [3]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [4]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [5]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [6]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [7]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [8]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [9]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [10]"' [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>] [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>] Publisher]: Lifecycle Disconnected [Publisher]: Lifecycle Stopped [Publisher]: Fully stopped Subscriber One]: Lifecycle Disconnected [Subscriber One]: Lifecycle Stopped [Subscriber One]: Fully stopped Subscriber Two]: Lifecycle Disconnected [Subscriber Two]: Lifecycle Stopped [Subscriber Two]: Fully stopped Complete!
-
Buka klien MQTT uji di AWS IoT konsol. Di Berlangganan topik, berlangganan topik Langganan Bersama seperti:
$share/consumer/test/topic
. Anda dapat menentukan pengidentifikasi grup berdasarkan kebutuhan Anda saat menjalankan sampel (mis.,--group_identifier consumer
). Jika Anda tidak menentukan pengidentifikasi grup, nilai defaultnya adalahpython-sample
. Untuk informasi selengkapnya, lihat MQTT5 contoh Python Berlangganan Bersamadan Langganan Bersama dari AWS IoT Core Panduan Pengembang. Di jendela baris perintah Anda, jalankan aplikasi sampel lagi dan perhatikan distribusi pesan di klien MQTT pengujian AWS IoT konsol dan baris perintah.