Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Les clients peuvent publier des messages en faisant des demandes à l'RESTAPIaide des protocoles HTTP 1.0 ou 1.1. Pour l'authentification et les mappages de ports utilisés par les HTTP demandes, consultezProtocols, port mappings, and authentication (Protocoles, mappages de ports et authentification).
Note
HTTPSne supporte pas une clientId
valeur comme MQTT le fait. clientId
est disponible lors de l'utilisationMQTT, mais il ne l'est pas lors de l'utilisationHTTPS.
HTTPSmessage URL
Les appareils et les clients publient leurs messages en adressant des POST demandes à un point de terminaison spécifique au client et à un sujet spécifique : URL
https://
IoT_data_endpoint
/topics/url_encoded_topic_name
?qos=1
-
IoT_data_endpoint
est le point de terminaison des données de l'AWS IoT appareil. Vous pouvez trouver le point de terminaison dans la AWS IoT console, sur la page de détails de l'objet ou sur le client à l'aide de la AWS CLI commande :aws iot describe-endpoint --endpoint-type iot:Data-ATS
Le point de terminaison doit ressembler à ceci :
a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com
-
url_encoded_topic_name
est le nom complet du sujet du message envoyé.
HTTPSexemples de code de message
Voici quelques exemples de la manière d'envoyer un HTTPS message à 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)