Cette page explique comment créer, modifier et supprimer des registres d'appareils et des appareils qu'ils contiennent.
Un appareil est une "objet" de "l'Internet des objets": une unité de traitement capable de se connecter à Internet (directement ou indirectement) et d'échanger des données avec le cloud. Un registre d'appareils est un conteneur d'appareils avec des propriétés partagées. Pour en savoir plus sur les appareils et les registres, consultez Appareils.
Si ce n'est pas déjà fait, suivez la procédure de démarrage avant de continuer.
Création d'un registre d'appareils
Pour utiliser Cloud IoT Core, vous devez créer au moins un registre d'appareils. Vous pouvez créer un registre à l'aide de la console Google Cloud, de l'API ou de gcloud.
Console
- Accédez à la page Registres dans Google Cloud Console.
En haut de la page, cliquez sur Créer un registre.
Saisissez un ID de registre et sélectionnez une région cloud. Pour en savoir plus sur les règles de dénomination et de taille des registres, consultez Caractères et tailles autorisés.
Sélectionnez les protocoles que les appareils de ce registre utiliseront pour se connecter à Cloud IoT Core : MQTT, HTTP ou les deux.
Sélectionnez un sujet de télémétrie par défaut ou créez-en un.
Le sujet par défaut est utilisé pour les événements de télémétrie publiés qui n'ont pas de sous-dossier, ou si le sous-dossier utilisé n'a pas de sujet Cloud Pub/Sub correspondant.
(Facultatif) Si vous souhaitez publier des flux de données distincts depuis un appareil, ajoutez d'autres sujets de télémétrie.
Chaque sujet est mappé sur un sous-dossier spécifié dans le chemin d'accès au sujet MQTT ou dans la requête HTTP lors de la publication des données.
Pour créer des sujets de télémétrie supplémentaires, procédez comme suit :
a. Cliquez sur Ajouter d'autres sujets de télémétrie, puis sur Ajouter un sujet et un sous-dossier.
b. Sélectionnez un sujet Pub/Sub ou créez-en un.
c. Saisissez un nom descriptif pour le sous-dossier.
Pour en savoir plus sur les règles de dénomination et de taille des sous-dossiers, consultez la section Caractères et taille autorisés.
(Facultatif) Sélectionnez un thème de l'état de l'appareil ou créez-en un. Ce sujet peut être identique à un sujet de télémétrie ou ne peut être utilisé que pour des données d'état.
Les données d'état sont publiées dans Cloud Pub/Sub de la façon la plus optimale possible. Si la publication dans le sujet échoue, aucune nouvelle tentative ne sera effectuée. Si aucun sujet n'est défini, les mises à jour de l'état des appareils sont toujours conservées en interne par Cloud IoT Core, mais seuls les 10 derniers états sont conservés.
Pour en savoir plus, consultez Obtenir l'état de l'appareil.
Cliquez sur Create (Créer) pour continuer.
gcloud
Pour créer un registre, exécutez la commande 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]
Dans la version actuelle de Cloud IoT Core, les régions disponibles sont us-central1
, europe-west1
et asia-east1
.
Vous pouvez utiliser les options --enable-http-config
et --enable-mqtt-config
pour activer et désactiver les protocoles du registre. Par défaut, les deux protocoles sont activés.
Vous pouvez spécifier plusieurs sujets Pub/Sub et leurs sous-dossiers correspondants en répétant l'option --event-notification-config
. Si vous spécifiez plusieurs sujets Pub/Sub, vous devez sélectionner un sujet par défaut auquel aucun sous-dossier n'est associé. Ce sujet par défaut sera utilisé pour les événements de télémétrie publiés qui n'ont pas de sous-dossier, ou si le sous-dossier utilisé n'a pas de sujet Pub/Sub correspondant. Si vous ne sélectionnez pas de sujet par défaut, ces événements de télémétrie seront perdus.
API
Utilisez la méthode create
de DeviceRegistry pour créer un registre :
C#
Pour obtenir un exemple deCreateAuthorizedClient
, consultez la page Authentifier des applications.
Go
Java
Node.js
Pour obtenir un exemple degetClient
, consultez la page Authentifier des applications.
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python. Pour obtenir un exemple deget client
, consultez la page Authentifier des applications.
Ruby
Rôle IAM pour la publication Pub/Sub
La première fois que vous activez l'API Cloud IoT Core pour un projet, un nouveau compte de service se voit automatiquement attribuer un rôle (cloudiot.serviceAgent
), qui autorise la publication sur tous les sujets Pub/Sub définis dans les registres du projet. Si vous supprimez ultérieurement ce rôle par défaut du compte de service du projet concerné, vous risquez de rencontrer des erreurs. Pour plus de détails, consultez Dépannage.
Créer un registre d'appareils avec plusieurs sujets Pub/Sub
Comme indiqué sur la page Créer un registre d'appareils, vous devez créer au moins un registre d'appareils pour utiliser Cloud IoT Core. Un registre peut avoir un ou plusieurs sujets Pub/Sub sur lesquels les appareils du registre peuvent publier des données.
Vous pouvez combiner des sujets Pub/Sub avec des sous-dossiers MQTT/HTTP pour publier des événements de télémétrie dans des sujets distincts. Chaque sujet est mappé à un sous-dossier. Ainsi, lorsque vous publiez des données dans le sous-dossier, elles sont transférées vers le sujet. Par exemple, vous pouvez disposer d'un appareil qui publie plusieurs types de données, tels que la température, l'humidité et les données de journalisation. En dirigeant ces flux de données vers leurs propres sujets, vous n'avez plus besoin de séparer les données en différentes catégories après la publication.
Vous pouvez mapper un seul sujet Pub/Sub sur plusieurs sous-dossiers, mais l'inverse n'est pas vrai. Chaque sous-dossier doit être unique et un seul sous-dossier ne peut pas être mappé vers des sujets différents.
Pour en savoir plus sur la publication dans des sujets Pub/Sub distincts, consultez les sections Utiliser le pont MQTT et Utiliser le pont HTTP.
Créer des paires de clés d'appareil
Avant de créer un appareil, créez une paire de clés publique/privée pour celui-ci. Lors de la connexion à Cloud IoT Core, chaque appareil crée un jeton Web JSON (JWT) signé avec sa clé privée, que Cloud IoT Core authentifie à l'aide de la clé publique de l'appareil.
Créer ou modifier un appareil
Vous pouvez créer ou modifier un appareil à l'aide de la console Google Cloud, de l'API ou de gcloud. Assurez-vous d'avoir créé un registre et une paire de clés avant de suivre la procédure décrite dans cette section.
Console
- Accédez à la page Registres dans Google Cloud Console.
Cliquez sur l'ID du registre de l'appareil.
Dans le menu de registre sur la gauche, cliquez sur Appareils.
Cliquez sur Créer un appareil.
Pour modifier un appareil existant, cliquez sur son identifiant sur la page Appareils, puis sur Modifier l'appareil en haut de la page.
Saisissez un ID d'appareil décrivant brièvement l'appareil ou permettant de l'identifier. (Vous ne pourrez plus modifier ce champ.) Pour en savoir plus sur les règles relatives aux noms et à la taille des appareils, consultez Caractères et tailles autorisés.
Pour Communication sur l'appareil, sélectionnez Autoriser ou Bloquer. Cette option vous permet de bloquer la communication si nécessaire, par exemple lorsqu'un appareil ne fonctionne pas correctement. Dans la plupart des cas, il est préférable d'autoriser la communication lors de la création de l'appareil.
Si vous créez un appareil, sélectionnez la Méthode d'entrée que vous souhaitez utiliser pour saisir la clé publique :
- Manuel : copiez et collez la clé publique dans le champ Valeur de la clé publique.
- Importer : dans le champ Valeur de la clé publique, cliquez sur Parcourir pour sélectionner un fichier sur votre ordinateur.
Sélectionnez le format de clé publique correspondant à la paire de clés pour cet appareil. Collez le certificat ou la clé dans le champ Valeur de la clé publique. Vous pouvez également définir une date d'expiration pour la clé.
Pour ajouter une clé à un appareil existant, cliquez sur Ajouter une clé publique sur la page Détails de l'appareil.
Utilisez les champs Clé et Valeur pour ajouter des métadonnées d'appareil facultatives, telles qu'un numéro de série. Pour en savoir plus sur les exigences concernant la taille et l'attribution de noms aux paires valeur/clé pour les métadonnées, consultez Caractères et tailles autorisés.
Sélectionnez un niveau Cloud Logging pour déterminer quels événements d'appareils sont envoyés à Cloud Logging.
Cliquez sur Créer pour créer l'appareil ou sur Mettre à jour pour enregistrer les modifications apportées à un appareil existant.
gcloud
Pour créer un appareil, exécutez la commande gcloud iot devices create
.
Pour créer un appareil avec une clé publique RSA, exécutez la commande suivante :
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=rsa_public.pem,type=rsa-pem
Pour créer un appareil avec un certificat de clé publique RSA, exécutez la commande suivante :
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=rsa_public.pem,type=rsa-x509-pem
Pour créer un appareil avec une clé publique ES256, exécutez la commande suivante :
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=ec_public.pem,type=es256-pem
Pour créer un appareil avec un certificat de clé publique ES256, exécutez la commande suivante :
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=ec_public.pem,type=es256-x509-pem
Pour modifier un appareil, exécutez la commande gcloud iot devices update
:
gcloud iot devices update DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \
API
Utilisez les méthodes suivantes pour créer ou modifier des appareils :
- Méthode
create
de l'appareil pour ajouter des appareils aux registres - Méthode
patch
de l'appareil pour modifier des appareils existants
Lors de la création d'un appareil, les clés publiques sont spécifiées dans le champ credentials
de la ressource Device
dans l'API Cloud IoT Core. Vous pouvez également ajouter ou modifier ce champ lorsque vous mettez à jour la ressource de l'appareil. Si un ou plusieurs certificats au niveau du registre sont présents lors de l'ajout d'un identifiant d'appareil (soit par la création d'un appareil, soit par le biais de modifications), l'identifiant de clé publique doit être signé par l'un des certificats enregistrés au niveau du registre. Pour en savoir plus, consultez DeviceCredential
dans la ressource "Appareil".
Pour RSA, le champ Device.credentials[i].public_key.key
doit être défini sur le contenu de rsa_cert.pem
(y compris l'en-tête et le pied de page). Le champ Device.credentials[i].public_key.format
doit être défini sur RSA_PEM
ou RSA_X509_PEM
.
Pour ES256, le champ Device.credentials[i].public_key.key
doit être défini sur le contenu de ec_public.pem
(y compris l'en-tête et le pied de page). Le champ Device.credentials[i].public_key.format
doit être défini sur ES256_PEM
ou ES256_X509_PEM
.
L'exemple suivant montre comment créer un appareil avec des identifiants RSA :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
L'exemple suivant montre comment créer un appareil avec des identifiants à courbe elliptique (EC) :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
L'exemple suivant montre comment appliquer des correctifs aux identifiants RSA :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
Pour voir d'autres exemples de code, consultez les exemples de gestion des appareils.
Dates d'expiration des identifiants et des certificats
Lorsque vous créez un appareil et ajoutez une clé publique, vous pouvez définir une date d'expiration pour cette clé. Si la clé a été générée avec un certificat X.509 autosigné, celui-ci possède également une date d'expiration. Cependant, ces deux dates d'expiration sont distinctes.
Si la clé expire ou si le certificat X.509 autosigné sur celle-ci expire, l'appareil ne pourra plus se connecter à Cloud IoT Core. De plus, si vous essayez de créer ou de mettre à jour un appareil avec un certificat X.509 arrivé à expiration, Cloud IoT Core renvoie une erreur.
Obtenir des informations sur l'appareil
Vous pouvez obtenir des informations sur un ou plusieurs appareils à l'aide de la console Google Cloud, de l'API ou de gcloud.
Console
- Accédez à la page Registres dans Google Cloud Console.
Cliquez sur l'ID du registre de l'appareil.
Dans le menu de gauche, cliquez sur Appareils.
Cliquez sur l'ID de l'appareil pour accéder à la page Détails de l'appareil. Cette page récapitule l'activité récente de l'appareil, y compris la date de la dernière publication d'un message et l'heure de l'erreur la plus récente. Cette page affiche également l'ID numérique de l'appareil.
Cliquez sur l'onglet Configuration et historique des états pour afficher les versions récentes de la configuration et les heures de mise à jour de l'appareil.
Les champs correspondant à la dernière pulsation et à la dernière confirmation de confirmation d'une configuration ne concernent que le pont MQTT. Le pont HTTP n'est pas compatible avec les pulsations explicites ou explicites.
gcloud
Pour répertorier les appareils d'un registre, exécutez la commande gcloud iot devices list
:
gcloud iot devices list \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Pour afficher les détails d'un appareil, exécutez la commande gcloud iot devices describe
:
gcloud iot devices describe DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
API
Utilisez les méthodes suivantes pour obtenir des détails sur les appareils :
- Méthode
list
de l'appareil pour répertorier les appareils d'un registre - Méthode
get
de l'appareil pour obtenir des informations sur un appareil - Méthode
states.list
de l'appareil pour répertorier les dernières versions de l'état de l'appareil par ordre décroissant
L'exemple suivant montre comment répertorier les appareils d'un registre :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
L'exemple suivant montre comment récupérer un appareil et ses métadonnées à partir d'un registre d'appareils :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
L'exemple suivant montre comment récupérer l'état d'un appareil à partir d'un registre d'appareils :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
Pour voir d'autres exemples de code, consultez les exemples de gestion des appareils.
Supprimer des appareils et des registres
Vous pouvez supprimer des appareils et des registres à l'aide de la console Google Cloud, de l'API ou de gcloud. Pour supprimer un registre, supprimez d'abord tous les appareils qu'il contient.
Console
Vous pouvez supprimer un ou plusieurs appareils de la liste d'appareils du registre.
Pour supprimer des appareils :
- Accédez à la page Registres dans Google Cloud Console.
Cliquez sur l'ID du registre de l'appareil.
Dans le menu de gauche, cliquez sur Appareils.
Sélectionnez chaque appareil à supprimer, puis cliquez sur Supprimer.
Confirmez que vous souhaitez supprimer les appareils sélectionnés, puis cliquez sur Supprimer.
gcloud
Pour supprimer un appareil, exécutez la commande gcloud iot devices delete
:
gcloud iot devices delete DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Pour supprimer un registre, exécutez la commande gcloud iot registries delete
:
gcloud iot registries delete REGISTRY_ID \ --project=PROJECT_ID \ --region=REGION
API
Utilisez les méthodes suivantes pour supprimer des appareils et des registres :
- Méthode
delete
de l'appareil pour supprimer un appareil - Méthode
delete
des registres pour supprimer un registre
L'exemple suivant montre comment supprimer un appareil d'un registre :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
L'exemple suivant montre comment supprimer un registre :
C#
Go
Java
Node.js
PHP
Python
Cet exemple utilise la bibliothèque cliente des API Google pour Python.Ruby
Pour obtenir d'autres exemples de code, consultez les pages Exemples de gestion du registre et Exemples de gestion des appareils.
Étapes suivantes
- Connecter un appareil via MQTT ou HTTP
- Consulter les quotas et les limites de Cloud IoT Core