Utilice su PC o Mac con Windows o Linux como dispositivo AWS IoT - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilice su PC o Mac con Windows o Linux como dispositivo AWS IoT

En este tutorial, configurará un ordenador personal para usarlo con AWS IoT. Estas instrucciones son compatibles con PC y Mac con Windows y Linux. Para lograr esto, necesita instalar cierto software en el ordenador. Si no quiere instalar software en su ordenador, puede consultar la sección Crear un dispositivo virtual con Amazon EC2 para saber cómo instalar todo el software en una máquina virtual.

Configurar su ordenador personal

Para completar este tutorial, necesita un PC con Windows o Linux o un Mac con conexión a internet.

Antes de continuar con el siguiente paso, confirme que puede abrir una ventana de la línea de comandos en el ordenador. Utilice cmd.exe en un PC con Windows. En un PC con Linux o un Mac, utilice Terminal.

Instalar Git, Python y el SDK de AWS IoT dispositivos para Python

En esta sección, instalará Python y el SDK de AWS IoT dispositivo para Python en su ordenador.

Instalar la versión más reciente de Git y Python

Para descargar e instalar Git y Python en su ordenador
  1. Compruebe si tiene Git instalado en el equipo. Introduzca este comando en la línea de comandos.

    git --version

    Si el comando muestra la versión de Git, significa que Git está instalado y puede continuar con el paso siguiente.

    Si el comando muestra un error, abra https://git-scm.com/download e instale Git en el ordenador.

  2. Compruebe si Python ya está instalado. Introduzca el comando en la línea de comandos.

    python -V
    nota

    Si este comando produce un error, Python was not found, puede deberse a que el sistema operativo llama al ejecutable de Python v3.x como Python3. En ese caso, sustituya todas las instancias de python por python3 y continúe con el resto de este tutorial.

    Si el comando muestra la versión de Python, significa que Python ya está instalado. Este tutorial requiere Python v3.7 o versiones posteriores.

  3. Si Python está instalado, puede omitir el resto de los pasos de esta sección. Si no es así, continúe.

  4. Abra https://www.python.org/downloads/ y descargue el instalador para su ordenador.

  5. Si la descarga no se inició automáticamente, ejecute el programa descargado para instalar Python.

  6. Compruebe la instalación de Python.

    python -V

    Confirme que el comando muestra la versión de Python. Si no se muestra la versión de Python, pruebe a descargar e instalar Python de nuevo.

Instalar el SDK AWS IoT del dispositivo para Python

Para instalar el SDK de AWS IoT dispositivo para Python en su ordenador
  1. Instale la versión 2 del SDK de AWS IoT dispositivos para Python.

    python3 -m pip install awsiotsdk
  2. Clona el repositorio AWS IoT Device SDK para Python en el directorio aws-iot-device-sdk -python-v2 de tu directorio principal. Este procedimiento hace referencia al directorio base de los archivos que vas a instalar como principal.

    La ubicación real del directorio principal depende del sistema operativo.

    Linux/macOS

    En macOS y Linux, el directorio principal es ~.

    cd ~ git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
    Windows

    En Windows, puede encontrar la ruta del directorio principal ejecutando este comando en la ventana cmd.

    echo %USERPROFILE% cd %USERPROFILE% git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
    nota

    Si usas Windows en lugar de PowerShell hacerlocmd.exe, usa el siguiente comando.

    echo $home

Para obtener más información, consulte el GitHub repositorio AWS IoT Device SDK para Python.

Preparación antes de ejecutar las aplicaciones de ejemplo

