As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Os clientes podem publicar mensagens fazendo solicitações REST API usando os protocolos HTTP 1.0 ou 1.1. Para a autenticação e os mapeamentos de portas usados pelas HTTP solicitações, consulte. Protocolos, mapeamentos de porta e autenticação
nota
HTTPSnão suporta um clientId
valor como MQTT o faz. clientId
está disponível durante o usoMQTT, mas não está disponível durante o usoHTTPS.
HTTPSmensagem URL
Dispositivos e clientes publicam suas mensagens fazendo POST solicitações para um endpoint específico do cliente e um tópico específico: URL
https://
IoT_data_endpoint
/topics/url_encoded_topic_name
?qos=1
-
IoT_data_endpoint
é o endpoint de dados do AWS IoT dispositivo. Você pode encontrar o endpoint no AWS IoT console na página de detalhes da coisa ou no cliente usando o AWS CLI comando:aws iot describe-endpoint --endpoint-type iot:Data-ATS
O endpoint deve ser algo parecido com isto:
a3qjEXAMPLEffp-ats.iot.us-west-2.amazonaws.com
-
url_encoded_topic_name
é o nome completo do tópico da mensagem que está sendo enviada.
HTTPSexemplos de código de mensagem
Estes são alguns exemplos de como enviar uma HTTPS mensagem para 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)