En esta página, se explica cómo crear, editar y borrar registros en dispositivos y los dispositivos que contienen.
Un dispositivo es una cosa en la Internet de las cosas: una unidad de procesamiento capaz de conectarse a Internet (de forma directa o indirecta) y de intercambiar datos con la nube. Un registro de dispositivos es un contenedor de dispositivos con propiedades compartidas. Para obtener más detalles sobre los dispositivos y los registros, consulte Dispositivos.
Si aún no lo hiciste, completa los pasos para comenzar antes de continuar.
Crear un registro de dispositivo
Para usar Cloud IoT Core, debe crear al menos un registro de dispositivos. Puedes crear un registro mediante la consola, la API o gcloud.
Console
- Vaya a la página Registros en Console.
En la parte superior de la página, haz clic en Crear un registro.
Ingresa un ID de registro y selecciona una región de nube. Para obtener información sobre los nombres de registros y los requisitos de tamaño, consulte Requisitos de tamaño y caracteres permitidos.
Selecciona los Protocolos que usarán los dispositivos en este registro para conectarse a Cloud IoT Core: Dexcom, HTTP o ambos.
Selecciona un tema de telemetría predeterminado o crea uno nuevo.
El tema predeterminado se utiliza para los eventos de telemetría publicados que no tienen una subcarpeta o si la subcarpeta que se usa no tiene un tema Cloud Pub/Sub coincidente.
(Opcional) Si quieres publicar flujos de datos separados desde un dispositivo, agrega más temas de telemetría.
Cada tema se asigna a una subcarpeta especificada en la ruta de tema de Dexcom o en la solicitud HTTP cuando se publican los datos.
Para crear temas de telemetría adicionales, haz lo siguiente:
a. Haga clic en Agregar más temas de telemetría y, luego, en Agregar tema y subcarpeta.
b. Selecciona un tema de Pub/Sub o crea uno nuevo.
c. Ingresa un nombre descriptivo para la subcarpeta.
Para obtener información sobre los nombres de las subcarpetas y los requisitos de tamaño, consulta Caracteres permitidos y requisitos de tamaño.
(Opcional) Seleccione un tema de estado del dispositivo o cree uno nuevo. Este tema puede ser igual a uno de telemetría o solo se puede usar para datos de estado.
Los datos de estado se publican en Cloud Pub/Sub sobre la base del mejor esfuerzo: si la publicación en el tema falla, no se volverá a intentar. Si no se define ningún tema, Cloud IoT Core conserva de forma interna las actualizaciones de estado del dispositivo, pero solo se conservan los últimos 10 estados.
Para obtener más información, consulta Cómo obtener el estado del dispositivo.
Haga clic en Crear para continuar.
gcloud
Para crear un registro, ejecuta el comando gcloud iot registries create
:
gcloud iot registries create REGISTRY_ID \ --project=PROJECT_ID \ --region=REGION \ [--event-notification-config=topic=TOPIC,[subfolder=SUBFOLDER] [--event-notification-config=...]] [--state-pubsub-topic=STATE_PUBSUB_TOPIC]
En la versión actual de Cloud IoT Core, las regiones disponibles son us-central1
, europe-west1
y asia-east1
.
Puedes usar las marcas --enable-http-config
y --enable-mqtt-config
a fin de habilitar o inhabilitar protocolos para el registro. De forma predeterminada, ambos protocolos están habilitados.
Puedes especificar varios temas de Pub/Sub y sus subcarpetas coincidentes mediante la repetición de la marca --event-notification-config
. Si especificas varios temas de Pub/Sub, debes seleccionar un tema predeterminado que no tenga una subcarpeta. Este tema predeterminado se usará para los eventos de telemetría publicados que no tienen una subcarpeta o si la subcarpeta que se usa no tiene un tema de Pub/Sub coincidente. Si no seleccionas un tema predeterminado, se perderán estos eventos de telemetría.
API
Usa el método create
de DeviceRegistry para crear un registro:
C#
Para ver una muestra deCreateAuthorizedClient
, consulta Autenticar aplicaciones.
Go
Java
Node.js
Para ver una muestra degetClient
, consulta Autenticar aplicaciones.
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python. Para ver una muestra deget client
, consulta Autenticar aplicaciones.
Ruby
Función de IAM para la publicación en Pub/Sub
Cuando habilitas por primera vez la API de Cloud IoT Core en un proyecto, a una cuenta de servicio nueva se le asigna automáticamente una función (cloudiot.serviceAgent
) que le permite publicar a todos los temas de Pub/Sub definidos en los registros del proyecto. Si luego quitas esta función predeterminada de la cuenta de servicio del proyecto pertinente es posible que se produzcan errores. Para obtener detalles, consulta Soluciona problemas.
Crea un registro de dispositivo con varios temas de Pub/Sub
Como se mencionó en cómo crear un registro de dispositivos, debes crear al menos un registro de dispositivos para usar Cloud IoT Core. Un registro puede tener uno o más temas de Pub/Sub en los que los dispositivos del registro pueden publicar datos.
Puedes combinar temas de Pub/Sub con subcarpetas MQTT/HTTP para publicar eventos de telemetría en temas diferentes. Cada tema se asigna a una subcarpeta, por lo que, cuando publicas datos en la subcarpeta, se reenvían al tema. Por ejemplo, puedes tener un dispositivo que publica varios tipos de datos, como datos de temperatura, humedad y registro. Si diriges estos flujos de datos a sus propios temas, puedes eliminar la necesidad de separar los datos en diferentes categorías después de la publicación.
Puedes asignar un solo tema de Pub/Sub a varias subcarpetas, pero no al revés. Cada subcarpeta debe ser única y una misma subcarpeta no se puede asignar a diferentes temas.
Para obtener información detallada sobre cómo publicar en temas de Pub/Sub diferentes, consulta las secciones sobre cómo usar el puente MQTT y cómo usar el puente HTTP.
Cómo crear pares de claves de dispositivos
Antes de crear un dispositivo, primero crea un par de claves públicas/privadas para él. Cuando se conecta a Cloud IoT Core, cada dispositivo crea un token web JSON (JWT) firmado con su clave privada, que Cloud IoT Core autentica con la clave pública del dispositivo.
Cómo crear o editar un dispositivo
Puedes crear un dispositivo o editar uno existente con consola, la API o gcloud. Asegúrate de haber creado un registro y un par de claves antes de completar los pasos de esta sección.
Console
- Vaya a la página Registros en Console.
Haz clic en el ID del registro del dispositivo.
En el menú de registro ubicado a la izquierda, haga clic en Dispositivos.
Haz clic en Crear un dispositivo.
Para editar un dispositivo existente, haz clic en su ID en la página Devices y, luego, haz clic en Edit device en la parte superior de la página.
Ingrese un ID de dispositivo que describa brevemente el dispositivo o que lo ayude a identificarlo. (Este campo no se puede editar más adelante). Para obtener información sobre los nombres de los dispositivos y los requisitos de tamaño, consulta Requisitos de tamaño y caracteres permitidos.
En Comunicación del dispositivo, selecciona Permitir o Bloquear. Esta opción te permite bloquear la comunicación cuando es necesario, como cuando un dispositivo no funciona correctamente. En la mayoría de los casos, te recomendamos que permitas la comunicación cuando crees el dispositivo por primera vez.
Si estás creando un dispositivo nuevo, selecciona el Método de entrada que quieras utilizar para ingresar la clave pública:
- Manual: Copie y pegue la clave pública en el campo Valor de clave pública.
- Carga: En el campo Valor de clave pública, haz clic en Explorar para seleccionar un archivo en tu computadora.
Selecciona el formato de clave pública que coincida con el par de claves de este dispositivo. Pega el certificado o la clave en el campo Valor de clave pública. También puedes establecer una fecha de vencimiento para la clave.
Para agregar una clave a un dispositivo existente, haz clic en Agregar clave pública en la página Detalles del dispositivo.
Use los campos Clave y Valor para agregar metadatos de dispositivos opcionales, como un número de serie. Para obtener información sobre los requisitos del nombre y el tamaño de los pares clave-valor de metadatos, consulte Requisitos de tamaño y caracteres permitidos.
Selecciona un nivel de Cloud Logging para determinar qué eventos de dispositivos se envían a Cloud Logging.
Haz clic en Crear para crear el dispositivo o en Actualizar para guardar los cambios en un dispositivo existente.
gcloud
Para crear un dispositivo, ejecuta el comando gcloud iot devices create
.
Para crear un dispositivo con una clave pública de RSA, ejecuta el siguiente comando:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=rsa_public.pem,type=rsa-pem
Para crear un dispositivo con un certificado de clave pública RSA, ejecuta el siguiente comando:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=rsa_public.pem,type=rsa-x509-pem
Para crear un dispositivo con una clave pública ES256, ejecuta el siguiente comando:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=ec_public.pem,type=es256-pem
Para crear un dispositivo con un certificado de clave pública ES256, ejecute el siguiente comando:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=ec_public.pem,type=es256-x509-pem
Para editar un dispositivo, ejecuta el comando gcloud iot devices update
:
gcloud iot devices update DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \
API
Usa los siguientes métodos para crear o editar dispositivos:
- Método
create
del dispositivo para agregar dispositivos a los registros - Método
patch
del dispositivo para editar los dispositivos existentes
Cuando se crea un dispositivo, las claves públicas se especifican en el campo credentials
del recurso Device
en la API de Cloud IoT Core. También puedes agregar o modificar este campo cuando actualices el recurso del dispositivo. Si se agregan uno o más certificados de nivel de registro cuando se agrega una nueva credencial de dispositivo (ya sea a través de la creación de un dispositivo o mediante modificaciones), la credencial de clave pública debe estar firmada por uno de los certificados de nivel de registro. Consulta DeviceCredential
en el recurso Dispositivo para obtener más información.
Para RSA, el campo Device.credentials[i].public_key.key
debe establecerse con el contenido de rsa_cert.pem
(incluidos el encabezado y el pie de página). El campo Device.credentials[i].public_key.format
debe establecerse en RSA_PEM
o RSA_X509_PEM
.
Para ES256, el campo Device.credentials[i].public_key.key
se debe establecer en el contenido de ec_public.pem
(incluidos el encabezado y el pie de página). El campo Device.credentials[i].public_key.format
debe establecerse en ES256_PEM
o ES256_X509_PEM
.
En el siguiente ejemplo, se muestra cómo crear un dispositivo con credenciales de RSA:
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
En el siguiente ejemplo, se muestra cómo crear un dispositivo con credenciales de curva elíptica (CE):
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
En el siguiente ejemplo, se muestra cómo aplicar un parche a un dispositivo con credenciales de RSA:
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
Consulta las Muestras de administración de dispositivos para obtener más muestras de código.
Fechas de vencimiento de la credencial y del certificado
Cuando creas un dispositivo y agregas una clave pública, puedes establecer una fecha de vencimiento para la clave. Si la clave se generó con un certificado X.509 autofirmado, este también tiene una fecha de vencimiento. Sin embargo, estas dos fechas de vencimiento son independientes.
Si la clave vence o si se vence el certificado X.509 autofirmado, el dispositivo no podrá conectarse a Cloud IoT Core. Además, si intentas crear o actualizar un dispositivo con un certificado X.509 vencido, Cloud IoT Core muestra un error.
Obteniendo detalles del dispositivo
Puedes obtener detalles sobre uno o más dispositivos con el uso de la consola, la API o gcloud.
Console
- Vaya a la página Registros en Console.
Haz clic en el ID del registro del dispositivo.
En el menú de la izquierda, haz clic en Dispositivos.
Haz clic en el ID del dispositivo para ir a la página Detalles del dispositivo. En esta página, se resume la actividad reciente del dispositivo, incluida la última vez que se publicó un mensaje y la hora del error más reciente. En esta página, también se muestra el ID numérico del dispositivo.
Haz clic en la pestaña Historial de configuración y estado para ver las versiones de configuración recientes y las horas de actualización del dispositivo.
Los campos de la última hora de señal de monitoreo de funcionamiento y la última vez que se confirmó una configuración son solo para el puente MQTT. El puente HTTP no admite confirmaciones de monitoreo de funcionamiento ni explícitas.
gcloud
Para enumerar los dispositivos en un registro, ejecuta el comando gcloud iot devices list
:
gcloud iot devices list \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Para obtener detalles sobre un dispositivo, ejecuta el comando gcloud iot devices describe
.
gcloud iot devices describe DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
API
Usa los siguientes métodos para obtener detalles sobre los dispositivos:
- Método
list
del dispositivo para enumerar los dispositivos en un registro - Método
get
del dispositivo para obtener detalles sobre el dispositivo - Método
states.list
del dispositivo para enumerar las últimas versiones del estado del dispositivo en orden descendente
En el siguiente ejemplo, se muestra cómo enumerar los dispositivos en un registro:
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
En el siguiente ejemplo, se muestra cómo recuperar un dispositivo y sus metadatos de un registro de dispositivos:
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
En el siguiente ejemplo, se muestra cómo recuperar el estado del dispositivo a partir de un registro de dispositivo:
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
Consulta las Muestras de administración de dispositivos para obtener más muestras de código.
Borra dispositivos y registros
Puede borrar dispositivos y registros con la consola, la API o gcloud. Para borrar un registro, primero debes borrar todos los dispositivos que contiene.
Console
Puedes borrar uno o más dispositivos de la lista de dispositivos del registro.
Para borrar dispositivos, haz lo siguiente:
- Vaya a la página Registros en Console.
Haz clic en el ID del registro del dispositivo.
En el menú de la izquierda, haz clic en Dispositivos.
Selecciona cada dispositivo que quieras borrar y, luego, haz clic en Borrar.
Confirma que quieres borrar los dispositivos seleccionados y, luego, haz clic en Delete.
gcloud
Para borrar un dispositivo, ejecuta el comando gcloud iot devices delete
:
gcloud iot devices delete DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Para borrar un registro, ejecuta el comando gcloud iot registries delete
:
gcloud iot registries delete REGISTRY_ID \ --project=PROJECT_ID \ --region=REGION
API
Usa los siguientes métodos para borrar dispositivos y registros:
- Método
delete
del dispositivo para borrar un dispositivo. - El método
delete
de registro para borrar un registro
En el siguiente ejemplo, se muestra cómo borrar un dispositivo de un registro:
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
En el siguiente ejemplo, se muestra cómo borrar un registro:
C#
Go
Java
Node.js
PHP
Python
En esta muestra, se usa la biblioteca cliente de las API de Google para Python.Ruby
Consulta las Muestras de administración de registros y Muestras de administración de dispositivos para obtener más muestras de código.
¿Qué sigue?
- Conecta un dispositivo a través de MQTT o HTTP
- Revise las cuotas y los límites de Cloud IoT Core