Para prepararse antes de ejecutar las aplicaciones de ejemplo
  • Cree el directorio certs. En el directorio certs, copie los archivos de clave privada, certificado de dispositivo y certificado de entidad de certificación raíz que guardó al crear y registrar el objeto en Crea AWS IoT recursos. Los nombres de cada archivo del directorio de destino deben coincidir con los de la tabla.

    Los comandos de la siguiente sección suponen que los archivos de clave y certificado se almacenan en el dispositivo como se muestra en esta tabla.

    Linux/macOS

    Ejecute este comando para crear el subdirectorio certs que utilizará al ejecutar las aplicaciones de ejemplo.

    mkdir ~/certs

    En el nuevo subdirectorio, copie los archivos a las rutas de archivo de destino que se muestran en la siguiente tabla.

    Nombres de archivo de certificado

    Archivos

    Ruta de archivo

    Clave privada

    ~/certs/private.pem.key

    Certificado de dispositivo

    ~/certs/device.pem.crt

    Certificado de entidad de certificación raíz

    ~/certs/Amazon-root-CA-1.pem

    Ejecute este comando para enumerar los archivos del directorio certs y compararlos con los que aparecen en la tabla.

    ls -l ~/certs
    Windows

    Ejecute este comando para crear el subdirectorio certs que utilizará al ejecutar las aplicaciones de ejemplo.

    mkdir %USERPROFILE%\certs

    En el nuevo subdirectorio, copie los archivos a las rutas de archivo de destino que se muestran en la siguiente tabla.

    Nombres de archivo de certificado

    Archivos

    Ruta de archivo

    Clave privada

    %USERPROFILE%\certs\private.pem.key

    Certificado de dispositivo

    %USERPROFILE%\certs\device.pem.crt

    Certificado de entidad de certificación raíz

    %USERPROFILE%\certs\Amazon-root-CA-1.pem

    Ejecute este comando para enumerar los archivos del directorio certs y compararlos con los que aparecen en la tabla.

    dir %USERPROFILE%\certs

Configurar la política y ejecutar la aplicación de ejemplo

En esta sección, configurará su política y ejecutará el script de ejemplo de pubsub.py que se encuentra en el directorio aws-iot-device-sdk-python-v2/samples del AWS IoT Device SDK para Python. Este script muestra cómo su dispositivo utiliza la biblioteca de MQTT para publicar y suscribirse a mensajes MQTT.

La aplicación de pubsub.py de ejemplo se suscribe a un tema,test/topic, publica 10 mensajes sobre ese tema y muestra los mensajes tal como los recibe del agente de mensajes.

Para ejecutar el script de ejemplo de pubsub.py, necesita la siguiente información:

Valores de los parámetros de la aplicación

Parámetro

Dónde encontrar el valor

your-iot-endpoint
  1. En la consola de AWS IoT, en el menú de la izquierda, seleccione Configuración.

  2. En la página Configuración, su punto de conexión aparece en la sección Punto de enlace de datos de dispositivo.

El your-iot-endpointvalor tiene el formato:endpoint_id-ats.iot.region.amazonaws.com, por ejemplo,a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.

Antes de ejecutar el script, asegúrese de que la política del objeto proporciona permisos para que el script de ejemplo pueda conectarse, suscribirse, publicar y recibir.

Para buscar y revisar el documento de política de un recurso de objeto
  1. En la consola de AWS IoT, en la lista Objetos, busque el recurso de objeto que represente a su dispositivo.

  2. Seleccione el enlace Nombre del recurso de objeto que representa a su dispositivo para abrir la página Detalles del objeto.

  3. En la página Detalles del objeto, en la pestaña Certificados, elija el certificado asociado al recurso de objeto. Solo debe haber un certificado en la lista. Si hay más de uno, elija el certificado cuyos archivos estén instalados en el dispositivo y con el que se vaya a conectar a AWS IoT Core.

    En la página Detalles del certificado, en la pestaña Políticas, elija la política asociada al certificado. Solo debe haber una. Si hay más de una, repita el paso siguiente para cada una de ellas con el fin de garantizar que al menos una política conceda el acceso requerido.

  4. En la página de descripción general de la política, busque el editor de JSON y seleccione Editar el documento de política para revisar y editar el documento de política según sea necesario.

  5. El JSON de la política se muestra en el siguiente ejemplo. En el "Resource" elemento, region:account sustitúyalo por el suyo Región de AWS y Cuenta de AWS en cada uno de los 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-*" ] } ] }
Linux/macOS
Para ejecutar el script de ejemplo en Linux/macOS
  1. En la ventana de la línea de comandos, navegue hasta el directorio ~/aws-iot-device-sdk-python-v2/samples/node/pub_sub que el SDK creó con estos comandos.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. En la ventana de la línea de comandos, reemplace your-iot-endpointcomo se indica y ejecute este comando.

    python3 pubsub.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key
Windows
Para ejecutar la aplicación de ejemplo en un PC con Windows
  1. En la ventana de la línea de comandos, navegue hasta el directorio %USERPROFILE%\aws-iot-device-sdk-python-v2\samples que el SDK creó e instale la aplicación de ejemplo con estos comandos.

    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
  2. En la ventana de la línea de comandos, your-iot-endpointsustituya como se indica y ejecute este comando.

    python3 pubsub.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key

El script de ejemplo:

  1. Se conecta a la AWS IoT Core de su cuenta.

  2. Se suscribe al tema de mensaje, test/topic, y muestra los mensajes que recibe sobre ese tema.

  3. Publica 10 mensajes sobre el tema test/topic.

  4. Muestra una salida similar a la siguiente:

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!

