Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Klien dapat mempublikasikan pesan dengan membuat permintaan REST API menggunakan protokol HTTP 1.0 atau 1.1. Untuk otentikasi dan pemetaan port yang digunakan oleh HTTP permintaan, lihat. Protokol, pemetaan port, dan otentikasi
catatan
HTTPStidak mendukung clientId
nilai seperti yang MQTT dilakukan. clientId
tersedia saat menggunakanMQTT, tetapi tidak tersedia saat menggunakanHTTPS.
HTTPSpesan URL
Perangkat dan klien mempublikasikan pesan mereka dengan membuat POST permintaan ke titik akhir khusus klien dan topik khusus: URL
https://
IoT_data_endpoint
/topics/url_encoded_topic_name
?qos=1
-
IoT_data_endpoint
adalah titik akhir data AWS IoT perangkat. Anda dapat menemukan titik akhir di AWS IoT konsol di halaman detail benda atau di klien dengan menggunakan AWS CLI perintah:aws iot describe-endpoint --endpoint-type iot:Data-ATS
Titik akhir akan terlihat seperti ini:
a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com
-
url_encoded_topic_name
adalah nama topik lengkap dari pesan yang dikirim.
HTTPScontoh kode pesan
Ini adalah beberapa contoh cara mengirim HTTPS pesan ke AWS IoT.
import requests
import argparse
# define command-line parameters
parser = argparse.ArgumentParser(description="Send messages through an HTTPS connection.")
parser.add_argument('--endpoint', required=True, help="Your AWS IoT data custom endpoint, not including a port. " +
"Ex: \"abcdEXAMPLExyz-ats.iot.us-east-1.amazonaws.com\"")
parser.add_argument('--cert', required=True, help="File path to your client certificate, in PEM format.")
parser.add_argument('--key', required=True, help="File path to your private key, in PEM format.")
parser.add_argument('--topic', required=True, default="test/topic", help="Topic to publish messages to.")
parser.add_argument('--message', default="Hello World!", help="Message to publish. " +
"Specify empty string to publish nothing.")
# parse and load command-line parameter values
args = parser.parse_args()
# create and format values for HTTPS request
publish_url = 'https://' + args.endpoint + ':8443/topics/' + args.topic + '?qos=1'
publish_msg = args.message.encode('utf-8')
# make request
publish = requests.request('POST',
publish_url,
data=publish_msg,
cert=[args.cert, args.key])
# print results
print("Response status: ", str(publish.status_code))
if publish.status_code == 200:
print("Response body:", publish.text)