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á.
Use seu PC Windows ou Linux ou Mac como um AWS IoT dispositivo
Neste tutorial, você configurará um computador pessoal para uso com AWS IoT. Essas instruções são compatíveis com Windows, Linux PCs e Macs. Para concluir este tutorial, você precisará instalar alguns softwares no seu computador. Se não quiser instalar software no seu computador, você pode tentar Crie um dispositivo virtual com a Amazon EC2 e instalar todos os softwares em uma máquina virtual.
Neste tutorial, você vai:
Configurar seu computador pessoal
Para concluir este tutorial, será preciso um PC com Windows ou Linux ou de um Mac com conexão à Internet.
Antes de avançar para a próxima etapa, verifique se você pode abrir uma janela de linha de comando no computador. Em um PC com Windows, use cmd.exe. Em um PC com Linux ou em um Mac, use Terminal.
Instale o Git, o Python e o Device SDK para Python AWS IoT
Nesta seção, você instalará o Python e o AWS IoT Device SDK for Python em seu computador.
Instalar a versão mais recente do Git e do Python
Este procedimento explica como instalar a versão mais recente do Git e do Python em seu computador pessoal.
Para baixar e instalar o Git e o Python em seu computador
-
Verifique se você possui o Git já instalado no computador. Insira este comando na linha de comando.
git --version
Se o comando exibir a versão do Git, o Git está instalado e você pode avançar para a próxima etapa.
Caso o comando exiba um erro, abra
https://git-scm.com/download
e instale o Git em seu computador. -
Verifique se você já possui o Python instalado. Insira o seguinte comando na linha de comando.
python -V
nota
Se esse comando exibir um erro:
Python was not found
, pode ser que seu sistema operacional chame o executável Python v3.x comoPython3
. Nesse caso, substitua todas as instâncias depython
compython3
e siga com o resto deste tutorial.Se o comando exibir a versão do Python, então o Python já está instalado. Este tutorial requer o Python v3.7 ou uma versão posterior.
-
Se o Python já estiver instalado, você pode ignorar o restante das etapas desta seção. Se não estiver, então continue.
-
Abra https://www.python.org/downloads/
e baixe o instalador para o seu computador. -
Se o download não começar a instalação automaticamente, execute o programa baixado para instalar o Python.
-
Verifique a instalação do Python.
python -V
Confirme se o comando exibe a versão do Python. Se a versão do Python não for exibida, tente baixar e instalar novamente.
Instale o AWS IoT Device SDK para Python
Para instalar o AWS IoT Device SDK para Python em seu computador
-
Instale a v2 do AWS IoT Device SDK para Python.
python3 -m pip install awsiotsdk
-
Clone o repositório AWS IoT Device SDK for Python no diretório aws-iot-device-sdk -python-v2 do seu diretório inicial. Esse procedimento se refere ao diretório base dos arquivos que você está instalando
home
.A localização real do
home
diretório depende do seu sistema operacional.nota
Se você estiver usando PowerShell o Windows em vez decmd.exe, use o comando a seguir.
echo $home
Para obter mais informações, consulte o repositório AWS IoT
Device SDK for GitHub Python
Preparar-se para executar os aplicativos de exemplo
Para preparar seu sistema para executar o aplicativo de exemplo
-
Crie o diretório
certs
. No diretóriocerts
, copie a chave privada, o certificado do dispositivo e os arquivos do certificado CA raiz salvos ao criar e registrar o objeto em Crie AWS IoT recursos. Os nomes de cada arquivo no diretório de destino devem corresponder àqueles na tabela.Os comandos na próxima seção pressupõem que seus arquivos de chave e certificado estão armazenados em seu dispositivo, conforme mostrado nesta tabela.
Configurar a política e executar o aplicativo de exemplo
Nesta seção, você configurará sua política e executará o script de exemplo pubsub.py
encontrado no diretório aws-iot-device-sdk-python-v2/samples
do AWS IoT Device SDK for Python. Este script mostra a maneira como seu dispositivo usa a biblioteca MQTT para publicar e assinar mensagens MQTT.
O aplicativo de exemplo pubsub.py
assina um tópico, test/topic
, publica 10 mensagens no tópico e exibe as mensagens à medida que elas são recebidas do agente de mensagens.
Para executar o script de exemplo pubsub.py
, você precisa das seguintes informações:
Parameter |
Onde encontrar o valor |
---|---|
your-iot-endpoint |
|
O your-iot-endpoint
valor tem um formato de:
, por exemplo,endpoint_id
-ats.iot.region
.amazonaws.com.rproxy.goskope.coma3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com
.
Antes de executar o script, certifique-se de que a política da suo objeto forneça permissões para o script de exemplo se conectar, assinar, publicar e receber.
Para encontrar e examinar o documento de política de um recurso de objeto
-
No console do AWS IoT
, na lista Objetos, localize o recurso de objeto que representa o seu dispositivo. -
Escolha o link Nome do recurso de objeto que representa o seu dispositivo para abrir a página de Detalhes do objeto.
-
Na página Detalhes do objeto, na guia Certificados, selecione o certificado anexado ao recurso de objeto. Deve haver apenas um certificado na lista. Se houver mais de um, selecione o certificado cujos arquivos estão instalados no seu dispositivo e que serão usados para se conectar ao AWS IoT Core.
Na página de detalhes do Certificado, na guia Políticas, selecione a política anexada ao certificado. Deve haver apenas uma. Caso haja mais de uma, repita a próxima etapa para cada uma delas para garantir que ao menos uma política conceda o acesso necessário.
-
Na página de visão geral da Política, localize o editor JSON e selecione Editar documento de política para revisar e editar o documento de política conforme necessário.
-
O JSON da política é exibido no exemplo a seguir. No
"Resource"
elemento,
substitua por seu Região da AWS e Conta da AWS em cada um dosregion:account
Resource
valores.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:
region:account
:topic/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account
:topicfilter/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:region:account
:client/test-*" ] } ] }
O script de exemplo:
-
Conecta-se ao AWS IoT Core para sua conta.
-
Assina o tópico de mensagens test/topic e exibe as mensagens recebidas sobre esse tópico.
-
Publica 10 mensagens no tópico test/topic.
-
Exibe uma saída semelhante à seguinte:
Connected! Subscribing to topic 'test/topic'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'test/topic': Hello World! [1] Received message from topic 'test/topic': b'"Hello World! [1]"' Publishing message to topic 'test/topic': Hello World! [2] Received message from topic 'test/topic': b'"Hello World! [2]"' Publishing message to topic 'test/topic': Hello World! [3] Received message from topic 'test/topic': b'"Hello World! [3]"' Publishing message to topic 'test/topic': Hello World! [4] Received message from topic 'test/topic': b'"Hello World! [4]"' Publishing message to topic 'test/topic': Hello World! [5] Received message from topic 'test/topic': b'"Hello World! [5]"' Publishing message to topic 'test/topic': Hello World! [6] Received message from topic 'test/topic': b'"Hello World! [6]"' Publishing message to topic 'test/topic': Hello World! [7] Received message from topic 'test/topic': b'"Hello World! [7]"' Publishing message to topic 'test/topic': Hello World! [8] Received message from topic 'test/topic': b'"Hello World! [8]"' Publishing message to topic 'test/topic': Hello World! [9] Received message from topic 'test/topic': b'"Hello World! [9]"' Publishing message to topic 'test/topic': Hello World! [10] Received message from topic 'test/topic': b'"Hello World! [10]"' 10 message(s) received. Disconnecting... Disconnected!
Se você estiver com problemas para executar a aplicação de exemplo, examine Solucionar problemas com a aplicação de amostra .
Também é possível adicionar o parâmetro --verbosity Debug
à linha de comando para que o aplicativo de exemplo exiba mensagens detalhadas sobre sua operação. Essas informações podem ajudar você a corrigir o problema.
Visualizar mensagens do aplicativo de exemplo no console do AWS IoT
É possível ver as mensagens do aplicativo de exemplo à medida que elas passam pelo agente de mensagens usando o cliente de teste MQTT no console do AWS IoT .
Para visualizar as mensagens MQTT publicadas pelo aplicativo de exemplo
-
Consulte Exibir mensagens MQTT com o cliente AWS IoT MQTT. Isso ajudará você a aprender a usar o cliente de teste MQTT no console do AWS IoT para visualizar as mensagens MQTT à medida que elas passam pelo agente de mensagens.
-
Abra o cliente de teste MQTT no console do AWS IoT .
-
Em Assinar um tópico, assine o tópico test/topic.
-
Na janela de linha de comando, execute o aplicativo de exemplo novamente e observe as mensagens no cliente MQTT no console do AWS IoT .
Para obter mais informações sobre o MQTT e como é AWS IoT Core compatível com o protocolo, consulte MQTT.
Execute o exemplo de assinatura compartilhada em Python
AWS IoT Core suporta assinaturas compartilhadas para MQTT 3 e MQTT 5. As assinaturas compartilhadas permitem que vários clientes compartilhem uma assinatura de um tópico e somente um cliente receberá mensagens publicadas nesse tópico usando uma distribuição randomizada. Para usar assinaturas compartilhadas, os clientes assinam o filtro de tópicos de uma assinatura compartilhada: $share/{ShareName}/{TopicFilter}
.
Para configurar a política e executar o exemplo de assinatura compartilhada
-
Para executar o exemplo de assinatura compartilhada, é preciso configurar a política da suo objeto conforme documentado em Assinatura compartilhada do MQTT 5
. -
Para executar o exemplo de assinatura compartilhada, execute os comandos a seguir.
nota
Você pode, opcionalmente, especificar um identificador de grupo com base nas suas necessidades ao executar o exemplo (por exemplo,
--group_identifier consumer
).python-sample
será o identificador de grupo padrão se você não especificar nenhum. -
A saída na linha de comando pode se assemelhar ao seguinte:
Publisher]: Lifecycle Connection Success [Publisher]: Connected Subscriber One]: Lifecycle Connection Success [Subscriber One]: Connected Subscriber Two]: Lifecycle Connection Success [Subscriber Two]: Connected [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [1]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [2]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [3]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [4]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [5]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [6]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [7]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [8]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [9]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [10]"' [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>] [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>] Publisher]: Lifecycle Disconnected [Publisher]: Lifecycle Stopped [Publisher]: Fully stopped Subscriber One]: Lifecycle Disconnected [Subscriber One]: Lifecycle Stopped [Subscriber One]: Fully stopped Subscriber Two]: Lifecycle Disconnected [Subscriber Two]: Lifecycle Stopped [Subscriber Two]: Fully stopped Complete!
-
Abra o cliente de teste MQTT no console do AWS IoT . Em Assinar um tópico, assine o tópico da assinatura compartilhada, como:
$share/consumer/test/topic
. Você pode especificar um identificador de grupo com base nas suas necessidades ao executar o exemplo (por exemplo,--group_identifier consumer
). Se você não especificar um identificador de grupo, o valor padrão serápython-sample
. Para obter mais informações, consulte o exemplo em Assinatura compartilhada do MQTT 5 em Pythone Assinaturas compartilhadas do Guia do desenvolvedor do AWS IoT Core . Na janela de linha de comando, execute o aplicativo de exemplo novamente e observe a distribuição de mensagens no cliente de teste MQTT do console do AWS IoT e na linha de comando.