

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.

# Cómo empezar con AWS IoT Core los tutoriales
<a name="iot-gs"></a>

Tanto si eres nuevo en el IoT como si tienes años de experiencia, estos recursos presentan los AWS IoT conceptos y términos que te ayudarán a empezar a utilizarlos AWS IoT.
+ **Mire** por dentro AWS IoT y por dentro sus componentes[¿Cómo AWS IoT funciona](aws-iot-how-it-works.md).
+ [**Obtenga más** información sobre AWS IoT](aws-iot-learn-more.md) en nuestra colección de materiales y vídeos de formación. Este tema también incluye una lista de los servicios a los que AWS IoT se puede conectar, enlaces a redes sociales y enlaces a las especificaciones de los protocolos de comunicación.
+ **[Conecta tu primer dispositivo a AWS IoT Core](#aws-iot-get-started)**.
+ **Desarrolle** sus soluciones de IoT mediante la [Connect to AWS IoT Core](connect-to-iot.md) y explore los [AWS IoT tutoriales](iot-tutorials.md).
+ **Pruebe y valide** sus dispositivos IoT para una comunicación segura y fiable mediante con [Asesor de dispositivos](device-advisor.md).
+ **Administre** la solución mediante servicios de administración de AWS IoT Core , como, por ejemplo, [Indexación de flotas](iot-indexing.md), [AWS IoT Empleos](iot-jobs.md) y [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html).
+ **Analice** los datos de sus dispositivos mediante los [AWS IoT servicios de datos](aws-iot-how-it-works.md#aws-iot-components-data).

## Conecta tu primer dispositivo a AWS IoT Core
<a name="aws-iot-get-started"></a>

AWS IoT Core los servicios conectan los dispositivos de IoT a AWS IoT servicios y otros AWS servicios. AWS IoT Core incluye la puerta de enlace del dispositivo y el intermediario de mensajes, que conectan y procesan los mensajes entre sus dispositivos de IoT y la nube.

A continuación, le indicamos cómo puede empezar con AWS IoT Core y AWS IoT.

![\[AWS IoT Core mapa turístico para empezar.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/iot-gs-tour-map.png)


En esta sección se presenta un recorrido por sus principales servicios y se proporcionan varios ejemplos de cómo conectar un dispositivo AWS IoT Core y pasar mensajes entre ellos. AWS IoT Core Pasar mensajes entre los dispositivos y la nube es fundamental para todas las soluciones de IoT y es la forma en que sus dispositivos pueden interactuar con otros AWS servicios.
+ 

**[Configurar Cuenta de AWS](setting-up.md)**  
Antes de poder utilizar AWS IoT los servicios, debe configurar un Cuenta de AWS. Si ya tiene un usuario de IAM Cuenta de AWS y uno para usted, puede usarlos y omitir este paso.
+ 

**[Pruebe el tutorial de conexión rápida](iot-quick-start.md)**  
Este tutorial es el mejor si quieres empezar rápidamente AWS IoT y ver cómo funciona en un escenario limitado. En este tutorial, necesitarás un dispositivo e instalarás algún AWS IoT software en él. Si no tiene un dispositivo IoT, puede usar un ordenador personal Windows, Linux o macOS como dispositivo para este tutorial. Si quieres intentarlo AWS IoT, pero no tienes un dispositivo, prueba la siguiente opción.
+ 

**[Probar el tutorial interactivo](interactive-demo.md)**  
Esta demostración es la mejor si quiere ver lo que puede hacer una AWS IoT solución básica sin conectar un dispositivo ni descargar ningún software. El tutorial interactivo presenta una solución simulada basada en AWS IoT Core servicios que ilustra cómo interactúan.
+ 

**[Explore AWS IoT Core los servicios con un tutorial práctico](iot-gs-first-thing.md)**  
Este tutorial es ideal para los desarrolladores que quieren empezar con él, ya AWS IoT que pueden seguir explorando otras AWS IoT Core funciones, como el motor de reglas y las sombras. Este tutorial sigue un proceso similar al tutorial de conexión rápida, pero proporciona más detalles sobre cada paso para permitir una transición más fluida a los tutoriales más avanzados.
+ 

**[Vea los mensajes MQTT con el cliente AWS IoT MQTT](view-mqtt-messages.md)**  
Aprenda a usar el cliente de pruebas MQTT para ver sus primeros mensajes MQTT de publicación de dispositivo en AWS IoT. El cliente de pruebas MQTT es una herramienta útil para supervisar y solucionar problemas de las conexiones de los dispositivos.

**nota**  
Si desea probar más de uno de estos tutoriales de iniciación o repetir el mismo tutorial, deberá eliminar el objeto que creó en un tutorial anterior antes de empezar otro. Si no elimina el objeto de un tutorial anterior, tendrá que usar un nombre diferente para los siguientes tutoriales. Esto se debe a que el nombre del objeto debe ser exclusivo de su cuenta y su Región de AWS.

Para obtener más información al respecto AWS IoT Core, consulte [¿Qué es? AWS IoT Core](what-is-aws-iot.md)

# Configurar Cuenta de AWS
<a name="setting-up"></a>

Antes de usarlo AWS IoT Core por primera vez, complete las siguientes tareas:

**Topics**
+ [Inscríbase en una Cuenta de AWS](#sign-up-for-aws)
+ [Creación de un usuario con acceso administrativo](#create-an-admin)
+ [Abre la AWS IoT consola](#iot-console-signin)

## Inscríbase en una Cuenta de AWS
<a name="sign-up-for-aws"></a>

Si no tiene uno Cuenta de AWS, complete los siguientes pasos para crearlo.

**Para suscribirte a una Cuenta de AWS**

1. Abrir [https://portal.aws.amazon.com/billing/registro](https://portal.aws.amazon.com/billing/signup).

1. Siga las instrucciones que se le indiquen.

   Parte del procedimiento de registro consiste en recibir una llamada telefónica o mensaje de texto e indicar un código de verificación en el teclado del teléfono.

   Cuando te registras en un Cuenta de AWS, *Usuario raíz de la cuenta de AWS*se crea un. El usuario raíz tendrá acceso a todos los Servicios de AWS y recursos de esa cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar [Tareas que requieren acceso de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS te envía un correo electrónico de confirmación una vez finalizado el proceso de registro. En cualquier momento, puede ver la actividad de su cuenta actual y administrarla accediendo a [https://aws.amazon.com/](https://aws.amazon.com/)y seleccionando **Mi cuenta**.

## Creación de un usuario con acceso administrativo
<a name="create-an-admin"></a>

Después de crear un usuario administrativo Cuenta de AWS, asegúrelo Usuario raíz de la cuenta de AWS AWS IAM Identity Center, habilite y cree un usuario administrativo para no usar el usuario root en las tareas diarias.

**Proteja su Usuario raíz de la cuenta de AWS**

1.  Inicie sesión [Consola de administración de AWS](https://console.aws.amazon.com/)como propietario de la cuenta seleccionando el **usuario root** e introduciendo su dirección de Cuenta de AWS correo electrónico. En la siguiente página, escriba su contraseña.

   Para obtener ayuda para iniciar sesión con el usuario raíz, consulte [Iniciar sesión como usuario raíz](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) en la *Guía del usuario de AWS Sign-In *.

1. Active la autenticación multifactor (MFA) para el usuario raíz.

   Para obtener instrucciones, consulte [Habilitar un dispositivo MFA virtual para el usuario Cuenta de AWS raíz (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) en la Guía del usuario de *IAM*.

**Creación de un usuario con acceso administrativo**

1. Activar IAM Identity Center.

   Consulte las instrucciones en [Activar AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. En IAM Identity Center, conceda acceso administrativo a un usuario.

   Para ver un tutorial sobre su uso Directorio de IAM Identity Center como fuente de identidad, consulte [Configurar el acceso de los usuarios con la configuración predeterminada Directorio de IAM Identity Center en la](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) Guía del *AWS IAM Identity Center usuario*.

**Inicio de sesión como usuario con acceso de administrador**
+ Para iniciar sesión con el usuario de IAM Identity Center, use la URL de inicio de sesión que se envió a la dirección de correo electrónico cuando creó el usuario de IAM Identity Center.

  Para obtener ayuda para iniciar sesión con un usuario del Centro de identidades de IAM, consulte [Iniciar sesión en el portal de AWS acceso](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) en la *Guía del AWS Sign-In usuario*.

**Concesión de acceso a usuarios adicionales**

1. En IAM Identity Center, cree un conjunto de permisos que siga la práctica recomendada de aplicar permisos de privilegios mínimos.

   Para conocer las instrucciones, consulte [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) en la *Guía del usuario de AWS IAM Identity Center *.

1. Asigne usuarios a un grupo y, a continuación, asigne el acceso de inicio de sesión único al grupo.

   Para conocer las instrucciones, consulte [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) en la *Guía del usuario de AWS IAM Identity Center *.
+ [Abre la AWS IoT consola](#iot-console-signin)

Si ya tiene un usuario Cuenta de AWS y un usuario para usted, puede usarlos y pasar a[Abre la AWS IoT consola](#iot-console-signin).

## Abre la AWS IoT consola
<a name="iot-console-signin"></a>

La mayoría de los temas orientados a la consola de esta sección comienzan desde la AWS IoT consola. Si aún no has iniciado sesión en la tuya Cuenta de AWS, inicia sesión, abre la [AWS IoT consola](https://console.aws.amazon.com//iot/home) y continúa con la siguiente sección para empezar a usarla. AWS IoT

# Tutorial interactivo
<a name="interactive-demo"></a>

El tutorial interactivo muestra los componentes de una solución de IoT sencilla basada en AWS IoT. El tutorial muestra cómo los dispositivos de IoT interactúan con AWS IoT Core los servicios. En este tema se proporciona una vista previa del tutorial AWS IoT Core interactivo.

**nota**  
Las imágenes de la consola incluyen animaciones que no aparecen en las imágenes de este tutorial.

Para ejecutar la demostración, primero debe [Configurar Cuenta de AWS](setting-up.md). Sin embargo, el tutorial no requiere AWS IoT recursos, software adicional ni programación.

Calcule dedicar unos 5-10 minutos a esta demostración. Si le dedica 10 minutos, le dará más tiempo para comprender cada uno de los pasos.

**Para ejecutar el tutorial AWS IoT Core interactivo**

1. Abra la [página de AWS IoT inicio](https://console.aws.amazon.com//iot/home#/home) en la AWS IoT consola.

   En la **página de inicio de AWS IoT **, en el panel de la ventana **Recursos de aprendizaje**, seleccione **Iniciar tutorial**.  
![\[Esta es la página de inicio de la AWS IoT consola.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-home-demo.png)

1. En la página **Tutorial de la consola de AWS IoT **, revise las secciones del tutorial y seleccione **Comenzar sección** cuando esté listo para continuar.

**En las siguientes secciones se describe cómo el **tutorial de la AWS IoT consola** presenta estas AWS IoT Core funciones:**
+ [Conexión de dispositivos IoT](#interactive-demo-part1)
+ [Guardar el estado del dispositivo desconectado](#interactive-demo-part2)
+ [Enrutamiento de los datos del dispositivo a los servicios](#interactive-demo-part3)

## Conexión de dispositivos IoT
<a name="interactive-demo-part1"></a>

Descubra cómo se comunican los dispositivos de IoT con AWS IoT Core.

![\[Este es el primer paso del tutorial AWS IoT interactivo.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-demo-step-1.png)


La animación de este paso muestra cómo dos dispositivos, el dispositivo de control a la izquierda y una lámpara inteligente doméstica a la derecha, se conectan y se comunican con AWS IoT Core en la nube. La animación muestra los dispositivos comunicándose con los mensajes que reciben AWS IoT Core y reaccionando ante ellos.

Para obtener más información sobre cómo conectar dispositivos a AWS IoT Core, consulte[Connect to AWS IoT Core](connect-to-iot.md).

## Guardar el estado del dispositivo desconectado
<a name="interactive-demo-part2"></a>

Obtenga información sobre cómo AWS IoT Core guardar el estado del dispositivo mientras un dispositivo o una aplicación están desconectados.

![\[Este es el segundo paso del tutorial AWS IoT interactivo.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-demo-step-2.png)


La animación de este paso muestra cómo el servicio Device Shadow AWS IoT Core guarda la información de estado del dispositivo para el dispositivo de control y la lámpara inteligente. Mientras la lámpara inteligente está apagada, Device Shadow guarda los comandos del dispositivo de control.

Cuando la lámpara inteligente se vuelve a conectar AWS IoT Core, recupera esos comandos. Cuando el dispositivo de control está desconectado, Device Shadow guarda la información de estado de la lámpara inteligente. Cuando el dispositivo de control se vuelve a conectar, recupera el estado actual de la lámpara inteligente para actualizar su estado.

Si desea más información sobre Device Shadows, consulte [AWS IoT Servicio Device Shadow](iot-device-shadows.md).

## Enrutamiento de los datos del dispositivo a los servicios
<a name="interactive-demo-part3"></a>

Obtén información sobre cómo AWS IoT Core envía el estado del dispositivo a otros AWS servicios.

![\[Este es el tercer paso del tutorial AWS IoT interactivo.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-demo-step-3.png)


La animación de este paso muestra cómo se AWS IoT Core envían los datos desde los dispositivos a otros AWS servicios mediante el uso de AWS IoT reglas. AWS IoT las reglas se suscriben a mensajes específicos de los dispositivos, interpretan los datos de esos mensajes y envían los datos interpretados a otros servicios. En este ejemplo, una AWS IoT regla interpreta los datos de un sensor de movimiento y envía comandos a un Device Shadow, que luego los envía a la bombilla inteligente. Como en el ejemplo anterior, Device Shadow almacena la información de estado del dispositivo de control.

Para obtener más información sobre AWS IoT las reglas, consulte[Reglas para AWS IoT](iot-rules.md).

# Pruebe el tutorial de conexión AWS IoT Core rápida
<a name="iot-quick-start"></a>

En este tutorial, creará su primer objeto, conectará un dispositivo a él y verá cómo envía mensajes MQTT.

Calcule dedicar unos 15-20 minutos a este tutorial.

Este tutorial es el mejor para las personas que quieren empezar rápidamente AWS IoT a ver cómo funciona en un escenario limitado. Si está buscando un ejemplo que le ayude a explorar más características y servicios, pruebe [Explora AWS IoT Core en tutoriales prácticos](iot-gs-first-thing.md).

En este tutorial, descargará y ejecutará software en un dispositivo que se conecta a un *recurso de cosa* AWS IoT Core como parte de una solución de IoT muy pequeña. El dispositivo puede ser un dispositivo IoT, como una Raspberry Pi, o también puede ser un ordenador que ejecute Linux, OS y OSX, o Windows. Si quieres conectar un dispositivo WAN (WAN) de largo alcance a una LoRa WAN AWS IoT, consulta el tutorial [>Conexión de dispositivos y puertas de enlace a AWS IoT Core](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/lorawan-getting-started.html) una WAN. LoRa

Si el dispositivo es compatible con un navegador que pueda ejecutar la [consola de AWS IoT](https://console.aws.amazon.com//iot/home), le recomendamos que realice este tutorial en ese dispositivo.

**nota**  
Si su dispositivo no tiene un navegador compatible, realice este tutorial en un ordenador. Cuando el procedimiento le pida que descargue el archivo, descárguelo al ordenador y, a continuación, transfiera el archivo descargado al dispositivo mediante Secure Copy (SCP) o un proceso similar.

El tutorial requiere que su dispositivo IoT se comunique con el puerto 8443 del punto de conexión de datos de dispositivo de la Cuenta de AWS. Para comprobar si puede acceder a ese puerto, pruebe los procedimientos que se indican en [Prueba de la conectividad con el punto de conexión de datos del dispositivo](iot-quick-start-test-connection.md).

## Paso 1. Comenzar el tutorial
<a name="iot-quick-start-connect"></a>

Si es posible, realice este procedimiento en el dispositivo; de lo contrario, prepárese para transferir un archivo al dispositivo más adelante durante el procedimiento.

Para comenzar el tutorial, inicie sesión en la [consola de AWS IoT](https://console.aws.amazon.com//iot/home). En la página de inicio de la AWS IoT consola, a la izquierda, selecciona **Conectar** y, a continuación, selecciona **Conectar un dispositivo**.

![\[En esta página de inicio de la AWS IoT consola se muestra cómo conectar un dispositivo.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-quick-connect.PNG)


## Paso 2. Crear un objeto
<a name="iot-quick-start-configure"></a>

1. En la sección **Preparar su dispositivo**, siga las instrucciones que aparecen en pantalla para preparar el dispositivo y conectarlo a AWS IoT.  
![\[Cómo preparar el dispositivo en la AWS IoT consola.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-prepare-device.png)

1. En la sección **Registrar y proteger su dispositivo**, seleccione **Crear un nuevo objeto** o **Elegir un objeto existente**. En el campo **Nombre del objeto**, introduzca el nombre del objeto. El nombre del objeto utilizado en este ejemplo es **TutorialTestThing**.
**importante**  
Compruebe el nombre del objeto antes de continuar.  
El nombre de un objeto no se puede cambiar una vez creado el objeto. Si desea cambiar el nombre de un objeto, debe crear un objeto nuevo con el nombre correcto y eliminar después el objeto con el nombre incorrecto.

   En la sección **Configuraciones adicionales**, personalice aún más su recurso de objeto utilizando las configuraciones opcionales que se muestran.

   Tras asignar un nombre al objeto y seleccionar cualquier configuración adicional, elija **Siguiente**.  
![\[Usa AWS IoT la consola para registrar y proteger tu dispositivo.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-register-and-secure-your-device.png)

1. En la sección **Elegir plataforma y SDK**, elige la plataforma y el idioma del SDK del AWS IoT dispositivo que quieres usar. En este ejemplo, se utiliza la Linux/OSX plataforma y el SDK de Python. Asegúrese de tener python3 y pip3 instalados en el dispositivo de destino antes de continuar con el siguiente paso.
**nota**  
Asegúrese de consultar la lista de requisitos de software necesarios para el SDK que haya elegido en la parte inferior de la página de la consola.  
Debe tener el software necesario instalado en el ordenador de destino para poder continuar con el siguiente paso.

   Tras elegir el idioma del SDK de la plataforma y el dispositivo, seleccione **Siguiente**.  
![\[Usa AWS IoT la consola para elegir la plataforma y el SDK.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-choose-platform-and-SDK.png)

## Paso 3. Descargar archivos en su dispositivo
<a name="iot-quick-start-name"></a>

Esta página aparece después de AWS IoT crear el kit de conexión, que incluye los siguientes archivos y recursos que requiere el dispositivo:
+ Los archivos de certificado del objeto que se utilizan para autenticar el dispositivo.
+ Un recurso de política para autorizar la interacción entre el objeto y AWS IoT.
+ El script para descargar el SDK del AWS dispositivo y ejecutar el programa de muestra en el dispositivo

1. Cuando esté listo para continuar, elija el botón **Descargar el kit de conexión para** con el fin de descargar el kit de conexión para la plataforma que eligió anteriormente.  
![\[Esta es la página de la AWS IoT consola para descargar el archivo de certificado.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_1.png)

1. Si está ejecutando este procedimiento en su dispositivo, guarde el archivo del kit de conexión en un directorio desde el que pueda ejecutar los comandos de la línea de comandos.

   Si no va a ejecutar este procedimiento en el dispositivo, guarde el archivo del kit de conexión en un directorio local y, a continuación, transfiéralo al dispositivo.

1. En la sección **Descomprima el kit de conexión en su dispositivo**, introduzca **unzip connect\$1device\$1package.zip** en el directorio en el que se encuentran los archivos del kit de conexión.

   Si utilizas una ventana de PowerShell comandos de Windows y el **unzip** comando no funciona, **unzip** **expand-archive** sustitúyelo por la línea de comandos y vuelve a intentarlo.

1. Una vez que tenga el archivo del kit de conexión en el dispositivo, continúe con el tutorial seleccionando **Siguiente**.  
![\[AWS IoT página de descarga del archivo de certificado de consola tras descargar el kit de conexión.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_2.png)

## Paso 4. Ejecutar la muestra
<a name="iot-quick-start-install-run"></a>

Realice este procedimiento en una ventana de comandos o del terminal en el dispositivo mientras sigue las instrucciones que aparecen en la consola. Los comandos que ve en la consola son para el sistema operativo que ha elegido en [Paso 2. Crear un objeto](#iot-quick-start-configure). Los que se muestran aquí son para los sistemas Linux/OSX operativos.

1. En una terminal o ventana de comandos de su dispositivo, en el directorio que contiene el archivo del kit de conexión, lleve a cabo los pasos que se muestran en la AWS IoT consola.  
![\[AWS IoT página de inicio rápido, instalación y ejecución de la consola.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-run-connection-kit.png)

1. Tras introducir el comando del **paso 2** en la consola, debería aparecer un resultado similar al siguiente en la ventana de comandos o del terminal del dispositivo. Este resultado proviene de los mensajes que el programa envía y recibe en AWS IoT Core.  
![\[AWS IoT ejemplo de inicio rápido de la consola, salida del programa.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-connect-console-output-python_updated.png)

   Mientras se ejecuta el programa de ejemplo, también aparecerá el mensaje de prueba `Hello World!`. El mensaje de prueba aparece en la ventana de comandos o del terminal del dispositivo.
**nota**  
Para obtener más información sobre la suscripción y publicación de temas, consulte el código de ejemplo del SDK que haya elegido.

1. Para volver a ejecutar el programa de ejemplo, puede repetir los comandos del **paso 2** en la consola de este procedimiento.

1. (Opcional) Si desea ver los mensajes de su cliente de IoT en la [AWS IoT consola](https://console.aws.amazon.com//iot/home), abra el [cliente de prueba de MQTT](https://console.aws.amazon.com//iot/home#/test) en la página de **pruebas** de la AWS IoT consola. Si ha elegido el SDK de Python, en el **cliente de prueba MQTT**, en **Filtro de temas**, introduzca el tema, por ejemplo **sdk/test/*python***, para suscribirse a los mensajes de su dispositivo. Los filtros de temas distinguen entre mayúsculas y minúsculas y dependen del lenguaje de programación del SDK que haya elegido en el **paso 1**. Para obtener más información sobre la suscripción y publicación de temas, consulte el código de ejemplo del SDK que haya elegido.

1. Tras suscribirse al tema de prueba, ejecute **./start.sh** en el dispositivo. Para obtener más información, consulte [Vea los mensajes MQTT con el cliente AWS IoT MQTT](view-mqtt-messages.md).

   Tras la ejecución de **./start.sh**, aparecen mensajes en el cliente MQTT similares a los siguientes:

   ```
   {
     "message": "Hello World!" [1]
   }
   ```

   El número de `sequence` incluido en `[]` aumenta en uno cada vez que se recibe un mensaje `Hello World!` nuevo y se detiene al finalizar el programa.

1. Para terminar el tutorial y ver un resumen, en la AWS IoT consola, selecciona **Continuar**.   
![\[AWS IoT página de inicio rápido y finalización de la consola.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-connect-complete_updated1.png)

1. Ahora aparecerá un resumen del tutorial de conexión AWS IoT rápida.  
![\[AWS IoT página de resumen de inicio rápido de la consola.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/aws-iot-learn-device-is-connected.png)

## Paso 5. Seguir explorando
<a name="iot-quick-start-test"></a>

Estas son algunas ideas para explorar AWS IoT más a fondo después de completar el inicio rápido.
+ 

**[Consultar mensajes MQTT en el cliente de prueba MQTT](https://console.aws.amazon.com/iot/home#/test)**  
En la [consola de AWS IoT](https://console.aws.amazon.com//iot/home), puede abrir el [cliente de MQTT](https://console.aws.amazon.com//iot/home#/test) en la página **Prueba** de la consola de AWS IoT . En el **cliente de prueba de MQTT**, suscríbase a **\$1**. A continuación, ejecute el programa **./start.sh** en su dispositivo tal y como se describe en el paso anterior. Para obtener más información, consulte [Vea los mensajes MQTT con el cliente AWS IoT MQTT](view-mqtt-messages.md).
+ 

**Realizar pruebas en sus dispositivos con [Device Advisor](https://docs.aws.amazon.com//iot/latest/developerguide/device-advisor.html)**  
Utilice Device Advisor para comprobar si sus dispositivos pueden conectarse e interactuar con ellos de forma segura y fiable AWS IoT.
+ 

**[Tutorial interactivo](interactive-demo.md)**  
Para iniciar el tutorial interactivo, en la página de **aprendizaje** de la AWS IoT consola, en el icono **Vea cómo AWS IoT funciona**, seleccione **Iniciar el tutorial**.
+ 

**[Prepararse para explorar más tutoriales](iot-gs-first-thing.md)**  
Este inicio rápido solo le ofrece una muestra de AWS IoT. Si desea explorar AWS IoT más a fondo y conocer las características que la convierten en una potente plataforma de soluciones de IoT, comience a preparar su plataforma de desarrollo de la siguiente manera[Explora AWS IoT Core en tutoriales prácticos](iot-gs-first-thing.md).

# Prueba de la conectividad con el punto de conexión de datos del dispositivo
<a name="iot-quick-start-test-connection"></a>

En este tema se describe cómo probar la conexión de un dispositivo con el *punto de conexión de datos de dispositivo* de su cuenta, el punto de conexión que sus dispositivos de IoT utilizan para conectarse a AWS IoT.

Realice estos procedimientos en el dispositivo que quiera probar o mediante una sesión de terminal SSH conectada al dispositivo que desee.

**Topics**
+ [Encontrar el punto de conexión de datos de su dispositivo](#iot-quick-start-test-connection-endpoint)
+ [Probar la conexión rápidamente](#iot-quick-start-test-connection-ping)
+ [Obtener la aplicación para probar la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-app)
+ [Pruebe la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-test)

## Encontrar el punto de conexión de datos de su dispositivo
<a name="iot-quick-start-test-connection-endpoint"></a>

Este procedimiento explica cómo encontrar el punto de conexión de datos del dispositivo en la [consola de AWS IoT](https://console.aws.amazon.com//iot/home) para probar la conexión con el dispositivo de IoT.

**Para encontrar el punto de conexión de datos de su dispositivo**

1. En la [consola de AWS IoT](https://console.aws.amazon.com//iot/home), en la sección **Conectar**, vaya a **Configuraciones de dominio**.

1. En la página **Configuraciones de dominio**, vaya al contenedor **Configuraciones de dominio** y copie **Nombre de dominio**. El valor de su punto final es exclusivo para Cuenta de AWS usted y es similar al de este ejemplo:`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`.

1. 

   Guarde el punto de conexión de datos del dispositivo para utilizarlo en los procedimientos siguientes.

## Probar la conexión rápidamente
<a name="iot-quick-start-test-connection-ping"></a>

Este procedimiento comprueba la conectividad general con el punto de conexión de datos del dispositivo, pero no comprueba el puerto específico que utilizarán los dispositivos. Esta prueba utiliza un programa común y suele ser suficiente para averiguar si los dispositivos se pueden conectar a AWS IoT.

Si quiere probar la conectividad con el puerto específico que utilizarán sus dispositivos, omita este procedimiento y continúe con [Obtener la aplicación para probar la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-app).

**Para probar rápidamente el punto de conexión de datos del dispositivo**

1. En una ventana del terminal o de la línea de comandos del dispositivo, sustituya el punto de conexión de datos del dispositivo de ejemplo (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) por el punto de conexión de datos del dispositivo de su cuenta y, a continuación, introduzca este comando.

------
#### [ Linux ]

   ```
   ping -c 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

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

   ```
   ping -n 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

------

1. Si `ping` muestra una salida similar a la siguiente, significa que se ha conectado correctamente al punto de conexión de datos del dispositivo. Si bien no se comunicó AWS IoT directamente, encontró el servidor y es probable que AWS IoT esté disponible a través de este punto final.

   ```
   PING a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xx.xxx.xxx) 56(84) bytes of data.
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=1 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=2 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=3 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=4 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=5 ttl=231 time=127 ms
   ```

   Si le satisface este resultado, puede detener las pruebas aquí.

   Si desea probar la conectividad con el puerto específico que utiliza AWS IoT, continúe con [Obtener la aplicación para probar la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-app).

1. Si `ping` no da un resultado correcto, compruebe el valor del punto de conexión para asegurarse de es el correcto y compruebe la conexión del dispositivo a internet.

## Obtener la aplicación para probar la conexión con el punto de conexión de datos del dispositivo y el puerto
<a name="iot-quick-start-test-connection-app"></a>

Se puede realizar una prueba de conectividad más exhaustiva utilizando `nmap`. Este procedimiento comprueba si `nmap` está instalado en el dispositivo.

**Para comprobar si `nmap` está en el dispositivo**

1. En una ventana del terminal o de la línea de comandos del dispositivo que desee probar, introduzca este comando para comprobar si `nmap` está instalado.

   ```
   nmap --version
   ```

1. Si se incluye un resultado similar al siguiente, `nmap` está instalado y puede continuar con [Pruebe la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-test).

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

1. Si no se incluye una respuesta similar a la del paso anterior, deberá instalar `nmap` en el dispositivo. Seleccione el procedimiento correspondiente al sistema operativo de su dispositivo.

------
#### [ Linux ]

Este procedimiento requiere tener permiso para instalar software en el equipo.

**Para instalar nmap en su ordenador Linux**

1. En una ventana del terminal o de la línea de comandos de su dispositivo, introduzca el comando que corresponda a la versión de Linux que esté ejecutando.

   1. Debian o Ubuntu:

      ```
      sudo apt install nmap
      ```

   1. CentOS o RHEL:

      ```
      sudo yum install nmap
      ```

1. Pruebe la instalación con este comando:

   ```
   nmap --version
   ```

1. Si se incluye un resultado similar al siguiente, `nmap` está instalado y puede continuar con [Pruebe la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-test).

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

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

Este procedimiento requiere tener permiso para instalar software en el equipo.

**Para instalar nmap en su ordenador macOS**

1. En un navegador, abra [https://nmap.org/download\$1macosx](https://nmap.org/download#macosx) y descargue el instalador **estable más reciente**.

   Cuando se te pida, selecciona **Abrir con DiskImageInstaller**.

1. En la ventana de instalación, mueva el paquete a la carpeta **Aplicaciones**.

1. En el **Finder**, localice el paquete `nmap-xxxx-mpkg` en la carpeta **Aplicaciones**. Haga **Ctrl-click** en el paquete correspondiente y seleccione **Abrir** para abrirlo.

1. Revise el cuadro de diálogo de seguridad. Si está todo preparado para instalar **nmap**, seleccione **Abrir** para instalar **nmap**.

1. En **Terminal**, pruebe la instalación con este comando:

   ```
   nmap --version
   ```

1. Si se incluye un resultado similar al siguiente, `nmap` está instalado y puede continuar con [Pruebe la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-test).

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: x86_64-apple-darwin17.7.0
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 libz-1.2.11 nmap-libpcre-7.6 nmap-libpcap-1.9.1 nmap-libdnet-1.12 ipv6 Compiled without:
   Available nsock engines: kqueue poll select
   ```

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

Este procedimiento requiere tener permiso para instalar software en el equipo.

**Para instalar nmap en su ordenador Windows**

1. En un navegador, abra [https://nmap.org/download\$1windows](https://nmap.org/download#windows) y descargue la **última versión estable** del programa de configuración.

   Si se le solicita, seleccione **Guardar archivo**. Una vez descargado el archivo, ábralo desde la carpeta de descargas.

1.  Cuando el archivo de configuración termine de descargarse, abra el archivo **nmap-xxxx-setup.exe** descargado para instalar la aplicación. 

1.  Acepte la configuración predeterminada a medida que se instala el programa.

   No necesita la aplicación Npcap para esta prueba. Puede deseleccionar esa opción si no quiere instalarla.

1. En **Command**, pruebe la instalación con este comando:

   ```
   nmap --version
   ```

1. Si se incluye un resultado similar al siguiente, `nmap` está instalado y puede continuar con [Pruebe la conexión con el punto de conexión de datos del dispositivo y el puerto](#iot-quick-start-test-connection-test).

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: i686-pc-windows-windows
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 nmap-libz-1.2.11 nmap-libpcre-7.6 Npcap-1.50 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: iocp poll select
   ```

------

## Pruebe la conexión con el punto de conexión de datos del dispositivo y el puerto
<a name="iot-quick-start-test-connection-test"></a>

Este procedimiento comprueba la conexión del dispositivo de IoT con el punto de conexión de datos del dispositivo con el puerto seleccionado.

**Para probar la conexión con el punto de conexión de datos del dispositivo y el puerto**

1. En una ventana del terminal o de la línea de comandos del dispositivo, sustituya el punto de conexión de datos del dispositivo de ejemplo (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) por el punto de conexión de datos del dispositivo de su cuenta y, a continuación, introduzca este comando.

   ```
   nmap -p 8443 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

1. Si `nmap` muestra un resultado similar al siguiente, `nmap` ha podido conectarse correctamente al punto de conexión de datos de su dispositivo en el puerto seleccionado.

   ```
   Starting Nmap 7.92 ( https://nmap.org ) at 2022-02-18 16:23 Pacific Standard Time
   Nmap scan report for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xxx.147.160)
   Host is up (0.036s latency).
   Other addresses for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (not scanned): xx.xxx.134.144 xx.xxx.55.139 xx.xxx.110.235 xx.xxx.174.233 xx.xxx.74.65 xx.xxx.122.179 xx.xxx.127.126
   rDNS record for xx.xxx.147.160: ec2-EXAMPLE-160.eu-west-1.compute.amazonaws.com
   
   PORT     STATE SERVICE
   8443/tcp open  https-alt
   MAC Address: 00:11:22:33:44:55 (Cimsys)
   
   Nmap done: 1 IP address (1 host up) scanned in 0.91 seconds
   ```

1. Si `nmap` no da un resultado correcto, compruebe el valor del punto de conexión para asegurarse de es el correcto y compruebe la conexión del dispositivo a internet.

Puede probar otros puertos del punto de conexión de datos del dispositivo, como el puerto 443 o el puerto HTTPS principal, sustituyendo el puerto utilizado en el paso 1, `8443`, por el puerto que deseas probar.

# Explora AWS IoT Core en tutoriales prácticos
<a name="iot-gs-first-thing"></a>

En este tutorial, instalará el software y creará los AWS IoT recursos necesarios para conectar un dispositivo al que AWS IoT Core pueda enviar y recibir mensajes MQTT. AWS IoT Core Verás los mensajes en el cliente MQTT de la AWS IoT consola.

Calcule dedicar unos 20-30 minutos a este tutorial. Si utiliza un dispositivo IoT o una Raspberry Pi, este tutorial puede tardar más si, por ejemplo, necesita instalar el sistema operativo y configurar el dispositivo.

![\[Cómo empezar con la AWS IoT Core página.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/iot-getting-started.png)


Este tutorial es ideal para los desarrolladores que quieran empezar con él para AWS IoT Core poder seguir explorando funciones más avanzadas, como el [motor de reglas](https://docs.aws.amazon.com//iot/latest/developerguide/iot-rules.html) y [las sombras](https://docs.aws.amazon.com//iot/latest/developerguide/iot-device-shadows.html). Este tutorial lo prepara para seguir aprendiendo sobre otros AWS servicios AWS IoT Core y cómo interactúa con ellos, ya que explica los pasos con más detalle que en [el tutorial de inicio rápido](iot-quick-start.md). Si lo que busca es una experiencia rápida de *Hello World*, pruebe el tutorial [Pruebe el tutorial de conexión AWS IoT Core rápida](iot-quick-start.md).

Tras configurar tu AWS IoT consola Cuenta de AWS y consola, seguirás estos pasos para ver cómo conectar un dispositivo y hacer que envíe mensajes a AWS IoT Coreél.

**Siguientes pasos**
+ [Elegir qué dispositivo se adapta mejor a sus necesidades](#choosing-a-gs-system)
+ [Crea AWS IoT recursos](create-iot-resources.md) si no va a crear un dispositivo virtual con Amazon EC2
+ [Configuración del dispositivo](configure-device.md)
+ [Vea los mensajes MQTT con el cliente AWS IoT MQTT](view-mqtt-messages.md)

Para obtener más información al respecto AWS IoT Core, consulta [¿Qué es AWS IoT Core](what-is-aws-iot.md)?

## ¿Qué dispositivo se adapta mejor a sus necesidades?
<a name="choosing-a-gs-system"></a>

Si no sabe con certeza qué opción elegir, utilice la siguiente lista de ventajas y desventajas de cada opción para decidir cuál es la mejor para usted.


| Opción | Esta podría ser una buena opción si: | Esta podría no ser una buena opción si: | 
| --- | --- | --- | 
| [Crear un dispositivo virtual con Amazon EC2](creating-a-virtual-thing.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/iot-gs-first-thing.html)  | 
| [Utilice su PC o Mac con Windows o Linux como dispositivo AWS IoT](using-laptop-as-device.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/iot-gs-first-thing.html)  | 
| [Conexión de una Raspberry Pi u otro dispositivo](connecting-to-existing-device.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/iot-gs-first-thing.html)  | 

# Crea AWS IoT recursos
<a name="create-iot-resources"></a>

En este tutorial, crearás los AWS IoT recursos que un dispositivo necesita para conectarse AWS IoT Core e intercambiar mensajes.

![\[Crea una página de AWS IoT recursos.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/iot-gs-create-resources.png)


1. Cree un documento AWS IoT de política que autorice a su dispositivo a interactuar con AWS IoT los servicios.

1. Cree un objeto con su certificado de dispositivo X.509 AWS IoT y, a continuación, adjunte el documento de política. El objeto es la representación virtual de su dispositivo en el AWS IoT registro. El certificado autentica el dispositivo y AWS IoT Core el documento de política lo autoriza a interactuar con él. AWS IoT
**nota**  
Si tiene previsto [Crear un dispositivo virtual con Amazon EC2](creating-a-virtual-thing.md), puede saltarse esta página y continuar en [Configuración del dispositivo](configure-device.md). Creará estos recursos cuando cree su objeto virtual.

En este tutorial se utiliza la AWS IoT consola para crear los AWS IoT recursos. Si el dispositivo es compatible con un navegador web, puede ser más fácil ejecutar este procedimiento en el navegador web del dispositivo, ya que podrá descargar los archivos de certificado directamente al dispositivo. Si ejecuta este procedimiento en otro ordenador, tendrá que copiar los archivos de certificado en su dispositivo para que la aplicación de ejemplo pueda utilizarlos.

## Cree una AWS IoT política
<a name="create-iot-policy"></a>

Los dispositivos utilizan un certificado X.509 para autenticarse. AWS IoT Core El certificado tiene AWS IoT políticas adjuntas. Estas políticas determinan qué operaciones de AWS IoT , como suscribirse o publicar en temas de MQTT, puede realizar el dispositivo. El dispositivo presenta su certificado cuando se conecta y envía mensajes a AWS IoT Core.

Siga los pasos de creación de una política que permita al dispositivo realizar las operaciones de AWS IoT necesarias para ejecutar el programa de ejemplo. Debe crear la política de AWS IoT antes de poder asociarla al certificado del dispositivo que creará más tarde.

**Para crear una AWS IoT política**

1. En la [consola de AWS IoT](https://console.aws.amazon.com//iot/home), en el menú de la izquierda, seleccione **Seguridad** y, a continuación, **Políticas**.

1. En la página **Aún no tiene ninguna política**, elija **Crear una política**.

   Si su cuenta ya tiene políticas, seleccione **Crear política**.

1. En la página **Crear una política**:

   1. En la sección **Propiedades de la política**, en el campo **Nombre de la política**, introduzca un nombre para la política (por ejemplo, **My\$1Iot\$1Policy**). No utilice información personalmente identificable en sus nombres de política.

   1. En la sección **Documento de política**, cree las declaraciones de política que conceden o deniegan el acceso de los recursos a las operaciones de AWS IoT Core . Para crear una declaración de política que permita a todos los clientes realizar ****iot:Connect****, siga estos pasos:
      + En el campo **Efecto de la política**, seleccione **Permitir**. Esto permite a todos los clientes que tienen esta política asociada a su certificado realizar la acción que se indica en el campo **Acción de la política**.
      + En el campo **Acción de la política**, elija una acción de política como ****iot:Connect****. Las acciones de política son las acciones para las que el dispositivo necesita permiso cuando ejecuta el programa de ejemplo del SDK del dispositivo.
      + En el campo **Recurso de la política**, introduzca un nombre de recurso de Amazon (ARN) de un recurso o un **\$1**. un **\$1** para seleccionar cualquier cliente (dispositivo).

      Para crear las declaraciones de política para ****iot:Receive****, ****iot:Publish**** y ****iot:Subscribe****, elija **Agregar nueva declaración** y repita los pasos.  
![\[Página para crear una política.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/gs-create-policy-new.png)
**nota**  
En este inicio rápido, el carácter comodín (\$1) se utiliza por motivos de simplicidad. Para aumentar la seguridad, debe restringir qué clientes (dispositivos) pueden conectarse y publicar mensajes especificando un ARN de cliente en lugar del carácter comodín como recurso. El cliente ARNs sigue este formato:`arn:aws:iot:your-region:your-aws-account:client/my-client-id`.   
Sin embargo, primero debe crear el recurso (como un dispositivo cliente o una sombra de objeto) antes de poder asignar su ARN a una política. Para obtener más información, consulte [Recursos de acción de AWS IoT Core](https://docs.aws.amazon.com//iot/latest/developerguide/iot-action-resources.html).

1. Una vez que haya especificado la información de su política, elija **Crear**.

Para obtener más información, consulte [¿Cómo AWS IoT funciona con IAM](security_iam_service-with-iam.md).

## Crear un objeto
<a name="create-aws-thing"></a>

Los dispositivos conectados AWS IoT Core están representados *por objetos* en el AWS IoT registro. Una *cosa* representa un dispositivo específico o una entidad lógica. Puede ser un dispositivo físico o un sensor (por ejemplo, una bombilla o un interruptor en la pared). También puede ser una entidad lógica, como una instancia de una aplicación o entidad física que no se conecta AWS IoT, pero que está relacionada con otros dispositivos que sí lo hacen (por ejemplo, un automóvil que tiene sensores de motor o un panel de control).

**Para crear algo en la AWS IoT consola**

1. En la [consola de AWS IoT](https://console.aws.amazon.com/iot/home), en el menú de la izquierda, seleccione **Todos los dispositivos** y, a continuación, **Cosas**.

1. En la página **Cosas** seleccione **Crear cosas**.

1. En la página **Crear cosas**, elija **Crear una sola cosa** y luego seleccione **Siguiente**.

1. En la página **Especificar propiedades de cosa** en **Nombre de la cosa**, introduzca un nombre para la cosa, por ejemplo, **MyIotThing**.

   Elija los nombres de cosa con cuidado, ya que no podrá cambiarlos más adelante.

   Para cambiar el nombre de una cosa, debe crear otra nueva, asignarle el nuevo nombre y eliminar después la anterior.
**nota**  
No utilice información personal identificable en el nombre de la cosa. El nombre de la cosa puede aparecer en comunicaciones e informes no cifrados.

1. Mantenga el resto de los campos de esta página vacíos. Elija **Siguiente**.

1. En la página **Configurar el certificado del dispositivo: *opcional***, seleccione **Generar automáticamente un nuevo certificado (opción recomendada)**. Elija **Siguiente**.

1. En la página **Asociar políticas al certificado *(opcional)***, seleccione la política que creó en la sección anterior. En esa sección, la política se denominó **My\$1Iot\$1Policy**. Elija **Crear objeto**.

1. En la página **Descargar certificados y claves**:

   1. Descargue cada uno de los archivos de certificados y claves, y guárdelos para más adelante. Deberá instalar estos archivos en el dispositivo.

      Cuando guarde los archivos de certificado, asígneles los nombres de la siguiente tabla. Estos son los nombres de archivo que se utilizan en los ejemplos posteriores.  
**Nombres de archivo de certificado**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/create-iot-resources.html)

   1. Para descargar el archivo de entidad de certificación raíz de estos archivos, elija el enlace de **descarga** del archivo de certificado de entidad de certificación raíz que corresponda al tipo de punto de conexión de datos y conjunto de cifrado que esté utilizando. En este tutorial, seleccione **Descargar** a la derecha de **RSA 2048 bit key: Amazon Root CA 1** y descargue el archivo de certificado **RSA 2048 bit key: Amazon Root CA 1**.
**importante**  
Debe guardar los archivos de certificado antes de salir de esta página. Tras salir de esta página en la consola, ya no tendrá acceso a los archivos de certificado.  
Si olvidó descargar los archivos de certificado creados en este paso, debe salir de la pantalla de la consola, ir a la lista de objetos de la consola, eliminar el objeto creado y, a continuación, volver a realizar este procedimiento desde el principio.

   1.  Seleccione **Listo**.

Tras completar este procedimiento, debería ver el objeto nuevo en la lista de objetos.

# Configuración del dispositivo
<a name="configure-device"></a>

En esta sección se describe cómo configurar el dispositivo para conectarse a AWS IoT Core. Si quiere empezar con un dispositivo AWS IoT Core pero aún no lo tiene, puede crear un dispositivo virtual mediante Amazon EC2 o puede utilizar su PC con Windows o Mac como dispositivo de IoT.

Seleccione la mejor opción de dispositivo para AWS IoT Core probarla. Por supuesto, puede probarlos todos, pero siempre de uno en uno. Si no sabe con certeza cuál es la mejor opción de dispositivo para usted, consulte cómo elegir [la mejor opción de dispositivo](iot-gs-first-thing.md#choosing-a-gs-system) y, después, vuelva a esta página.

**Opciones de dispositivos**
+ [Crear un dispositivo virtual con Amazon EC2](creating-a-virtual-thing.md)
+ [Utilice su PC o Mac con Windows o Linux como dispositivo AWS IoT](using-laptop-as-device.md)
+ [Conexión de una Raspberry Pi u otro dispositivo](connecting-to-existing-device.md)

# Crear un dispositivo virtual con Amazon EC2
<a name="creating-a-virtual-thing"></a>

En este tutorial, creará una instancia de Amazon EC2 para que sirva como dispositivo virtual en la nube.

Para completar este tutorial, necesitas un Cuenta de AWS. Si no la tiene, complete los pasos que se describen en [Configurar Cuenta de AWS](setting-up.md) antes de continuar.

**Topics**
+ [Configurar una instancia de Amazon EC2](#set-up-ec2)
+ [Instale Git, Node.js y configure AWS CLI](#install-git-node)
+ [Cree AWS IoT recursos para su dispositivo virtual](#ec2-create-certificate)
+ [Instale el SDK del AWS IoT dispositivo para JavaScript](#ec2-sdk)
+ [Ejecutar la aplicación de ejemplo](#ec2-run-app)
+ [Ve los mensajes de la aplicación de ejemplo en la AWS IoT consola](#ec2-view-msg)

## Configurar una instancia de Amazon EC2
<a name="set-up-ec2"></a>

Los siguientes pasos le muestran cómo crear una instancia de Amazon EC2 que actuará como su dispositivo virtual en lugar de un dispositivo físico.

Si es la primera vez que crea una instancia de Amazon EC2, puede que las instrucciones de Introducción [a las instancias de Amazon EC2 Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/EC2_GetStarted.html) le resulten más útiles.

**Lanzamiento de una instancia de**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el menú de la consola de la izquierda, expanda la sección **Instancias** y elija **Instancias**. En el panel **Instancias**, seleccione **Lanzar instancias** a la derecha para ver una lista de configuraciones básicas. 

1. En la sección **Nombre y etiquetas**, introduzca un nombre para la instancia y, si lo desea, agregue etiquetas.

1. En la sección **Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)**, elija una plantilla de AMI para la instancia, como la de *Amazon Linux 2 AMI (HVM)*. Observe que estas AMI están marcadas como "Free tier eligible" (Apta para el nivel gratuito).

1. En la sección **Tipo de instancia**, puede seleccionar la configuración de hardware de su instancia. Seleccione el tipo `t2.micro`, que es la opción predeterminada. Observe que este tipo de instancia es apta para la capa gratuita.

1. En la sección **Par de claves (inicio de sesión)**, elija un nombre de par de claves de la lista desplegable o elija **Crear un nuevo par de claves** para crear uno nuevo. Al crear un nuevo par de claves, asegúrese de descargar el archivo de clave privada y guardarlo en un lugar seguro, ya que es la única forma de descargarlo y guardarlo. Deberá proporcionar el nombre de su par de claves al lanzar una instancia, y la clave privada correspondiente cada vez que se conecte a dicha instancia.
**aviso**  
No seleccione la opción **Continuar sin un par de claves**. Si lanza la instancia sin un par de claves, no podrá conectarse a ella.

1. En la sección **Configuración de redes** y en la sección **Configurar el almacenamiento**, puede conservar la configuración predeterminada. Cuando todo esté preparado, elija **Lanzar instancias**.

1. Verá una página de confirmación que indicará que la instancia se está lanzando. Elija **View instances** para cerrar la página de confirmación y volver a la consola.

1. Puede ver el estado del lanzamiento en la pantalla **Instancias**. La instancia tarda poco tiempo en lanzarse. Al lanzar una instancia, su estado inicial es `pending`. Una vez iniciada la instancia, el estado cambia a `running` y recibe un nombre del DNS público. (Si la columna **DNS público (IPv4)** está oculta, seleccione **Mostrar u ocultar columnas** (el icono con forma de engranaje) en la esquina superior derecha de la página y, a continuación, seleccione DNS **público** (). IPv4

1. Puede que transcurran unos minutos hasta que la instancia esté lista para conectarse a ella. Compruebe que la instancia haya superado las comprobaciones de estado; puede ver esta información en la columna **Status Checks**.

   Cuando la nueva instancia haya superado las comprobaciones de estado, continúe con el siguiente procedimiento y conéctese a ella.

**Para conectarse a la instancia**

Puede conectarse a una instancia mediante el cliente basado en navegador seleccionando la instancia en la consola de Amazon EC2 y eligiendo conectarse mediante Amazon EC2 Instance Connect. Instance Connect gestiona los permisos y proporciona una conexión exitosa.

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el menú de la izquierda, seleccione **Instancias**.

1. Seleccione la instancia y elija **Connect (Conectar)**.

1. Elija **Amazon EC2 Instance Connect **, **Conectar**.

Ahora debería ver una ventana **Amazon EC2 Instance Connect** conectada a su nueva instancia de Amazon EC2.

## Instale Git, Node.js y configure AWS CLI
<a name="install-git-node"></a>

En esta sección, instalará Git y Node.js en su instancia de Linux.

**Para instalar Git**

1. En la ventana **Amazon EC2 Instance Connect**, actualice la instancia mediante el siguiente comando.

   ```
   sudo yum update -y
   ```

1. En la ventana **Amazon EC2 Instance Connect**, instale Git mediante el siguiente comando.

   ```
   sudo yum install git -y
   ```

1. Para comprobar si Git está instalado y cuál es su versión actual, ejecute el siguiente comando:

   ```
   git --version
   ```

**Para instalar Node.js**

1. En la ventana **Amazon EC2 Instance Connect**, instale el administrador de versiones de nodos (nvm) mediante el siguiente comando.

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
   ```

   Utilizaremos nvm para instalar Node.js, ya que nvm puede instalar varias versiones de Node.js y permitirle alternar entre ellas. 

1. En la ventana **Amazon EC2 Instance Connect**, active nvm mediante este comando.

   ```
   . ~/.nvm/nvm.sh
   ```

1. En la ventana **Amazon EC2 Instance Connect**, utilice nvm para instalar la última versión de Node.js mediante este comando.

   ```
   nvm install 16
   ```
**nota**  
Esto instala la versión de LTS más reciente de Node.js.

   Si instala Node.js también instalará el administrador de paquetes de nodos (npm) para poder instalar módulos adicionales según sea necesario.

1. En la ventana **Amazon EC2 Instance Connect**, compruebe que Node.js está instalado y se ejecuta correctamente mediante este comando.

   ```
   node -e "console.log('Running Node.js ' + process.version)"
   ```

    Este tutorial requiere la versión Node v10.0 o posterior. Para obtener más información, consulte [Tutorial: Configuración de Node.js en una instancia de Amazon EC2](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html).

**Para configurar AWS CLI**

La instancia de Amazon EC2 viene precargada con la AWS CLI. Sin embargo, debe completar su AWS CLI perfil. Para obtener más información acerca de cómo configurar la CLI, consulte [Configuración de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

1. En el ejemplo siguiente se muestran los valores de ejemplo. Reemplácelos con valores propios. Puede encontrar estos valores en la [consola de AWS , en la información de su cuenta, en la sección **Credenciales de seguridad**](https://console.aws.amazon.com//iam/home#/security_credentials).

   En la ventana **Amazon EC2 Instance Connect**, escriba este comando:

   ```
   aws configure
   ```

   A continuación, introduzca los valores de su cuenta en las instrucciones que se muestran.

   ```
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-west-2
   Default output format [None]: json
   ```

1. Puede probar la AWS CLI configuración con este comando:

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Si AWS CLI está configurada correctamente, el comando debería devolver una dirección de punto final suya Cuenta de AWS.

## Cree AWS IoT recursos para su dispositivo virtual
<a name="ec2-create-certificate"></a>

En esta sección se describe cómo usarlo AWS CLI para crear el objeto objeto y sus archivos de certificado directamente en el dispositivo virtual. Esto se hace directamente en el dispositivo para evitar las posibles complicaciones que podrían surgir al copiarlos al dispositivo desde otro ordenador. En esta sección, creará los siguientes recursos para su dispositivo virtual:
+ Un objeto objeto en el que representar su dispositivo virtual AWS IoT.
+ Un certificado para autenticar su dispositivo virtual.
+ Un documento de política para autorizar al dispositivo virtual a conectarse a AWS IoT, y para publicar, recibir y suscribirse a mensajes.

**Para crear un objeto « AWS IoT cosa» en tu instancia de Linux**

Los dispositivos a los que AWS IoT se conecta se representan mediante *objetos tipo cosa* en el AWS IoT registro. Una *cosa* representa un dispositivo específico o una entidad lógica. En este caso, el *objeto* representará su dispositivo virtual, esta instancia de Amazon EC2.

1. En la ventana **Amazon EC2 Instance Connect**, ejecute el comando que se incluye a continuación para crear su objeto.

   ```
   aws iot create-thing --thing-name "MyIotThing"
   ```

1. El resultado JSON debe tener el siguiente aspecto:

   ```
   {
       "thingArn": "arn:aws:iot:your-region:your-aws-account:thing/MyIotThing", 
       "thingName": "MyIotThing",
       "thingId": "6cf922a8-d8ea-4136-f3401EXAMPLE"
   }
   ```

**Para crear y adjuntar AWS IoT claves y certificados en su instancia de Linux**

El comando **[create-keys-and-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-keys-and-certificate.html)** proporciona certificados de cliente firmado por la entidad emisora de certificados de Amazon Root. Este certificado se utiliza para autenticar la identidad del dispositivo virtual.

1. En la ventana **Amazon EC2 Instance Connect**, cree un directorio para almacenar los archivos de certificados y claves.

   ```
   mkdir ~/certs
   ```

1. En la ventana **Amazon EC2 Instance Connect**, descargue una copia del certificado de la autoridad de certificación (CA) de Amazon mediante este comando.

   ```
   curl -o ~/certs/Amazon-root-CA-1.pem \
       https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. En la ventana **Amazon EC2 Instance Connect**, ejecute el siguiente comando para crear los archivos de clave privada, clave pública y certificado X.509. Este comando también registra y activa el certificado con AWS IoT.

   ```
   aws iot create-keys-and-certificate \
       --set-as-active \
       --certificate-pem-outfile "~/certs/device.pem.crt" \
       --public-key-outfile "~/certs/public.pem.key" \
       --private-key-outfile "~/certs/private.pem.key"
   ```

   La respuesta tiene este aspecto: Guarde `certificateArn` para poder utilizarlo en los comandos posteriores. Lo necesitará para asociar el certificado a su objeto y para asociar la política al certificado más adelante.

   ```
   {
       "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificateId": "9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificatePem": "
   -----BEGIN CERTIFICATE-----
   MIICiTCCEXAMPLE6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC
   VVMxCzAJBgNVBAgEXAMPLEAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6
   b24xFDASBgNVBAsTC0lBTSEXAMPLE2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd
   BgkqhkiG9w0BCQEWEG5vb25lQGFtYEXAMPLEb20wHhcNMTEwNDI1MjA0NTIxWhcN
   MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCEXAMPLEJBgNVBAgTAldBMRAwDgYD
   VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAEXAMPLEsTC0lBTSBDb25z
   b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEXAMPLE25lQGFt
   YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+aEXAMPLE
   EXAMPLEfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
   rDHudUZEXAMPLELG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
   Ibb3OhjZnzcvQAEXAMPLEWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4
   nUhVVxYUntneD9+h8Mg9qEXAMPLEyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
   FFBjvSfpJIlJ00zbhNYS5f6GuoEDEXAMPLEBHjJnyp378OD8uTs7fLvjx79LjSTb
   NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=
   -----END CERTIFICATE-----\n",
       "keyPair": {
           "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\nMMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\n59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\nhJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\nFQIDAQAB\n-----END PUBLIC KEY-----\n",
           "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nkey omitted for security reasons\n-----END RSA PRIVATE KEY-----\n"
       }
   }
   ```

1. En la ventana **Amazon EC2 Instance Connect**, adjunte su objeto al certificado que acaba de crear mediante el siguiente comando y *certificateArn* en la respuesta del comando anterior.

   ```
   aws iot attach-thing-principal \
       --thing-name "MyIotThing" \
       --principal "certificateArn"
   ```

   Este comando no devuelve ningún resultado si se realiza correctamente.

**Para crear y asociar una política a un usuario**

1. En la ventana **Amazon EC2 Instance Connect**, cree el archivo de política copiando y pegando este documento de política en un archivo denominado **\$1/policy.json**.

   Si no tiene un editor favorito de Linux, puede abrir **nano** con este comando.

   ```
   nano ~/policy.json
   ```

   Pegue el documento de política de `policy.json` en él. Pulse Ctrl-X para salir del editor de **nano** y guardar el archivo.

   Contenido del documento de política de `policy.json`.  
****  

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

1. En la ventana **Amazon EC2 Instance Connect**, cree su política utilizando el siguiente comando.

   ```
   aws iot create-policy \
       --policy-name "MyIotThingPolicy" \
       --policy-document "file://~/policy.json"
   ```

   Salida:  
****  

   ```
   {
       "policyName": "MyIotThingPolicy",
       "policyArn": "arn:aws:iot:us-east-1:your-aws-account:policy/MyIotThingPolicy",
       "policyDocument": "{
           \"Version\": \"2012-10-17\",
           \"Statement\": [
               {
                   \"Effect\": \"Allow\",
                   \"Action\": [
                       \"iot:Publish\",
                       \"iot:Receive\",
                       \"iot:Subscribe\",
                       \"iot:Connect\"
                   ],
                   \"Resource\": [
                       \"*\"
                   ]
           }
           ]
       }",
       "policyVersionId": "1"
   }
   ```

1. En la ventana **Amazon EC2 Instance Connect**, asocie la política al certificado de su dispositivo virtual mediante el siguiente comando.

   ```
   aws iot attach-policy \
       --policy-name "MyIotThingPolicy" \
       --target "certificateArn"
   ```

   Este comando no devuelve ningún resultado si se realiza correctamente.

## Instale el SDK del AWS IoT dispositivo para JavaScript
<a name="ec2-sdk"></a>

En esta sección, instalará el SDK para AWS IoT dispositivos JavaScript, que contiene el código que las aplicaciones pueden usar para comunicarse, así AWS IoT como los programas de muestra. Para obtener más información, consulta el [ JavaScript GitHub repositorio del SDK de AWS IoT dispositivos](https://github.com/aws/aws-iot-device-sdk-js-v2).

**Para instalar el AWS IoT Device SDK for JavaScript en tu instancia de Linux**

1. En la ventana **Amazon EC2 Instance Connect**, clone el AWS IoT Device SDK para el JavaScript repositorio en el `aws-iot-device-sdk-js-v2` directorio de su directorio principal mediante este comando.

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

1. Vaya al directorio `aws-iot-device-sdk-js-v2` que creó en el paso anterior.

   ```
   cd aws-iot-device-sdk-js-v2
   ```

1. Utilice npm para instalar el SDK.

   ```
   npm install
   ```

## Ejecutar la aplicación de ejemplo
<a name="ec2-run-app"></a>

 Los comandos de las siguientes secciones suponen que los archivos de clave y certificado se almacenan en el dispositivo virtual, tal y como se muestra en esta 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`  | 

En esta sección, instalará y ejecutará la aplicación de `pub-sub.js` muestra que se encuentra en el `aws-iot-device-sdk-js-v2/samples/node` directorio del AWS IoT Device SDK for JavaScript. Esta aplicación muestra cómo un dispositivo, su instancia de Amazon EC2, utiliza la biblioteca de MQTT para publicar mensajes MQTT y suscribirse a ellos. La aplicación de `pub-sub.js` de ejemplo se suscribe a un tema,`topic_1`, publica 10 mensajes sobre ese tema y muestra los mensajes tal como los recibe del agente de mensajes.

**Para instalar y ejecutar la aplicación de ejemplo**

1. En la ventana **Amazon EC2 Instance Connect**, navegue hasta el directorio `aws-iot-device-sdk-js-v2/samples/node/pub_sub` que creó el SDK e instale la aplicación de ejemplo con estos comandos.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. En la ventana **Amazon EC2 Instance Connect**, vaya *your-iot-endpoint* desde AWS IoT mediante este comando.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

1. En la ventana **Amazon EC2 Instance Connect**, insértelo *your-iot-endpoint* como se indica y ejecute este comando.

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

La aplicación de ejemplo:

1. Se conecta a AWS IoT Core para su cuenta.

1. Se suscribe al tema de mensaje, **topic\$11**, y muestra los mensajes que recibe sobre ese tema.

1. Publica 10 mensajes sobre el tema, **topic\$11**.

1. Muestra una salida similar a la siguiente:

   ```
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":1}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":2}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":3}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":4}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":5}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":6}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":7}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":8}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":9}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":10}
   ```

Si tiene problemas para ejecutar la aplicación de ejemplo, revise [Solución de problemas con la aplicación de ejemplo](gs-device-troubleshoot.md).

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 podría proporcionarle la ayuda que necesita para corregir el problema.

## Ve los mensajes de la aplicación de ejemplo en la AWS IoT consola
<a name="ec2-view-msg"></a>

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](view-mqtt-messages.md). 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.

1. Abra la opción **Cliente de prueba de MQTT** en la **consola de AWS IoT **.

1. En **Suscribirse a un tema**, suscríbase al tema **topic\$11**.

1. En la ventana **Amazon EC2 Instance Connect**, vuelva a ejecutar la aplicación de ejemplo y observe los mensajes del **cliente de prueba de MQTT** de la **consola de AWS IoT **.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/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](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html).

# Utilice su PC o Mac con Windows o Linux como dispositivo AWS IoT
<a name="using-laptop-as-device"></a>

En este tutorial, configurará un ordenador personal para usarlo con AWS IoT. Estas instrucciones son compatibles con Windows, Linux PCs y Mac. 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](creating-a-virtual-thing.md) para saber cómo instalar todo el software en una máquina virtual.

**Topics**
+ [Configurar su ordenador personal](#gs-pc-prereqs)
+ [Instalar Git, Python y el SDK de AWS IoT dispositivos para Python](#gs-pc-sdk-node)
+ [Configurar la política y ejecutar la aplicación de ejemplo](#gs-pc-python-app-run)
+ [Ve los mensajes de la aplicación de ejemplo en la AWS IoT consola](#gs-pc-view-msg)
+ [Ejecutar el ejemplo de suscripción compartida en Python](#gs-pc-shared-subscription-example)

## Configurar su ordenador personal
<a name="gs-pc-prereqs"></a>

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
<a name="gs-pc-sdk-node"></a>

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
<a name="gs-pc-node-runtime"></a>

Este procedimiento explica cómo instalar la versión más reciente de Git y Python en su ordenador personal.

**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](https://git-scm.com/download) e instale Git en el ordenador.

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

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

1. Abre [https://www.python.org/downloads/](https://www.python.org/downloads/) y descarga el instalador para tu ordenador.

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

1. 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
<a name="gs-pc-python-intall-sdk"></a>

**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
   ```

1. 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 en los que estás instalando. *home*

   La ubicación real del *home* directorio depende del sistema operativo.

------
#### [ Linux/macOS ]

   En macOS y Linux, el *home* directorio es`~`.

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

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

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

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

------
**nota**  
Si utilizas Windows PowerShell en lugar de hacerlo**cmd.exe**, utiliza el siguiente comando.  

   ```
   echo $home
   ```

Para obtener más información, consulte el [ GitHub repositorio AWS IoT Device SDK para Python](https://github.com/aws/aws-iot-device-sdk-python-v2).

### Preparación antes de ejecutar las aplicaciones de ejemplo
<a name="gs-pc-python-config-app"></a>

**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](create-iot-resources.md). 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**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/using-laptop-as-device.html)

  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**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/using-laptop-as-device.html)

  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
<a name="gs-pc-python-app-run"></a>

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 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/using-laptop-as-device.html)  | 

El *your-iot-endpoint* valor 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](https://console.aws.amazon.com//iot/home#/thinghub), en la lista **Objetos**, busque el recurso de objeto que represente a su dispositivo.

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

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

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

1. 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:us-east-1:123456789012:topic/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Subscribe"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:topicfilter/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Connect"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012: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
   ```

1. En la ventana de la línea de comandos, reemplace *your-iot-endpoint* como 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
   ```

1. En la ventana de la línea de comandos, *your-iot-endpoint* sustituya 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.

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

1. Publica 10 mensajes sobre el tema **test/topic**.

1. 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 [Solución de problemas con la aplicación de ejemplo](gs-device-troubleshoot.md).

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.

## Ve los mensajes de la aplicación de ejemplo en la AWS IoT consola
<a name="gs-pc-view-msg"></a>

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](view-mqtt-messages.md). 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.

1. Abra la opción **Cliente de prueba de MQTT** en la **consola de AWS IoT **.

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

1. 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](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html).

## Ejecutar el ejemplo de suscripción compartida en Python
<a name="gs-pc-shared-subscription-example"></a>

AWS IoT Core admite [suscripciones compartidas](mqtt.md#mqtt5-shared-subscription) 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](https://docs.aws.amazon.com//iot/latest/developerguide/topics.html#topicfilters) 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](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription). 

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

   1. En la ventana de la línea de comandos, *your-iot-endpoint* sustituya 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
      ```

   1. En la ventana de la línea de comandos, *your-iot-endpoint* sustituya 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.

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

1. 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](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription) y [Suscripciones compartidas](mqtt.md#mqtt5-shared-subscription) 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.  
![\[Página de resultados de las suscripciones compartidas.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/shared-subscription-output.png)

# Conexión de una Raspberry Pi u otro dispositivo
<a name="connecting-to-existing-device"></a>

En esta sección, configuraremos una Raspberry Pi para usarla con AWS IoT. Si tiene otro dispositivo que gustaría conectar, las instrucciones de la Raspberry Pi incluyen referencias que pueden ayudarlo a adaptar estas instrucciones a otros dispositivos.

Normalmente se tarda unos 20 minutos, pero puede tardar más si tiene que instalar muchas actualizaciones del software del sistema.

**Topics**
+ [Configuración del dispositivo](#gs-device-prereqs)
+ [Instale las herramientas y bibliotecas necesarias para el SDK del AWS IoT dispositivo](#gs-device-sdk-tools)
+ [Instala AWS IoT el SDK del dispositivo](#gs-device-install-sdk)
+ [Instalar y ejecutar la aplicación de ejemplo](#gs-device-node-app-run)
+ [Vea los mensajes de la aplicación de ejemplo en la AWS IoT consola](#gs-device-view-msg)

**importante**  
Adaptar estas instrucciones a otros dispositivos y sistemas operativos puede resultar difícil. Deberás entender el dispositivo lo suficientemente bien como para poder interpretar estas instrucciones y aplicarlas al dispositivo.  
Si tienes dificultades al configurar tu dispositivo AWS IoT, puedes probar una de las otras opciones del dispositivo como alternativa, como [Crear un dispositivo virtual con Amazon EC2](creating-a-virtual-thing.md) o[Utilice su PC o Mac con Windows o Linux como dispositivo AWS IoT](using-laptop-as-device.md).

## Configuración del dispositivo
<a name="gs-device-prereqs"></a>

El objetivo de este paso es recopilar todo lo necesario para configurar su dispositivo de forma que pueda iniciar el sistema operativo (SO), conectarse a internet y permitirle interactuar con ella en una interfaz de línea de comandos.

Necesitará lo siguiente para completar este tutorial:
+ Y Cuenta de AWS. Si no la tiene, complete los pasos que se describen en [Configurar Cuenta de AWS](setting-up.md) antes de continuar.
+ Una [Raspberry Pi 3 Modelo B](https://www.raspberrypi.com/products/) o un modelo más reciente. Esto podría funcionar en versiones anteriores de Raspberry Pi, pero no se han probado.
+ [Sistema operativo Raspberry Pi (32 bits)](https://www.raspberrypi.com/software/operating-systems/) o posterior. Recomendamos utilizar la última versión del sistema operativo Raspberry Pi. Esto podría funcionar en versiones anteriores de Raspberry Pi, pero no se han probado.

  Para ejecutar este ejemplo, no necesita instalar el escritorio con la interfaz gráfica de usuario (GUI); sin embargo, si es la primera vez que utiliza Raspberry Pi y su hardware de Raspberry Pi lo admite, utilizar el escritorio con la GUI puede resultar más fácil.
+ Una WiFi conexión Ethernet o.
+ Teclado, ratón, monitor, cables, fuentes de alimentación y demás hardware que necesite el dispositivo.

**importante**  
Antes de continuar con el siguiente paso, el sistema operativo del dispositivo debe estar instalado, configurado y en funcionamiento. El dispositivo debe estar conectado a internet y deberá poder acceder al dispositivo mediante su interfaz de línea de comandos. El acceso a través de la línea de comandos se puede realizar mediante un teclado, un ratón y un monitor conectados directamente, o mediante una interfaz remota de terminal SSH.

 Si utiliza un sistema operativo en la Raspberry Pi que tiene una interfaz gráfica de usuario (GUI), abra una ventana del terminal en el dispositivo y siga estas instrucciones en la ventana. De lo contrario, si se conecta al dispositivo mediante un terminal remoto, como PuTTY, abra un terminal remoto en el dispositivo y úselo.

## Instale las herramientas y bibliotecas necesarias para el SDK del AWS IoT dispositivo
<a name="gs-device-sdk-tools"></a>

Antes de instalar el SDK del AWS IoT dispositivo y el código de muestra, asegúrese de que el sistema esté actualizado y de que disponga de las herramientas y bibliotecas necesarias para instalarlo SDKs.

1. 

**Actualizar el sistema operativo e instalar las bibliotecas necesarias**  
Antes de instalar un SDK para AWS IoT dispositivos, ejecuta estos comandos en una ventana de terminal del dispositivo para actualizar el sistema operativo e instalar las bibliotecas necesarias.

   ```
   sudo apt-get update
   ```

   ```
   sudo apt-get upgrade
   ```

   ```
   sudo apt-get install cmake
   ```

   ```
   sudo apt-get install libssl-dev
   ```

1. 

**Instalar Git**  
Si el sistema operativo de tu dispositivo no incluye Git instalado, debes instalarlo para instalar el SDK del AWS IoT dispositivo JavaScript. 

   1. Ejecute este comando para comprobar si Git ya está instalado.

      ```
      git --version
      ```

   1. Si el comando anterior devuelve la versión de Git, significa que Git ya está instalado y puede ir directamente al paso 3.

   1. Si aparece un error al ejecutar el comando **git**, instale Git ejecutando este comando.

      ```
      sudo apt-get install git
      ```

   1. Ejecute este comando para volver a comprobar si Git está instalado.

      ```
      git --version
      ```

   1. Si Git está instalado, vaya a la siguiente sección. Si no es así, solucione el problema y corrija el error antes de continuar. Necesitas Git para instalar el SDK del AWS IoT dispositivo JavaScript.

## Instala AWS IoT el SDK del dispositivo
<a name="gs-device-install-sdk"></a>

Instale el SDK AWS IoT del dispositivo.

------
#### [ Python ]

En esta sección, instalará Python, sus herramientas de desarrollo y el SDK de AWS IoT dispositivos para Python en su dispositivo. Estas instrucciones son para una Raspberry Pi que ejecute la versión más reciente del sistema operativo Raspberry Pi. Si tiene otro dispositivo o utiliza otro sistema operativo, es posible que tenga que adaptar estas instrucciones a su dispositivo.

1. 

**Instalar Python y sus herramientas de desarrollo**  
El SDK de AWS IoT dispositivo para Python requiere que Python v3.5 o posterior esté instalado en tu Raspberry Pi.

   En una ventana del terminal de su dispositivo, ejecute estos comandos.

   1. Ejecute este comando para determinar la versión de Python instalada en el dispositivo.

      ```
      python3 --version
      ```

      Si Python está instalado, mostrará su versión.

   1. Si la versión que se muestra es `Python 3.5` o superior, puede ir directamente al paso 2.

   1. Si la versión que se muestra es inferior a `Python 3.5`, puede instalar la versión correcta ejecutando este comando.

      ```
      sudo apt install python3
      ```

   1. Ejecute este comando para confirmar que ahora está instalada la versión correcta de Python.

      ```
      python3 --version
      ```

1. 

**Prueba de pip3**  
En una ventana del terminal de su dispositivo, ejecute estos comandos.

   1. Ejecute este comando para comprobar si **pip3** está instalado.

      ```
      pip3 --version
      ```

   1. Si el comando devuelve un número de versión, significa que **pip3** está instalado y puede ir al paso 3.

   1. Si el comando anterior devuelve un error, ejecute este comando para instalar **pip3**.

      ```
      sudo apt install python3-pip
      ```

   1. Ejecute este comando para comprobar si **pip3** está instalado.

      ```
      pip3 --version
      ```

1. 

**Instalar el SDK de AWS IoT dispositivo actual para Python**  
Instala el SDK de AWS IoT dispositivos para Python y descarga las aplicaciones de muestra en tu dispositivo.

   En el dispositivo, ejecute estos comandos.

   ```
   cd ~
   python3 -m pip install awsiotsdk
   ```

   ```
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
#### [ JavaScript ]

En esta sección, instalarás Node.js, el administrador de paquetes npm y el SDK para AWS IoT dispositivos JavaScript en tu dispositivo. Estas instrucciones son para una Raspberry Pi que ejecute el sistema operativo Raspberry Pi. Si tiene otro dispositivo o utiliza otro sistema operativo, es posible que tenga que adaptar estas instrucciones a su dispositivo.

1. 

**Instale la versión más reciente de Node.js.**  
El SDK del AWS IoT dispositivo JavaScript requiere que Node.js y el administrador de paquetes npm estén instalados en tu Raspberry Pi.

   1. Descargue la última versión del repositorio de Node mediante el siguiente comando.

      ```
      cd ~
      curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
      ```

   1. Instale Node y npm.

      ```
      sudo apt-get install -y nodejs
      ```

   1. Verifique la instalación de Node.

      ```
      node -v
      ```

      Confirme que el comando muestra la versión de Node. Este tutorial requiere la versión Node v10.0 o posterior. Si no se muestra la versión de Node, pruebe a descargar de nuevo el repositorio de Node.

   1. Verifique la instalación de npm.

      ```
      npm -v
      ```

      Confirme que el comando muestra la versión de npm. Si no se muestra la versión de npm, pruebe a instalar Node y npm de nuevo.

   1. Reinicie el dispositivo.

      ```
      sudo shutdown -r 0
      ```

      Continúe después de que se reinicie el dispositivo.

1. 

**Instale el SDK del AWS IoT dispositivo para JavaScript**  
Instala el SDK del AWS IoT dispositivo JavaScript en tu Raspberry Pi.

   1. Clona el SDK del AWS IoT dispositivo para el JavaScript repositorio en el `aws-iot-device-sdk-js-v2` directorio de tu *home* directorio. En la Raspberry Pi`~/`, el *home* directorio es el que se utiliza como *home* directorio en los siguientes comandos. Si su dispositivo usa una ruta diferente para el *home* directorio, debe `~/` reemplazarla por la ruta correcta para su dispositivo en los siguientes comandos.

      Estos comandos crean el directorio `~/aws-iot-device-sdk-js-v2` y copian el código del SDK en él.

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

   1. Cambie al directorio `aws-iot-device-sdk-js-v2` que creó en el paso anterior y ejecute `npm install` para instalar el SDK. El comando `npm install` invocará la creación de la biblioteca `aws-crt`, que puede tardar algunos minutos en completarse.

      ```
      cd ~/aws-iot-device-sdk-js-v2
      npm install
      ```

------

## Instalar y ejecutar la aplicación de ejemplo
<a name="gs-device-node-app-run"></a>

En esta sección, instalarás y ejecutarás la aplicación de `pubsub` muestra que se encuentra en el SDK del AWS IoT dispositivo. Esta aplicación muestra cómo su dispositivo utiliza la biblioteca de MQTT para publicar y suscribirse a mensajes MQTT. La aplicación de ejemplo se suscribe a un tema, `topic_1`, publica 10 mensajes sobre ese tema y muestra los mensajes tal como los recibe del agente de mensajes.

**Instalar los archivos de certificado**  
La aplicación de ejemplo requiere que los archivos de certificado que autentican el dispositivo estén instalados en el dispositivo.

**Para instalar los archivos de certificado del dispositivo para la aplicación de ejemplo**

1. Crea un `certs` subdirectorio en tu *home* directorio ejecutando estos comandos.

   ```
   cd ~
   mkdir certs
   ```

1. En el directorio `~/certs`, copie la clave privada, el certificado de entidad de certificación del dispositivo y el certificado de entidad de certificación raíz que creó anteriormente en [Crea AWS IoT recursos](create-iot-resources.md).

   La forma de copiar los archivos de certificado en el dispositivo depende del dispositivo y del sistema operativo, y no se describe aquí. Sin embargo, si el dispositivo admite una interfaz gráfica de usuario (GUI) y tiene un navegador web, puede realizar el procedimiento descrito en [Crea AWS IoT recursos](create-iot-resources.md) en el navegador web del dispositivo para descargar los archivos resultantes directamente al dispositivo.

   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.  
**Nombres de archivo de certificado**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/connecting-to-existing-device.html)

Para ejecutar la aplicación de ejemplo, necesita la siguiente información:


**Valores de los parámetros de la aplicación**  

|  Parámetro  |  Dónde encontrar el valor  | 
| --- | --- | 
| your-iot-endpoint |  En la [consola de AWS IoT](https://console.aws.amazon.com/iot/home), seleccione **Todos los dispositivos** y, a continuación, **Objetos**. En la página **Configuración** del menú de AWS IoT . Su punto de conexión aparece en la sección **Punto de enlace de datos de dispositivo**.  | 

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

------
#### [ Python ]

**Para instalar y ejecutar la aplicación de ejemplo**

1. Navegue hasta el directorio de la aplicación de ejemplo.

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   ```

1. En la ventana de la línea de comandos, *your-iot-endpoint* sustituya como se indica y ejecute este comando.

   ```
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. Observe que la aplicación de ejemplo:

   1. Se conecta al AWS IoT servicio de su cuenta.

   1. Se suscribe al tema de mensaje, **topic\$11**, y muestra los mensajes que recibe sobre ese tema.

   1. Publica 10 mensajes sobre el tema, **topic\$11**.

   1. Muestra una salida similar a la siguiente:

   ```
   Connecting to a3qEXAMPLEffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-0c8ae2ff-cc87-49d2-a82a-ae7ba1d0ca5a'...
   Connected!
   Subscribing to topic 'topic_1'...
   Subscribed with QoS.AT_LEAST_ONCE
   Sending 10 message(s)
   Publishing message to topic 'topic_1': Hello World! [1]
   Received message from topic 'topic_1': b'Hello World! [1]'
   Publishing message to topic 'topic_1': Hello World! [2]
   Received message from topic 'topic_1': b'Hello World! [2]'
   Publishing message to topic 'topic_1': Hello World! [3]
   Received message from topic 'topic_1': b'Hello World! [3]'
   Publishing message to topic 'topic_1': Hello World! [4]
   Received message from topic 'topic_1': b'Hello World! [4]'
   Publishing message to topic 'topic_1': Hello World! [5]
   Received message from topic 'topic_1': b'Hello World! [5]'
   Publishing message to topic 'topic_1': Hello World! [6]
   Received message from topic 'topic_1': b'Hello World! [6]'
   Publishing message to topic 'topic_1': Hello World! [7]
   Received message from topic 'topic_1': b'Hello World! [7]'
   Publishing message to topic 'topic_1': Hello World! [8]
   Received message from topic 'topic_1': b'Hello World! [8]'
   Publishing message to topic 'topic_1': Hello World! [9]
   Received message from topic 'topic_1': b'Hello World! [9]'
   Publishing message to topic 'topic_1': Hello World! [10]
   Received message from topic 'topic_1': b'Hello World! [10]'
   10 message(s) received.
   Disconnecting...
   Disconnected!
   ```

   Si tiene problemas para ejecutar la aplicación de ejemplo, revise [Solución de problemas con la aplicación de ejemplo](gs-device-troubleshoot.md).

   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 podría proporcionarle la ayuda que necesita para corregir el problema.

------
#### [ JavaScript ]

**Para instalar y ejecutar la aplicación de ejemplo**

1. En la ventana de la línea de comandos, navegue hasta el directorio `~/aws-iot-device-sdk-js-v2/samples/node/pub_sub` que el SDK creó e instale la aplicación de ejemplo con estos comandos. El comando `npm install` invocará la creación de la biblioteca `aws-crt`, que puede tardar algunos minutos en completarse.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. En la ventana de la línea de comandos, reemplace *your-iot-endpoint* como se indica y ejecute este comando.

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. Observe que la aplicación de ejemplo:

   1. Se conecta al AWS IoT servicio de su cuenta.

   1. Se suscribe al tema de mensaje, **topic\$11**, y muestra los mensajes que recibe sobre ese tema.

   1. Publica 10 mensajes sobre el tema, **topic\$11**.

   1. Muestra una salida similar a la siguiente:

   ```
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":1}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":2}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":3}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":4}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":5}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":6}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":7}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":8}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":9}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":10}
   ```

   Si tiene problemas para ejecutar la aplicación de ejemplo, revise [Solución de problemas con la aplicación de ejemplo](gs-device-troubleshoot.md).

   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 podría proporcionarle la ayuda que necesita para corregir el problema.

------

## Vea los mensajes de la aplicación de ejemplo en la AWS IoT consola
<a name="gs-device-view-msg"></a>

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](view-mqtt-messages.md). 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.

1. Abra la opción **Cliente de prueba de MQTT** en la **consola de AWS IoT **.

1. Para suscribirse al tema **topic\$11**.

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

------
#### [ Python ]

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------
#### [ JavaScript ]

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------

# Solución de problemas con la aplicación de ejemplo
<a name="gs-device-troubleshoot"></a>

Si se produce un error al intentar ejecutar la aplicación de ejemplo, compruebe lo siguiente.

## Compruebe el certificado
<a name="gs-device-ts-step-1"></a>

Si el certificado no está activo, AWS IoT no aceptará ningún intento de conexión que lo utilice para la autorización. Al crear el certificado, es fácil pasar por alto el botón **Activar**. Afortunadamente, es posible activar el certificado desde la [consola de AWS IoT](https://console.aws.amazon.com/iot/home).

**Para comprobar la activación del certificado**

1. En la [consola de AWS IoT](https://console.aws.amazon.com/iot/home), en el menú de la izquierda, seleccione **Seguridad** y, a continuación, **Certificados**.

1. En la lista de certificados, busque el certificado que creó para el ejercicio y compruebe su estado en la columna **Estado**.

   Si no recuerda el nombre del certificado, compruebe si hay alguno que esté **inactivo** para ver si es el que está utilizando.

   Seleccione el certificado de la lista para abrir su página de detalles. En la página de detalles, puede ver su **fecha de creación** para ayudarle a identificar el certificado.

1. **Para activar un certificado inactivo**, en la página de detalles del certificado, elija **Acciones** y, a continuación, seleccione **Activar**. 

Si ha encontrado el certificado correcto y está activo, pero sigue teniendo problemas para ejecutar la aplicación de ejemplo, consulte su política, tal y como se describe en el siguiente paso.

También puede intentar crear un objeto y un certificado nuevo siguiendo los pasos que se indican en [Crear un objeto](create-iot-resources.md#create-aws-thing). Si crea un nuevo objeto, tendrá que asignarle un nombre nuevo y descargar los nuevos archivos de certificado en su dispositivo.

## Comprobación de la política asociada al certificado
<a name="gs-device-ts-step-2"></a>

Las políticas autorizan las acciones en AWS IoT. Si el certificado utilizado para conectarse a AWS IoT no tiene una política o no tiene una política que le permita conectarse, se rechazará la conexión, incluso si el certificado está activo.

**Para comprobar las políticas asociadas al certificado**

1. Busque el certificado tal y como se describe en el punto anterior y abra su página de detalles.

1. En el menú de la izquierda de la página de detalles del certificado, seleccione **Políticas** para ver las políticas asociadas al certificado.

1. Si no hay políticas asociadas al certificado, agregue una seleccionando el menú **Acciones** y, a continuación, **Asociar política**. 

   Elija la política que creó anteriormente en [Crea AWS IoT recursos](create-iot-resources.md).

1. Si hay una política asociada, elija el mosaico de la política para abrir su página de detalles.

   En la página de detalles, revise el **documento de política** para asegurarse de que contiene la misma información que la que creó en [Cree una AWS IoT política](create-iot-resources.md#create-iot-policy).

## Comprobación de la línea de comandos
<a name="gs-device-ts-step-3"></a>

Asegúrese de haber utilizado la línea de comandos correcta para su sistema. Los comandos que se utilizan en los sistemas Linux y macOS suelen ser diferentes de los que se utilizan en los sistemas Windows.

## Comprobación de la dirección del punto de conexión
<a name="gs-device-ts-step-4"></a>

Revise el comando introducido y compruebe que la dirección del punto de conexión del comando coincide con la de la [consola de AWS IoT](https://console.aws.amazon.com/iot/home).

## Comprobación de los nombres de los archivos de certificado
<a name="gs-device-ts-step-5"></a>

Compare los nombres de los archivos del comando que introdujo con los nombres de los archivos de certificado del directorio `certs`.

Es posible que algunos sistemas requieran que los nombres de los archivos estén entre comillas para que funcionen correctamente.

## Comprobación de la instalación del SDK
<a name="gs-device-ts-step-6"></a>

Asegúrese de que la instalación del SDK haya finalizado correctamente.

En caso de duda, vuelva a instalar el SDK en el dispositivo. En la mayoría de los casos, basta con encontrar la sección del tutorial titulada **Instalar el SDK del AWS IoT dispositivo **SDK language**** y volver a seguir el procedimiento.

Si utilizas el **SDK para AWS IoT dispositivos JavaScript**, recuerda instalar las aplicaciones de muestra antes de intentar ejecutarlas. Al instalar el SDK no se instalan automáticamente las aplicaciones de ejemplo. Las aplicaciones de ejemplo se deben instalar manualmente después de instalar el SDK.

# Vea los mensajes MQTT con el cliente AWS IoT MQTT
<a name="view-mqtt-messages"></a>

En esta sección se describe cómo utilizar el cliente de prueba de AWS IoT MQTT de la [AWS IoT consola](https://console.aws.amazon.com/iot/home) para ver los mensajes MQTT enviados y recibidos por. AWS IoT El ejemplo utilizado en esta sección se refiere a los ejemplos utilizados en[Cómo empezar con AWS IoT Core los tutoriales](iot-gs.md); sin embargo, puede reemplazar el *topicName* utilizado en los ejemplos por cualquier [nombre de tema o filtro de tema](topics.md) que utilice su solución de IoT.

Los dispositivos publican mensajes MQTT que se identifican por [temas](topics.md) para comunicar su estado y AWS IoT publican mensajes MQTT para informar a los dispositivos y aplicaciones de los cambios y eventos. AWS IoT Puede utilizar el cliente MQTT para suscribirse a estos temas y ver los mensajes a medida que se producen. También puede usar el cliente de prueba MQTT para publicar mensajes MQTT en los dispositivos y servicios suscritos en su dispositivo. Cuenta de AWS

**Topics**
+ [Visualización de mensajes MQTT en el cliente MQTT](#view-mqtt-subscribe)
+ [Publicación de mensajes MQTT desde el cliente MQTT](#view-mqtt-publish)
+ [Probar las suscripciones compartidas en el cliente MQTT](#view-mqtt-shared-subscriptions)

## Visualización de mensajes MQTT en el cliente MQTT
<a name="view-mqtt-subscribe"></a>

El siguiente procedimiento explica cómo suscribirse a un tema de MQTT específico en el que su dispositivo publique mensajes y cómo ver esos mensajes en la [consola de AWS IoT](https://console.aws.amazon.com/iot/home).

**Para consultar los mensajes MQTT en el cliente MQTT**

1. En la [consola de AWS IoT](https://console.aws.amazon.com/iot/home), en el menú de la izquierda, elija **Prueba** y, a continuación, **Cliente de prueba de MQTT**.  
![\[En el menú de navegación de la izquierda de la consola, elija el cliente de prueba de MQTT.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/choose-test.png)

1. En la pestaña **Suscribirse a un tema**, introduzca la *topicName* para suscribirse al tema en el que publica su dispositivo. Para la aplicación de ejemplo de introducción, suscríbase a **\$1**, que se suscribe a todos los temas de los mensajes.

   Continuando con el ejemplo de introducción, en la pestaña **Suscribirse a un tema**, en el campo **Filtro de temas**, introduzca **\$1** y, a continuación, seleccione **Suscribirse**.  
![\[Suscripción a una pestaña de tema.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/subscribe-button-topic.png)

   Se abre la página de registro de mensajes del tema, **\$1**, y **\$1** aparece en la lista de **suscripciones**. Si el dispositivo que configuraste [Configuración del dispositivo](configure-device.md) ejecuta el programa de ejemplo, deberías ver los mensajes a los que se envía AWS IoT en el registro de mensajes **\$1**. Las entradas del registro de mensajes aparecerán debajo de la sección **Publicar** cuando se reciban mensajes con el tema suscrito. AWS IoT  
![\[Sección que muestra que se ha suscrito correctamente al tema.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/subscribed-button-topic.png)

1. En la página de registro de mensajes **\$1**, también puede publicar mensajes en un tema, pero tendrá que especificar el nombre del tema. No se puede publicar en el tema **\$1**.

   Los mensajes publicados en los temas suscritos aparecen en el registro de mensajes a medida que se reciben, con el mensaje más reciente primero.

### Solución de problemas con los mensajes MQTT
<a name="view-mqtt-trouble"></a>

**Utilizar el filtro de temas comodín**  
Si sus mensajes no aparecen como esperaba en el registro de mensajes, pruebe a suscribirse a un tema comodín, tal y como se describe en [Filtros de nombres de temas](topics.md#topicfilters). El filtro de temas comodín de varios niveles de MQTT es el signo de almohadilla (`#`) y se puede utilizar como filtro de tema en el campo del **tema de suscripción**.

Al suscribirse al filtro de temas de `#`, se suscriben a todos los temas recibidos por el agente de mensajes. Puede restringir el filtro sustituyendo los elementos de la ruta del filtro de temas por un carácter comodín `#` de varios niveles o el carácter comodín de un solo nivel con el signo «\$1».

**Cuando se utilizan caracteres comodín en un filtro de temas**
+ El carácter comodín de varios niveles debe ser el último carácter del filtro de temas.
+ La ruta del filtro de temas solo puede tener un carácter comodín de un solo nivel por cada nivel de tema.

Por ejemplo:


|  Filtro de temas  |  Muestra mensajes con  | 
| --- | --- | 
|   `#`   |   Cualquier nombre de tema   | 
|   `topic_1/#`   |   Un nombre de tema que comience por `topic_1/`  | 
|   `topic_1/level_2/#`   |   Un nombre de tema que comience por `topic_1/level_2/`  | 
|   `topic_1/+/level_3`   |   Un nombre de tema que comience por `topic_1/`, termine por `/level_3` y tenga un elemento de cualquier valor intermedio.  | 

Para obtener más información acerca de los filtros de temas, consulte [Filtros de nombres de temas](topics.md#topicfilters).

**Comprobación de errores en los nombres de temas**  
Los nombres de temas y los filtros de temas de MQTT distinguen entre mayúsculas y minúsculas. Si, por ejemplo, su dispositivo está publicando mensajes en `Topic_1` (con *T* mayúscula) en lugar de `topic_1`, el tema al que se suscribió, sus mensajes no aparecerían en el cliente de prueba de MQTT. Sin embargo, si se suscribe al filtro de temas comodín, se mostrará que el dispositivo está publicando mensajes y podría ver que está usando un nombre de tema que no es el que se esperaba.

## Publicación de mensajes MQTT desde el cliente MQTT
<a name="view-mqtt-publish"></a>

**Para publicar un mensaje en un tema de MQTT**

1. En la página del cliente de prueba de MQTT, en la pestaña **Publicar en un tema**, en el campo **Nombre del tema**, introduzca su *topicName* mensaje. En este ejemplo, use **my/topic**. 
**nota**  
No utilice información de identificación personal en nombres de temas si los utiliza en el cliente MQTT o en la implementación de su sistema. Los nombres de temas pueden aparecer en comunicaciones e informes no cifrados.

1. En la ventana de carga del mensaje, introduzca el siguiente JSON:

   ```
   {
       "message": "Hello, world",
       "clientType": "MQTT test client"
   }
   ```

1. Elija **Publicar** para publicar el mensaje en AWS IoT.
**nota**  
Asegúrese de estar suscrito al tema **my/topic** antes de publicar su mensaje.  
![\[Pestaña de publicación en un tema.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/publish-to-topic.png)

1. En la columna **Suscripciones**, elija **my/topic** para ver el mensaje. Debería ver el mensaje en el cliente de prueba de MQTT, debajo de la ventana de carga para publicar el mensaje.  
![\[Pantalla que muestra que se ha recibido el tema publicado.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/publish-to-topic-received.png)

Puede publicar mensajes de MQTT *topicName* en otros temas cambiando el campo **Nombre del tema** y pulsando el botón **Publicar**.

**importante**  
Al crear varias suscripciones con temas superpuestos (por ejemplo, probe1/temperature y probe1/\$1), existe la posibilidad de que un solo mensaje publicado sobre un tema que coincida con ambas suscripciones se entregue varias veces, una por cada suscripción superpuesta. 

## Probar las suscripciones compartidas en el cliente MQTT
<a name="view-mqtt-shared-subscriptions"></a>

En esta sección se describe cómo utilizar el cliente AWS IoT MQTT de la [AWS IoT consola](https://console.aws.amazon.com/iot/home) para ver los mensajes MQTT enviados y recibidos AWS IoT mediante suscripciones compartidas. [Suscripciones compartidas](mqtt.md#mqtt5-shared-subscription)permiten que varios clientes compartan una suscripción a un tema y que solo un cliente reciba los mensajes publicados sobre ese tema mediante una distribución aleatoria. Para simular varios clientes MQTT (en este ejemplo, dos clientes MQTT) que comparten la misma suscripción, abra el cliente AWS IoT MQTT en la [AWS IoT consola](https://console.aws.amazon.com/iot/home) desde varios navegadores web. El ejemplo utilizado en esta sección no está relacionado con los ejemplos utilizados en [Cómo empezar con AWS IoT Core los tutoriales](iot-gs.md). Para obtener más información, consulte [Suscripciones compartidas](mqtt.md#mqtt5-shared-subscription).

**Para compartir una suscripción a un tema de MQTT**

1. En el panel de navegación de la [consola de AWS IoT](https://console.aws.amazon.com/iot/home), seleccione **Prueba** y, a continuación, **Cliente de prueba de MQTT**.

1. En la pestaña **Suscribirse a un tema**, introduzca la *topicName* para suscribirse al tema en el que publica su dispositivo. Para usar las suscripciones compartidas, subscríbase al filtro de temas de una suscripción compartida de la siguiente manera:

   ```
   $share/{ShareName}/{TopicFilter}
   ```

   Un ejemplo de filtro de temas puede ser **\$1share/group1/topic1**, que se suscribe al tema **topic1** del mensaje.  
![\[Pestaña que muestra cómo especificar un filtro de temas para las suscripciones compartidas.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/shared-subscription-topicfilter.png)

1. Abra otro navegador web y repita los pasos 1 y 2. De esta forma, está simulando dos clientes MQTT diferentes que comparten la misma suscripción **\$1share/group1/topic1**.

1. Elija un cliente MQTT, en la pestaña **Publicar en un tema**, en el campo **Nombre del tema**, introduzca el *topicName* mensaje que desee. En este ejemplo, use **topic1**. Intente publicar el mensaje varias veces. En la lista **Suscripciones** de ambos clientes MQTT, debería poder ver que los clientes reciben el mensaje mediante una distribución aleatoria. En este ejemplo, publicamos el mismo mensaje “Hola desde la consola de AWS IoT ” tres veces. El cliente MQTT de la izquierda recibió el mensaje dos veces y el cliente MQTT de la derecha recibió el mensaje una vez.  
![\[Flujo de suscripciones compartidas que permite que dos clientes compartan una suscripción a un tema y solo un cliente reciba los mensajes publicados sobre ese tema mediante una distribución aleatoria.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/shared_subscriptions_test.gif)