Contoh lengkap publikasi pesan ke perangkat melalui topik kustom dengan menggunakan operasi OpenAPI.
Lihat dokumen OpenAPI
Periksa daftar API untuk menemukan operasi Pub, yang memublikasikan pesan ke perangkat melalui topik kustom. Tinjau dokumentasinya untuk memahami data dan izin yang diperlukan.
Buat pengguna RAM dan berikan izin
Identitas
Anda dapat memanggil operasi ini menggunakan akun Alibaba Cloud, pengguna Resource Access Management (RAM), atau peran RAM. Untuk informasi selengkapnya mengenai perbedaan antara identitas tersebut, lihat Identitas, kredensial, dan otorisasi. Contoh ini menggunakan pengguna RAM.
Masuk ke Konsol Resource Access Management (RAM), buat pengguna RAM hanya untuk panggilan API, dan simpan pasangan AccessKey. Untuk informasi selengkapnya, lihat Buat pengguna RAM.
Otorisasi
-
Buka halaman Daftar Pengguna RAM. Di kolom Actions pengguna RAM yang dituju, klik Add Permissions.
-
Pada bagian Select Policy, masukkan kata kunci
IoTdi kotak pencarian dan pilih kebijakan AliyunIOTFullAccess.Catatan-
Kebijakan sistem untuk Platform IoT adalah sebagai berikut:
-
AliyunIOTFullAccess: Memberikan izin manajemen penuh untuk Platform Internet of Things (IoT).
-
AliyunIOTReadOnlyAccess: Memberikan izin akses read-only untuk Platform Internet of Things (IoT).
-
-
Untuk informasi selengkapnya tentang pembuatan kebijakan kustom, lihat Kebijakan kustom.
-
-
Klik OK untuk menyelesaikan otorisasi.
Kredensial
Pasangan AccessKey dibuat secara default saat Anda membuat pengguna RAM.
Sebagai alternatif, buka halaman detail pengguna RAM. Pada tab Authentication Management, klik Create AccessKey. Untuk informasi selengkapnya, lihat Buat AccessKey.
Panggil OpenAPI
Contoh berikut menggunakan Python untuk memanggil operasi Pub.
Persiapkan lingkungan Python
-
Periksa apakah Python 3 telah terinstal di sistem Anda.
Sistem Linux dan macOS
Buka terminal dan jalankan perintah
python3 --version.Jika sistem menampilkan nomor versi Python, berarti Python 3 telah terinstal. Jika tidak, lanjutkan ke langkah berikutnya untuk menginstal Python 3.
Sistem Windows
Di direktori instalasi Python, klik ganda python.exe untuk membuka jendela command prompt. Anda juga dapat menggunakan pintasan keyboard Win+R untuk membuka kotak dialog Run, masukkan python, lalu klik OK.
Jika sistem menampilkan respons seperti berikut dan masuk ke lingkungan interaktif Python, berarti Python telah terinstal.
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> -
Unduh dan instal Python.
Untuk mengunduh Python 3, lihat Python 3.
Linux
-
Unduh paket Python.
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz -
Ekstrak paket Python.
tar -zxvf Python-3.9.6.tgz -
Beralih ke folder hasil ekstraksi dan tentukan path instalasi.
cd Python-3.9.6 sudo ./configure --prefix=/usr/bin/python3 -
Kompilasi dan instal Python.
make make install -
Konfigurasikan variabel lingkungan untuk Python 3.
Sebagai contoh, pada sistem Ubuntu Linux, Anda dapat menjalankan perintah berikut.
-
Buka file
.bashrcdan tambahkan baris berikut di akhir file.nano ~/.bashrc -
Tambahkan konten berikut di akhir file, lalu simpan dan tutup file tersebut.
export PATH=$PATH:/usr/bin/python3 -
Jalankan perintah berikut untuk memperbarui variabel lingkungan.
source ~/.bashrc -
Jalankan perintah berikut untuk melihat variabel lingkungan dan pastikan path instalasi Python 3 sudah termasuk di dalamnya.
echo $PATH
-
macOS
Sistem ini dilengkapi Python 2.7. Unduh dan instal versi terbaru Python 3.x.
-
Setelah mengunduh paket instalasi, klik ganda untuk membuka wizard instalasi Python.
-
Klik Continue, lalu ikuti petunjuk untuk mengonfigurasi dan menginstal.
-
Konfigurasikan variabel lingkungan berdasarkan path instalasi Python 3.
Windows
-
Setelah pengunduhan selesai, klik ganda paket tersebut untuk membuka wizard instalasi Python. Gunakan pengaturan default dan pilih Add Python 3.9 to PATH.
-
Klik Install Now untuk memulai instalasi.
-
Setelah instalasi selesai, klik Close untuk menutup jendela instalasi.
-
-
Ulangi Langkah 1 untuk memeriksa versi Python 3. Jika nomor versi yang benar ditampilkan, instalasi berhasil.
Konfigurasikan variabel lingkungan
Untuk menghindari hard-coding pasangan AccessKey di kode Anda, simpan kredensial dalam variabel lingkungan.
-
Sistem Linux dan macOS
Ganti
<access_key_id>dan<access_key_secret>dalam perintah berikut dengan ID AccessKey dan rahasia AccessKey Anda. Lalu, jalankan perintah tersebut di terminal.export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret> -
Sistem Windows
Buat variabel lingkungan
ALIBABA_CLOUD_ACCESS_KEY_IDdanALIBABA_CLOUD_ACCESS_KEY_SECRET, lalu atur nilainya sesuai dengan ID AccessKey dan rahasia AccessKey Anda. Setelah itu, restart sistem Windows Anda.
Instal dependensi
pip3 install alibabacloud_tea_openapi
pip3 install alibabacloud_iot20180120
pip3 install alibabacloud-tea-console
Unduh kode contoh
-
Di Portal OpenAPI, buka halaman debugging untuk API Pub.
-
Masukkan nilai untuk parameter permintaan IotInstanceId, ProductKey, TopicFullName, dan MessageContent. Parameter lainnya dapat dibiarkan kosong.
-
Klik Submit Request.
-
Di tab Call Result, setelah muncul pesan Call Succeeded, klik tab SDK Sample, lalu klik tab Python.
-
Klik Download Complete Project untuk mengunduh paket kode contoh.
-
Ekstrak paket kode contoh di mesin lokal Anda dan buka folder alibabacloud_sample.
Jalankan kode
Jalankan perintah berikut:
python sample.py
Output-nya adalah sebagai berikut:
{
"headers": {
"date": "Thu, 10 Aug 2023 09:26:52 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "99",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253",
"x-acs-trace-id": "aee72e4c5e***************77fc9d",
"etag": "9umD************cjYJ8og9"
},
"statusCode": 200,
"body": {
"MessageId": 1689000000000004736,
"RequestId": "1296FD43-4BD3-5F80-AB2C-1ADF99B02253",
"Success": true
}
}