Probar las comunicaciones - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.

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.

Probar las comunicaciones

  1. Asegúrese de que el ordenador y el dispositivo AWS IoT Greengrass principal estén conectados a Internet mediante la misma red.

    1. En el dispositivo AWS IoT Greengrass principal, ejecuta el siguiente comando para buscar su dirección IP.

      hostname -I
    2. En el equipo, ejecute el siguiente comando utilizando la dirección IP del dispositivo central. Puede utilizar Ctrl + C para detener el comando ping.

      ping IP-address

      Un resultado similar al siguiente indica que la comunicación entre el ordenador y el dispositivo AWS IoT Greengrass principal se ha realizado correctamente (pérdida de paquetes del 0%):

      Salida correcta del comando ping.
      nota

      Si no puede hacer ping a una instancia de EC2 en ejecución AWS IoT Greengrass, asegúrese de que las reglas del grupo de seguridad entrante de la instancia permitan el tráfico ICMP para los mensajes de solicitud de Echo. Para obtener más información, consulte Añadir reglas a un grupo de seguridad en la Guía del usuario de Amazon EC2.

      Es posible que, en los equipos host de Windows, en la aplicación Firewall de Windows con seguridad avanzada, también tenga que habilitar una regla de entrada que permita las solicitudes de eco entrantes (por ejemplo, Compartir archivos e impresoras [Solicitud de eco - ICMPv4-In]) o crear una.

  2. Obtenga su AWS IoT punto final.

    1. En el panel de navegación de la consola de AWS IoT, seleccione Configuración.

    2. En Punto de conexión de datos del dispositivo, anote el valor del punto de conexión. Este valor se usa para sustituir el marcador de posición AWS_IOT_ENDPOINT de los comandos en los pasos que se describen a continuación.

  3. En su ordenador (no en el dispositivo AWS IoT Greengrass principal), abra dos ventanas de línea de comandos (terminal o línea de comandos). Una ventana representa el dispositivo cliente HelloWorld _Publisher y la otra representa el dispositivo cliente HelloWorld _Subscriber.

    Tras la ejecución, basicDiscovery.py intenta recopilar información sobre la ubicación del AWS IoT Greengrass núcleo en sus puntos finales. Esta información se almacena una vez que el dispositivo del cliente ha detectado y establecido la conexión correctamente con el dispositivo central. De este modo, la mensajería y las operaciones que se realicen en el futuro se ejecutarán localmente (sin necesidad de tener conexión a Internet).

    nota

    Los ID de cliente utilizados para las conexiones MQTT deben coincidir con el nombre del dispositivo de cliente. El script basicDiscovery.py establece el ID del cliente para las conexiones MQTT con el nombre del objeto que especifique al ejecutar el script.

    Ejecute el siguiente comando desde la carpeta que contiene el archivo basicDiscovery.py de la información de uso detallada del script:

    python basicDiscovery.py --help
  4. Desde la ventana del dispositivo cliente HelloWorld _Publisher, ejecute los siguientes comandos.

    • Sustituya path-to-certs-folder por la ruta de la carpeta que contiene los certificados, las claves y basicDiscovery.py.

    • Sustituya AWS_IOT_ENDPOINT por el punto de enlace.

    • Sustituya las dos CertId instancias del editor por el identificador del certificado en el nombre de archivo de su dispositivo cliente HelloWorld _Publisher.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert publisherCertId-certificate.pem.crt --key publisherCertId-private.pem.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'

    El resultado debería ser similar al siguiente, que contiene entradas como Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    nota

    Si el script devuelve un mensaje error: unrecognized arguments, cambie las comillas simples por comillas dobles en los parámetros --message y --topic y vuelva a ejecutar el comando.

    Para resolver un problema de conexión, puede intentar usar la detección manual de IP.

    Captura de pantalla de la salida del editor.
  5. En la ventana del dispositivo cliente HelloWorld _Subscriber, ejecute los siguientes comandos.

    • Sustituya path-to-certs-folder por la ruta de la carpeta que contiene los certificados, las claves y basicDiscovery.py.

    • Sustituya AWS_IOT_ENDPOINT por el punto de enlace.

    • Sustituya las dos CertId instancias de suscriptor por el ID del certificado en el nombre de archivo de su dispositivo cliente HelloWorld _Subscriber.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert subscriberCertId-certificate.pem.crt --key subscriberCertId-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe

    El resultado debería ser similar al siguiente, que contiene entradas como Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    Captura de pantalla de la salida del suscriptor.

Cierre la ventana HelloWorld_Publisher para evitar que los mensajes se acumulen en la ventana HelloWorld_Subscriber.

Si se realizan pruebas en una red corporativa, la conexión con el dispositivo central podría verse afectada. Para evitarlo, puede especificar manualmente el punto de enlace. Esto garantiza que el basicDiscovery.py script se conecte a la dirección IP correcta del dispositivo AWS IoT Greengrass principal.

Para especificar manualmente el punto de enlace
  1. En el panel de navegación de la AWS IoT consola, en Administrar, expanda los dispositivos Greengrass y, a continuación, elija Grupos (V1).

  2. En Grupos de Greengrass, elija su grupo.

  3. Configure el núcleo para gestionar manualmente los puntos de conexión del agente de MQTT. Haga lo siguiente:

    1. En la página de configuración del grupo, elija la pestaña Funciones de Lambda.

    2. En Funciones de Lambda del sistema, elija Detector IP y, a continuación, seleccione Editar.

    3. En la Editar la configuración del detector IP, seleccione Administrar manualmente los puntos de conexión del agente MQTT y, a continuación, seleccione Guardar.

  4. Introduzca el punto de conexión del agente de MQTT para el núcleo. Haga lo siguiente:

    1. En Información general, seleccione Núcleo de Greengrass.

    2. En Puntos de conexión del agente de MQTT, seleccione Administrar puntos de conexión.

    3. Seleccione Añadir punto de conexión y asegúrese de que solo tiene un valor de punto de conexión. Este valor debe ser el punto final de la dirección IP del puerto 8883 del dispositivo AWS IoT Greengrass principal (por ejemplo,192.168.1.4).

    4. Elija Actualizar.