Si tiene problemas para ejecutar la aplicación de ejemplo, revise Solucionar problemas con la aplicación de ejemplo.

También puede agregar el parámetro --verbosity Debug a la línea de comandos para que la aplicación de ejemplo muestre mensajes detallados sobre lo que está haciendo. Esa información puede ayudarle a corregir el problema.

Consultar los mensajes de la aplicación de ejemplo en la consola de AWS IoT

Puede ver los mensajes de la aplicación de ejemplo a medida que pasan por el agente de mensajes mediante el cliente de prueba de MQTT de la consola de AWS IoT .

Para ver los mensajes MQTT publicados por la aplicación de ejemplo
  1. Consulte Vea los mensajes MQTT con el cliente AWS IoT MQTT. Esto le ayudará a aprender a utilizar el cliente de prueba de MQTT de la consola de AWS IoT para ver los mensajes MQTT a medida que pasan por el agente de mensajes.

  2. Abra el cliente de prueba de MQTT en la consola de AWS IoT .

  3. En Suscribirse a un tema, suscríbase al tema test/topic.

  4. En su ventana de línea de comandos, ejecute de nuevo la aplicación de ejemplo y observe los mensajes del cliente MQTT en la consola de AWS IoT .

    Linux/macOS
    cd ~/aws-iot-device-sdk-python-v2/samples python3 pubsub.py --topic test/topic --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
    Windows
    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples python3 pubsub.py --topic test/topic --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --endpoint your-iot-endpoint

Para obtener más información sobre MQTT y cómo AWS IoT Core es compatible con el protocolo, consulte MQTT.

Ejecutar el ejemplo de suscripción compartida en Python

AWS IoT Core admite suscripciones compartidas para MQTT 3 y MQTT 5. Las suscripciones compartidas permiten que varios clientes compartan una suscripción a un tema y solo un cliente recibirá los mensajes publicados sobre ese tema mediante una distribución aleatoria. Para usar las suscripciones compartidas, los clientes se suscriben al filtro de temas de una suscripción compartida: $share/{ShareName}/{TopicFilter}.

Para configurar la política y ejecutar el ejemplo de suscripción compartida
  1. Para ejecutar el ejemplo de suscripción compartida, debe configurar la política de su empresa tal y como se describe en la Suscripción compartida de MQTT 5.

  2. Para ejecutar el ejemplo de suscripción compartida, ejecute los siguientes comandos.

    Linux/macOS
    Para ejecutar el script de ejemplo en Linux/macOS
    1. En la ventana de la línea de comandos, navegue hasta el directorio ~/aws-iot-device-sdk-python-v2/samples que el SDK creó con estos comandos.

      cd ~/aws-iot-device-sdk-python-v2/samples
    2. En la ventana de la línea de comandos, your-iot-endpointsustituya como se indica y ejecute este comando.

      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --group_identifier consumer
    Windows
    Para ejecutar la aplicación de ejemplo en un PC con Windows
    1. En la ventana de la línea de comandos, navegue hasta el directorio %USERPROFILE%\aws-iot-device-sdk-python-v2\samples que el SDK creó e instale la aplicación de ejemplo con estos comandos.

      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
    2. En la ventana de la línea de comandos, your-iot-endpointsustituya como se indica y ejecute este comando.

      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --group_identifier consumer
    nota

    Si lo desea, puede especificar un identificador de grupo en función de sus necesidades al ejecutar la muestra (por ejemplo, --group_identifier consumer). Si no especifica uno, python-sample es el identificador de grupo predeterminado.

  3. El resultado de la línea de comandos puede ser similar al siguiente:

    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!
  4. Abra el cliente de prueba de MQTT en la consola de AWS IoT . En Suscribirse a un tema, suscríbase al tema de la suscripción compartida: $share/consumer/test/topic. Puede especificar un identificador de grupo en función de sus necesidades al ejecutar la muestra (por ejemplo, --group_identifier consumer). Si no especifica uno, el valor predeterminado es python-sample. Para obtener más información, consulte el Ejemplo de Python de suscripción compartida de MQTT 5 y Suscripciones compartidas en la Guía de AWS IoT Core para desarrolladores.

    En la ventana de la línea de comandos, ejecute de nuevo la aplicación de ejemplo y observe la distribución de mensajes en el cliente de prueba de MQTT de la consola de AWS IoT y de la línea de comandos.

    
                                    La página de salida de las suscripciones compartidas.