Platform IoT menyediakan SDK untuk Python. Topik ini menjelaskan cara menginstal dan mengonfigurasi SDK Platform IoT untuk Python, serta menyediakan contoh kode penggunaannya untuk memanggil operasi API Platform IoT.
Instal SDK Platform IoT untuk Python
Instal lingkungan pengembangan Python.
Unduh paket instalasi Python dari situs web resmi Python dan instal Python. SDK untuk Python memerlukan Python 3.6 atau versi yang lebih baru.
Instal pip untuk mengelola paket Python. Jika Anda telah menginstal pip, lewati langkah ini.
Unduh paket instalasi pip dari situs web resmi pip dan instal pip.
Instal SDK Platform IoT untuk Python.
Jalankan perintah berikut sebagai administrator untuk menginstal SDK Platform IoT untuk Python. Untuk informasi selengkapnya tentang cara menggunakan SDK, lihat alibabacloud-python-sdk.
pip3 install alibabacloud_tea_openapi # Instal versi terbaru SDK Platform IoT untuk Python. pip3 install alibabacloud_iot20180120 # Instal versi tertentu SDK Platform IoT untuk Python. Dalam contoh ini, SDK Platform IoT untuk Python versi 3.0.9 diinstal. pip3 install alibabacloud_iot20180120==3.0.9Instal paket alibabacloud-tea-console untuk menampilkan log di konsol Platform IoT.
Jalankan perintah berikut sebagai administrator:
pip3 install alibabacloud-tea-consoleImpor file yang terkait dengan SDK Platform IoT untuk Python ke dalam file Python.
from Tea.core import TeaCore from alibabacloud_iot20180120.client import Client as IotClient from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_iot20180120 import models as iot_models from alibabacloud_tea_console.client import Client as ConsoleClient from alibabacloud_tea_util.client import Client as UtilClient ...
Inisialisasi SDK Platform IoT untuk Python
Buat objek config untuk menyimpan informasi inisialisasi SDK, seperti ID AccessKey, Rahasia AccessKey, dan ID wilayah.
Buat instans client dan panggil metode
IotClient(config)untuk memuat informasi SDK dari objek config. Dengan demikian, SDK diinisialisasi.
Sebagai contoh, jika Anda ingin menggunakan SDK di wilayah Tiongkok (Shanghai), Anda dapat menggunakan kode berikut untuk menginisialisasi SDK. Di lingkungan produksi, Anda harus memilih wilayah tempat Platform IoT diaktifkan.
config = open_api_models.Config()
# ID AccessKey Anda.
config.access_key_id = os.environ.get('ALICLOUD_ACCESS_KEY_ID')
# Rahasia AccessKey Anda.
config.access_key_secret = os.environ.get('ALICLOUD_ACCESS_KEY_SECRET')
# ID wilayah Anda.
config.region_id = 'cn-shanghai'
client = IotClient(config)Parameter | Deskripsi |
region_id | ID wilayah tempat instans Platform IoT Anda berada. ID wilayah digunakan dalam titik akhir untuk akses layanan. Titik akhir memiliki format iot.${RegionId}.aliyuncs.com. Anda dapat melihat wilayah tersebut di pojok kiri atas Konsol Platform IoT. Untuk informasi selengkapnya tentang format ID wilayah, lihat Wilayah yang didukung. |
Kirim permintaan
SDK mengenkapsulasi kelas untuk setiap operasi API. Nama kelas memiliki format ${nama API}+"Request". Anda dapat menggunakan kelas tersebut untuk mengirim permintaan API.
Prosedur
Inisialisasi SDK. Untuk informasi selengkapnya, lihat Inisialisasi SDK.
Buat permintaan API dengan membuat instans request yang nama kelasnya memiliki format
${nama API}+"Request".Panggil metode
"set"+${parameter permintaan}dari instans request untuk menentukan parameter permintaan.Panggil metode
${nama API dengan kata-kata dihubungkan oleh garis bawah}(request)dari instans client untuk mendapatkan tanggapan. Metode yang namanya diakhiri dengan_asyncmenunjukkan metode asinkron.Contoh:
invoke_things_service(request)daninvoke_things_service_async(request).
Untuk informasi selengkapnya tentang operasi API Platform IoT, lihat Daftar operasi berdasarkan fungsi. Untuk informasi selengkapnya tentang parameter permintaan dan parameter respons setiap operasi API, lihat referensi API.
Contoh berikut menunjukkan cara memanggil operasi Pub untuk memublikasikan pesan ke topik. Untuk informasi selengkapnya tentang parameter permintaan, lihat Pub.
Dalam contoh kode berikut, ${iotInstanceId} menentukan ID sebuah instans. Anda dapat melihat ID instans pada halaman Overview di Konsol Platform IoT.
Jika instans Anda memiliki ID, Anda harus menentukan ID tersebut untuk parameter ini. Jika tidak, pemanggilan akan gagal.
Jika halaman Overview atau ID tidak dibuat untuk instans Anda, Anda tidak perlu mengonfigurasi parameter ini. Anda harus menghapus kode permintaan yang terkait dengan parameter IotInstanceId atau menentukan string kosong (
"") untuk parameter tersebut. Jika tidak, pemanggilan akan gagal.
Untuk informasi selengkapnya tentang instans Platform IoT, lihat Ikhtisar. Untuk informasi selengkapnya tentang cara membeli instans, lihat Beli instans Edisi Perusahaan. Untuk informasi selengkapnya, lihat FAQ tentang instans Platform IoT.
request = iot_models.PubRequest(
# ID instans Platform IoT.
iot_instance_id='${iotInstanceId}',
# KunciProduk produk.
product_key='${productKey}',
# Isi pesan yang ingin Anda kirim. Enkode "hello world" dalam Base64 sebagai string.
message_content='aGVsbG8gd29ybGQ=',
# Nama topik kustom yang digunakan oleh perangkat untuk menerima pesan.
topic_full_name='/${productKey}/${deviceName}/user/get',
# Tingkat quality of service (QoS) pesan. Pesan QoS 0 dan QoS 1 didukung.
qos=0
)
response = client.pub(request)
print('response : ' + response)Kode contoh lengkap
Anda dapat mengganti nilai parameter di atas dengan nilai aktual berdasarkan skenario bisnis Anda.
# -*- coding: utf-8 -*-
import sys
from typing import List
from Tea.core import TeaCore
from alibabacloud_iot20180120.client import Client as IotClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_iot20180120 import models as iot_models
from alibabacloud_tea_console.client import Client as ConsoleClient
from alibabacloud_tea_util.client import Client as UtilClient
access_key_id = os.environ.get('ACCESS_KEY_ID')
access_key_secret = os.environ.get('ACCESS_KEY_SECRET')
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> IotClient:
"""
Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.
"""
Use your AccessKey ID and AccessKey secret to initialize the client.
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config()
# ID AccessKey Anda.
config.access_key_id = os.environ.get('ALICLOUD_ACCESS_KEY_ID')
# Rahasia AccessKey Anda.
config.access_key_secret = os.environ.get('ALICLOUD_ACCESS_KEY_SECRET')
# ID wilayah Anda.
config.region_id = 'cn-shanghai'
return Iot20180120Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
"""
Panggilan sinkron
"""
try:
client = Sample.create_client('${accessKey}', '${accessKeySecret}')
request = iot_models.PubRequest(
# ID instans Platform IoT.
iot_instance_id='${iotInstanceId}',
# KunciProduk produk.
product_key='${productKey}',
# Isi pesan yang ingin Anda kirim. Enkode "hello world" dalam Base64 sebagai string.
message_content='eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=',
# Topik kustom yang digunakan untuk memublikasikan pesan.
topic_full_name='/${productKey}/${deviceName}/user/get',
# Tingkat QoS pesan. Pesan QoS 0 dan QoS 1 didukung.
qos=0
)
response = client.pub(request)
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(response)))
except Exception as error:
ConsoleClient.log(error.message)
@staticmethod
async def main_async(
args: List[str],
) -> None:
"""
Panggilan asinkron
"""
try:
client = Sample.create_client('${accessKey}', '${accessKeySecret}')
request = iot_models.PubRequest(
# ID instans Platform IoT.
iot_instance_id='${iotInstanceId}',
# KunciProduk produk.
product_key='${productKey}',
# Isi pesan yang ingin Anda kirim. Enkode "hello world" dalam Base64 sebagai string.
message_content='eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=',
# Topik kustom yang digunakan untuk memublikasikan pesan.
topic_full_name='/${productKey}/${deviceName}/user/get',
# Tingkat QoS pesan. Pesan QoS 0 dan QoS 1 didukung.
qos=0
)
response = await client.pub_async(request)
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(response)))
except Exception as error:
ConsoleClient.log(error.message)
if __name__ == '__main__':
Sample.main(sys.argv[1:])Lampiran: Kode contoh
Anda dapat melihat atau mengunduh kode contoh operasi API di Pusat Contoh SDK Platform IoT. Kode contoh SDK untuk Java, Python, PHP, Node.js, Go, C++, dan .NET disediakan.
Alibaba Cloud OpenAPI Explorer menyediakan alat debugging online untuk operasi API. Pada halaman API Debugging, Anda dapat mencari operasi API, memanggil operasi API, dan menghasilkan kode contoh untuk berbagai SDK. Di sisi kanan halaman, Anda dapat melihat kode contoh SDK pada tab Sample Code. Pada tab Debugging Result, Anda dapat melihat URL permintaan aktual dan tanggapan dalam format JSON.