

Aviso de fin de soporte: el 7 de octubre de 2026, AWS suspenderemos el soporte para AWS IoT Greengrass Version 1. Después del 7 de octubre de 2026, ya no podrá acceder a los AWS IoT Greengrass V1 recursos. Para obtener más información, visita [Migrar desde AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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.

# Módulo 4: Interacción con los dispositivos cliente de un AWS IoT Greengrass grupo
<a name="module4"></a>

Este módulo muestra cómo los dispositivos IoT locales, denominados *dispositivos cliente* o *dispositivos*, pueden conectarse y comunicarse con un dispositivo AWS IoT Greengrass central. Los dispositivos cliente que se conectan a un AWS IoT Greengrass núcleo forman parte de un AWS IoT Greengrass grupo y pueden participar en el paradigma de la AWS IoT Greengrass programación. En este módulo, un dispositivo de cliente envía un mensaje "Hello World" a otro dispositivo de cliente del grupo de Greengrass.

![\[AWS IoT conectados a un AWS IoT Greengrass núcleo, que está conectado al dispositivo cliente #1 y al dispositivo cliente #2.\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/images/gg-get-started-065.5.png)


Antes de comenzar, ejecute el script de [configuración del dispositivo de Greengrass](quick-start.md) o complete el [módulo 1](module1.md) y el [módulo 2](module2.md). En este módulo se crean dos dispositivos de cliente simulados. No necesita otros componentes ni dispositivos.

Completar este módulo debería tomarle menos de 30 minutos.

**Topics**
+ [Crear dispositivos cliente en un AWS IoT Greengrass grupo](device-group.md)
+ [Configurar suscripciones](config-subs.md)
+ [Instale el SDK para dispositivos con AWS IoT para Python](IoT-SDK.md)
+ [Probar las comunicaciones](test-comms.md)

# Crear dispositivos cliente en un AWS IoT Greengrass grupo
<a name="device-group"></a>

En este paso, va a agregar dos dispositivos de cliente al grupo de Greengrass. Este proceso incluye el registro de los dispositivos como AWS IoT objetos y la configuración de certificados y claves para que puedan conectarse a ellos AWS IoT Greengrass.

1. <a name="console-gg-groups"></a>En el panel de navegación de la AWS IoT consola, en **Administrar**, expanda **los dispositivos Greengrass** y, a continuación, elija **Grupos (V1)**.

1. <a name="group-choose-target-group"></a>Seleccione el grupo de destino.

1. <a name="gg-group-add-device"></a>En la página de configuración del grupo, seleccione **Dispositivos de cliente** y, a continuación, seleccione **Asociar**.

1. <a name="gg-group-create-device"></a>En el modal **Asociar un dispositivo cliente a este grupo**, elija **Crear AWS IoT algo nuevo**.

   La página **Crear objetos** se abre en una pestaña nueva.

1. <a name="gg-group-create-single-thing"></a>En la página **Crear objetos**, elija **Crear un solo objeto**, y luego seleccione **Siguiente**.

1. En la página **Especificar propiedades del objeto**, registre este dispositivo cliente como **HelloWorld\$1Publisher** y, a continuación, seleccione **Siguiente**.

1. <a name="gg-group-create-device-configure-certificate"></a>En la página **Configurar el certificado del dispositivo**, seleccione **Siguiente**.

1. <a name="gg-group-create-device-attach-policy"></a>En la página **Adjuntar políticas al certificado**, realice uno de los siguientes procedimientos:
   + Seleccione una política existente que conceda los permisos que requieren los dispositivos clientes y, a continuación, seleccione **Crear objeto**.

     Se abre un modal en el que puede descargar los certificados y las claves que el dispositivo utiliza para conectarse al núcleo Nube de AWS y al núcleo.
   + Cree y adjunte una nueva política que conceda permisos al dispositivo cliente. Haga lo siguiente:

     1. Elija **Crear política**.

        La página **Create policy (Crear política)** se abre en una pestaña nueva.

     1. En la página **Create policy (Crear política)**, haga lo siguiente:

        1. En **Nombre de la política**, introduzca un nombre que describa la política, como **GreengrassV1ClientDevicePolicy**.

        1. En la pestaña **Declaraciones de política**, en **Documento de política**, seleccione **JSON**.

        1. Ingrese el siguiente documento de política. Esta política permite que el dispositivo cliente descubra los núcleos de Greengrass y comunique todos los temas MQTT. Para obtener información acerca de cómo restringir el acceso a esta política, consulte [Autenticación y autorización de dispositivos para AWS IoT Greengrass](device-auth.md).

------
#### [ JSON ]

****  

           ```
           {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
               {
                 "Effect": "Allow",
                 "Action": [
                   "iot:Publish",
                   "iot:Subscribe",
                   "iot:Connect",
                   "iot:Receive"
                 ],
                 "Resource": [
                   "*"
                 ]
               },
               {
                 "Effect": "Allow",
                 "Action": [
                   "greengrass:*"
                 ],
                 "Resource": [
                   "*"
                 ]
               }
             ]
           }
           ```

------

        1. Elija **Create** (Crear) para crear la política.

     1. Vuelva a la pestaña del navegador con la página **Adjuntar políticas al certificado** abierta. Haga lo siguiente:

        1. En la lista **Políticas**, seleccione la política que ha creado, como **GreengrassV1ClientDevicePolicy**.

           Si no se puede ver la política, seleccione el botón de actualizar.

        1. Elija **Crear objeto**.

           Se abre un modal en el que puede descargar los certificados y las claves que el dispositivo utiliza para conectarse al núcleo Nube de AWS y al núcleo.

1. <a name="gg-group-create-device-download-certs"></a>En el modal **Descargar certificados y claves**, descargue los certificados del dispositivo.
**importante**  
Descargue los recursos de seguridad antes de elegir **Listo**.

   Haga lo siguiente:

   1. Para el **Certificado del dispositivo**, seleccione **Descargar** para descargar el certificado del dispositivo.

   1. En **Archivo de clave pública**, seleccione **Descargar** para descargar la clave pública del certificado.

   1. En **Archivo de clave privada**, seleccione **Descargar** para descargar el archivo de clave privada del certificado.

   1. Revise la [Autenticación de servidor](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html) en la *Guía del desarrollador de AWS IoT * y seleccione el certificado de CA raíz adecuado. Le recomendamos que utilice los puntos de conexión de Amazon Trust Services (ATS) y los certificados de CA raíz de ATS. En **Certificados de CA raíz**, seleccione **Descargar** para obtener un certificado de CA raíz.

   1. Seleccione **Listo**.

   Tome nota del identificador del certificado que comparten los nombres de archivo del certificado y las claves del dispositivo. Lo necesitará más adelante.

1. Regrese a la pestaña del navegador con el modal **Asociar un dispositivo de cliente a este grupo** abierto. Haga lo siguiente:

   1. Para el **nombre del objeto AWS IoT **, seleccione el objeto **HelloWorld\$1Publisher** que creó.

      Si no se puede ver el objeto, seleccione el botón de actualizar.

   1. Elija **Asociar **.

1. Repita los pasos 3 a 10 para añadir un segundo dispositivo cliente al grupo.

   Asigne un nombre a este dispositivo cliente **HelloWorld\$1Subscriber**. Descargue los certificados y las claves del dispositivo del cliente en el equipo. De nuevo, anota el identificador del certificado que es común en los nombres de archivo del dispositivo HelloWorld \$1Subscriber.

   Ahora debería tener dos dispositivos cliente en su grupo de Greengrass:
   + HelloWorld\$1Publicador
   + HelloWorld\$1Suscriptor

1. Cree una carpeta en su ordenador para las credenciales de seguridad de estos dispositivos cliente. Copie los certificados y las claves en esta carpeta.

# Configurar suscripciones
<a name="config-subs"></a>

En este paso, habilita el dispositivo cliente HelloWorld \$1Publisher para enviar mensajes MQTT al dispositivo cliente HelloWorld \$1Subscriber.

1. En la página de configuración de grupo, elija la pestaña **Suscripciones** y, a continuación, elija **Agregar**.

1. En la página **Crear suscripción** haga lo siguiente para configurar la suscripción:

   1. **En **Tipo de fuente**, elija **Dispositivo cliente** y, a continuación, elija \$1Publisher. HelloWorld**

   1. En **Tipo de destino**, elija **Dispositivo cliente** y, a continuación, elija **HelloWorld\$1Subscriber**.

   1. En **Topic filter (Filtro de temas)**, escriba **hello/world/pubsub**.
**nota**  
Puede eliminar las suscripciones de los módulos anteriores. En la página **Suscripciones** del grupo, seleccione las suscripciones que desea eliminar y, a continuación, elija **Eliminar**.

   1. Elija **Crear una suscripción**.

1. <a name="enable-automatic-detection"></a>Asegúrese de que la detección automática está habilitada para que el núcleo de Greengrass pueda publicar una lista de sus direcciones IP. Los dispositivos de cliente usan esta información para descubrir el núcleo. Haga lo siguiente:

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

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

   1. En **Editar la configuración de IP detector**, seleccione **Detectar y anular automáticamente los puntos de conexión del agente MQTT** y, a continuación, seleccione **Guardar**.

1. Asegúrese de que el daemon de Greengrass esté en ejecución, tal y como se describe en [Implementación de configuraciones de nube en un dispositivo central](configs-core.md).

1. <a name="console-actions-deploy"></a>En la página de configuración de grupo, elija **Implementar**.

El estado de implementación aparece en la parte superior de la página, bajo el nombre del grupo. Para ver los detalles de la implementación, seleccione la pestaña **Implementaciones**.

# Instale el SDK para dispositivos con AWS IoT para Python
<a name="IoT-SDK"></a>

Los dispositivos cliente pueden usar Python SDK para dispositivos con AWS IoT para comunicarse con AWS IoT los dispositivos AWS IoT Greengrass principales (mediante el lenguaje de programación Python). Para obtener más información, incluidos los requisitos, consulte el SDK para dispositivos con AWS IoT [Léame](https://github.com/aws/aws-iot-device-sdk-python) de Python en GitHub.

En este paso, instalará el SDK y obtendrá la función de ejemplo de `basicDiscovery.py`, que utilizan los dispositivos de cliente simulados en el equipo.

1. Para instalar el SDK con todos los componentes necesarios en el equipo, elija el sistema operativo:

------
#### [ Windows ]

   1. Abra un [símbolo del sistema elevado](https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx) y ejecute el siguiente comando:

      ```
      python --version
      ```

      Si no devuelve información sobre la versión o si la versión es inferior a 2.7 para Python 2 o a 3.3 para Python 3, siga las instrucciones de la página [Downloading Python (Descargar Python)](https://wiki.python.org/moin/BeginnersGuide/Download) para instalar Python 2.7\$1 o Python 3.3\$1. Para obtener más información acerca de los periodos de mantenimiento, consulte [Using Python on Windows](https://docs.python.org/3.6/using/windows.html).

   1. Descargue [SDK para dispositivos con AWS IoT para Python](https://github.com/aws/aws-iot-device-sdk-python) como un archivo `zip` y extráigalo en la ubicación adecuada del equipo.

      Anote la ruta del archivo en la carpeta `aws-iot-device-sdk-python-master` extraída que contiene el archivo `setup.py`. En el siguiente paso, la ruta de este archivo se indica con*path-to-SDK-folder*.

   1. Ejecute el siguiente comando desde el símbolo del sistema elevado:

      ```
      cd path-to-SDK-folder
      python setup.py install
      ```

------
#### [ macOS ]

   1. Abra una ventana de terminal y ejecute el siguiente comando:

      ```
      python --version
      ```

      Si no devuelve información sobre la versión o si la versión es inferior a 2.7 para Python 2 o a 3.3 para Python 3, siga las instrucciones de la página [Downloading Python (Descargar Python)](https://wiki.python.org/moin/BeginnersGuide/Download) para instalar Python 2.7\$1 o Python 3.3\$1. Para obtener más información acerca de los periodos de mantenimiento, consulte [Using Python on a Macintosh](https://docs.python.org/3/using/mac.html).

   1. En la ventana de terminal, ejecute los siguientes comandos para determinar la versión de OpenSSL:

      ```
      python
      >>>import ssl
      >>>print ssl.OPENSSL_VERSION
      ```

      Anote el valor de versión de OpenSSL. 
**nota**  
Si está ejecutando Python 3, use **print(ssl.OPENSSL\$1VERSION)**.

      Para cerrar manualmente el shell de Python, ejecute el siguiente comando:

      ```
      >>>exit()
      ```

      Si la versión de OpenSSL es 1.0.1 o posterior, vaya al [paso c](#step-c-install-python-sdk). De lo contrario, siga estos pasos:

      1. En la ventana de terminal, ejecute el siguiente comando para determinar si el equipo está utilizando Simple Python Version Management:

        ```
        which pyenv
        ```

      Si devuelve una ruta de archivo, elija la pestaña **Con `pyenv`**. Si no devuelve nada, elija la pestaña **Sin `pyenv`**.

------
#### [ Using pyenv ]

      1. Consulte [Python Releases for Mac OS X](https://www.python.org/downloads/mac-osx/) (o similar) para informarse acerca de la última versión de Python estable. En el ejemplo siguiente, este valor se indica mediante*latest-Python-version*.

      1. En una ventana de terminal, ejecute los siguientes comandos:

         ```
         pyenv install latest-Python-version
         pyenv global latest-Python-version
         ```

         Por ejemplo, si la última versión de Python 2 es 2.7.14, estos comandos son:

         ```
         pyenv install 2.7.14
         pyenv global 2.7.14
         ```

      1. Cierre y, a continuación, vuelva a abrir la ventana del terminal y, a continuación, ejecute los comandos siguientes:

         ```
         python
         >>>import ssl
         >>>print ssl.OPENSSL_VERSION
         ```

         La versión de OpenSSL debe ser 1.0.1 o posterior. Si la versión es inferior a 1.0.1, entonces la actualización ha fallado. Compruebe el valor de la versión de Python utilizado en los comandos **pyenv global** y **pyenv install** e inténtelo de nuevo.

      1. Ejecute el siguiente comando para cerrar el shell de Python:

         ```
          exit()
         ```

------
#### [ Not using pyenv ]

      1. Desde una ventana de terminal, ejecute el siguiente comando para determinar si [brew](https://brew.sh/) está instalado.

         ```
         which brew
         ```

         Si no devuelve una ruta, instale `brew` de la siguiente manera:

         ```
         /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
         ```
**nota**  
Siga las instrucciones de instalación. La descarga de las herramientas de línea de comandos de Xcode pueden tardar algún tiempo.

      1. Ejecute los siguientes comandos :

         ```
         brew update
         brew install openssl
         brew install python@2
         ```

          SDK para dispositivos con AWS IoT Para Python, se requiere la versión 1.0.1 (o posterior) de OpenSSL compilada con el ejecutable de Python. El comando **brew install python** instala un ejecutable `python2` que cumple este requisito. El ejecutable `python2` se instala en el directorio `/usr/local/bin`, que debe ser parte de la variable de entorno `PATH`. Para confirmar, ejecute el siguiente comando:

         ```
         python2 --version
         ```

         Si se proporciona información de la versión de `python2`, vaya al siguiente paso. De lo contrario, agregue la siguiente línea a su perfil de shell para añadir de forma permanente la ruta `/usr/local/bin` a la variable de entorno `PATH`:

         ```
         export PATH="/usr/local/bin:$PATH"
         ```

         Por ejemplo, si está utilizando `.bash_profile` o aún no dispone de un perfil de shell, ejecute este comando desde una ventana de terminal:

         ```
         echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
         ```

         A continuación, [ejecute el comando source](https://en.wikipedia.org/wiki/Source_(command)) en el perfil de shell y compruebe si `python2 --version` proporciona información de la versión. Por ejemplo, si está utilizando `.bash_profile`, ejecute los siguientes comandos.

         ```
         source ~/.bash_profile
         python2 --version
         ```

         Debe devolver información de la versión de `python2`.

      1. Agregue la siguiente línea a su perfil de shell:

         ```
         alias python="python2"
         ```

         Por ejemplo, si está utilizando `.bash_profile` o aún no dispone de un perfil de shell, ejecute este comando:

         ```
         echo 'alias python="python2"' >> ~/.bash_profile
         ```

      1. A continuación, [ejecute el comando source](https://en.wikipedia.org/wiki/Source_(command)) en el perfil de shell. Por ejemplo, si está utilizando `.bash_profile`, ejecute el siguiente comando:

         ```
         source ~/.bash_profile
         ```

         Al invocar el comando **python** se ejecuta el ejecutable de Python que contiene la versión de OpenSSL necesaria (`python2`).

      1. Ejecute los siguientes comandos :

         ```
         python
          import ssl
          print ssl.OPENSSL_VERSION
         ```

         La versión de OpenSSL debe ser 1.0.1 o posterior.

      1. Para cerrar el shell de Python, ejecute siguiente comando:

         ```
          exit()
         ```

------

   1. <a name="step-c-install-python-sdk"></a>Ejecute los siguientes comandos para instalar el SDK para dispositivos con AWS IoT para Python:

      ```
      cd ~
      git clone https://github.com/aws/aws-iot-device-sdk-python.git
      cd aws-iot-device-sdk-python
      sudo python setup.py install
      ```

------
#### [ UNIX-like system ]

   1. En una ventana de terminal de , ejecute el siguiente comando:

      ```
      python --version
      ```

      Si no devuelve información sobre la versión o si la versión es inferior a 2.7 para Python 2 o a 3.3 para Python 3, siga las instrucciones de la página [Downloading Python (Descargar Python)](https://wiki.python.org/moin/BeginnersGuide/Download) para instalar Python 2.7\$1 o Python 3.3\$1. Para obtener más información acerca de los periodos de mantenimiento, consulte [Using Python on Unix platforms](https://docs.python.org/3.6/using/unix.html).

   1. En el terminal, ejecute los siguientes comandos para determinar la versión de OpenSSL:

      ```
      python
      >>>import ssl
      >>>print ssl.OPENSSL_VERSION
      ```

      Anote el valor de versión de OpenSSL. 
**nota**  
Si está ejecutando Python 3, use **print(ssl.OPENSSL\$1VERSION)**.

      Para cerrar manualmente el shell de Python, ejecute el siguiente comando:

      ```
       exit()
      ```

      Si la versión de OpenSSL es 1.0.1 o posterior, vaya al paso siguiente. De lo contrario, ejecute los comandos necesarios para actualizar OpenSSL según su distribución (por ejemplo, `sudo yum update openssl`, `sudo apt-get update`, etc.).

      Ejecute los siguientes comandos para determinar si la versión de OpenSSL es 1.0.1 o posterior:

      ```
      python
      >>>import ssl
      >>>print ssl.OPENSSL_VERSION
      >>>exit()
      ```

   1. Ejecute los siguientes comandos para instalar el SDK para dispositivos con AWS IoT para Python:

      ```
      cd ~
      git clone https://github.com/aws/aws-iot-device-sdk-python.git
      cd aws-iot-device-sdk-python
      sudo python setup.py install
      ```

------

1. Una vez instalado SDK para dispositivos con AWS IoT para Python, navegue hasta la `samples` carpeta y `greengrass` ábrala.

   Para este tutorial, copiará la función `basicDiscovery.py` de ejemplo, que utiliza los certificados y las claves que ha descargado en [Crear dispositivos cliente en un AWS IoT Greengrass grupo](device-group.md).

1. `basicDiscovery.py`Cópielo en la carpeta que contiene los certificados y las HelloWorld claves de los dispositivos HelloWorld \$1Publisher y \$1Subscriber.

# Probar las comunicaciones
<a name="test-comms"></a>

1. <a name="ping-device"></a>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
      ```

   1. En el equipo, ejecute el siguiente comando utilizando la dirección IP del dispositivo central. Puede utilizar Ctrl \$1 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.\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/images/gg-get-started-075.5.png)
**nota**  
Si no puedes hacer ping a una EC2 instancia que se está ejecutando AWS IoT Greengrass, asegúrate de que las reglas del grupo de seguridad entrante de la instancia permitan el tráfico ICMP para los mensajes de [solicitud de Echo](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping). Para obtener más información, consulta [Cómo añadir reglas a un grupo de seguridad](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule) en la *Guía del EC2 usuario de Amazon*.  
En los ordenadores con sistema operativo Windows, en la aplicación Firewall de Windows con seguridad avanzada, puede que también necesites activar una regla de entrada que permita las solicitudes de eco entrantes (por ejemplo, **compartir archivos e impresoras (Echo Request - ICMPv4 -In)**) o crear una.

1. Consigue tu terminal. AWS IoT 

   1. <a name="iot-settings"></a>En el panel de navegación de la [consola de AWS IoT](https://console.aws.amazon.com/iot/), seleccione **Configuración**.

   1. <a name="iot-settings-endpoint"></a>En **Punto de conexión de datos del dispositivo**, anote el valor del **punto de conexión**. Utilice este valor para reemplazar el *AWS\$1IOT\$1ENDPOINT* marcador de posición en los comandos en los pasos siguientes.
**nota**  
Asegúrese de que los [puntos de conexión se corresponden con su tipo de certificado](gg-core.md#certificate-endpoints).

1. En su ordenador (no en el dispositivo AWS IoT Greengrass principal), abra dos ventanas de línea de [comandos (terminal o línea](https://en.wikipedia.org/wiki/Command-line_interface) de comandos). Una ventana representa el dispositivo cliente HelloWorld \$1Publisher y la otra representa el dispositivo cliente HelloWorld \$1Subscriber.

   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**  
El cliente IDs utilizado para las conexiones MQTT debe coincidir con el nombre del dispositivo 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
   ```

1. En la ventana del dispositivo cliente HelloWorld \$1Publisher, ejecute los siguientes comandos.
   + *path-to-certs-folder*Sustitúyalo por la ruta a la carpeta que contiene los certificados, las claves y`basicDiscovery.py`.
   + *AWS\$1IOT\$1ENDPOINT*Sustitúyalo por tu punto final.
   + Sustituya las dos *publisherCertId* instancias por el identificador del certificado en el nombre de archivo de su dispositivo cliente HelloWorld \$1Publisher.

   ```
   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](#corp-network-manual-detection).  
![\[Captura de pantalla de la salida del editor.\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/images/gg-get-started-076.png)

1. Desde la ventana del dispositivo cliente HelloWorld \$1Subscriber, ejecute los siguientes comandos.
   + *path-to-certs-folder*Sustitúyalo por la ruta a la carpeta que contiene los certificados, las claves y`basicDiscovery.py`.
   + *AWS\$1IOT\$1ENDPOINT*Sustitúyalo por tu punto final.
   + Sustituya las dos *subscriberCertId* instancias por el ID del certificado en el nombre de archivo de su dispositivo cliente HelloWorld \$1Subscriber.

   ```
   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.\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/images/gg-get-started-077.png)

Cierre el HelloWorld\$1Publisher ventana para evitar que los mensajes se acumulen en el HelloWorld\$1Subscriber ventana.

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. <a name="console-gg-groups"></a>En el panel de navegación de la AWS IoT consola, en **Administrar**, expanda **los dispositivos Greengrass** y, a continuación, elija **Grupos (V1)**.

1. En **Grupos de Greengrass**, elija su grupo.

1. 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**.

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

   1. 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**.

1. 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**.

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

   1. 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`).

   1. Elija **Actualizar**.