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 dispositivo para Python AWS IoT SDK
Nesta seção, você instalará o Python e o AWS IoT Device SDK for Python no 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 dispositivo SDK para Python
Para instalar o AWS IoT Device SDK for Python em seu computador
-
Instale a v2 do AWS IoT dispositivo 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 como
home
.A localização real do
home
o 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 AWS IoT
repositório Device SDK for Python GitHub
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. Esse script mostra como seu dispositivo usa a MQTT biblioteca para publicar e assinar MQTT mensagens.
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:
Parâmetro |
Onde encontrar o valor |
---|---|
your-iot-endpoint |
|
A ferramenta your-iot-endpoint
o 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, encontre o JSON editor e escolha Editar documento de política para revisar e editar o documento de política conforme necessário.
-
A política JSON é exibida 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 o aplicativo 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
Você pode ver as mensagens do aplicativo de amostra à medida que elas passam pelo agente de mensagens usando o cliente de MQTT teste no AWS IoT console.
Para ver as MQTT mensagens publicadas pelo aplicativo de amostra
-
Consulte Exibir MQTT mensagens com o AWS IoT MQTT cliente. Isso ajuda você a aprender como usar o cliente de MQTT teste no AWS IoT console para visualizar MQTT as mensagens à medida que elas passam pelo agente de mensagens.
-
Abra o cliente de MQTT teste no AWS IoT console.
-
Em Assinar um tópico, assine o tópico test/topic.
-
Na janela da linha de comando, execute o aplicativo de amostra novamente e observe as mensagens no MQTTcliente no AWS IoT console.
Para obter mais informações sobre MQTT e como AWS IoT Core oferece suporte ao 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, você deve configurar sua política conforme documentado em MQTT5 Assinatura compartilhada
. -
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 MQTT teste no AWS IoT console. 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 MQTT5 exemplos de assinatura compartilhada em Pythone assinaturas compartilhadas do Developer Guide.AWS IoT Core Na janela da linha de comando, execute o aplicativo de amostra novamente e observe a distribuição das mensagens no cliente de MQTT teste do AWS IoT console e da linha de comando.