Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
HTTPS
Klien dapat mempublikasikan pesan dengan membuat permintaan ke 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
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.
- Python (port 8443)
-
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)
- Python (port 443)
-
import requests
import http.client
import json
import ssl
ssl_context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS_CLIENT)
ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2
# note the use of ALPN
ssl_context.set_alpn_protocols(["x-amzn-http-ca"])
ssl_context.load_verify_locations(cafile="./<root_certificate>")
# update the certificate and the AWS endpoint
ssl_context.load_cert_chain("./<certificate_in_PEM_Format>", "<private_key_in_PEM_format>")
connection = http.client.HTTPSConnection('<the ats IoT endpoint>', 443, context=ssl_context)
message = {'data': 'Hello, I'm using TLS Client authentication!'}
json_data = json.dumps(message)
connection.request('POST', '/topics/device%2Fmessage?qos=1', json_data)
# make request
response = connection.getresponse()
# print results
print(response.read().decode())
- CURL
-
Anda dapat menggunakan curl dari klien atau perangkat untuk mengirim pesan ke AWS IoT.
Untuk menggunakan curl untuk mengirim pesan dari perangkat AWS IoT klien
-
Periksa curl versinya.
-
Pada klien Anda, jalankan perintah ini pada command prompt.
curl --help
Dalam teks bantuan, cari TLS opsi. Anda harus melihat --tlsv1.2
opsi.
-
Jika Anda melihat --tlsv1.2
opsi, lanjutkan.
-
Jika Anda tidak melihat --tlsv1.2
opsi atau Anda mendapatkan command not found
kesalahan, Anda mungkin perlu memperbarui atau menginstal curl pada klien Anda atau menginstal openssl
sebelum melanjutkan.
-
Instal sertifikat pada klien Anda.
Salin file sertifikat yang Anda buat saat Anda mendaftarkan klien Anda (benda) di AWS IoT konsol. Pastikan Anda memiliki tiga file sertifikat ini di klien Anda sebelum melanjutkan.
-
File sertifikat CA (Amazon-root-CA-1.pem
dalam contoh ini).
-
File sertifikat klien (device.pem.crt
dalam contoh ini).
-
File kunci pribadi klien (private.pem.key
dalam contoh ini).
-
Buat baris curl perintah, ganti nilai yang dapat diganti untuk akun dan sistem Anda.
curl --tlsv1.2 \
--cacert Amazon-root-CA-1.pem
\
--cert device.pem.crt
\
--key private.pem.key
\
--request POST \
--data "{ \"message\": \"Hello, world\" }
" \
"https://IoT_data_endpoint
:8443/topics/topic
?qos=1"
- --tlsv1.2
-
Gunakan TLS 1.2 (SSL).
- --cacert
Amazon-root-CA-1.pem
-
Nama file dan jalur, jika perlu, dari sertifikat CA untuk memverifikasi rekan.
- --cert
device.pem.crt
-
Nama file sertifikat klien dan jalur, jika perlu.
- --kunci
private.pem.key
-
Nama file kunci pribadi klien dan jalur, jika perlu.
- --permintaan POST
-
Jenis HTTP permintaan (dalam hal ini,POST).
- --data”
{ \"message\": \"Hello,
world\" }
"
-
HTTPPOSTData yang ingin Anda publikasikan. Dalam hal ini, ini adalah JSON string, dengan tanda kutip internal lolos dengan karakter garis miring terbalik (\).
- “https://
IoT_data_endpoint
:8443/topik/topic
? qos=1"
-
Titik akhir data AWS IoT perangkat klien Anda, diikuti oleh HTTPS port:8443
, yang kemudian diikuti oleh kata kunci, /topics/
dan nama topiktopic
, dalam hal ini. URL Tentukan Kualitas Layanan sebagai parameter kueri,?qos=1
.
-
Buka klien MQTT uji di AWS IoT konsol.
Ikuti petunjuk Lihat MQTT pesan dengan AWS IoT MQTT klien dan konfigurasikan konsol untuk berlangganan pesan dengan nama topik topic
digunakan dalam curl perintah Anda, atau gunakan filter topik wildcard. #
-
Uji perintahnya.
Saat memantau topik di klien pengujian AWS IoT konsol, buka klien Anda dan keluarkan baris perintah curl yang Anda buat di langkah 3. Anda akan melihat pesan klien Anda di konsol.