Questa pagina spiega come creare, modificare ed eliminare i registri dispositivi e i dispositivi al loro interno.
Un dispositivo è un'unità di elaborazione in grado di connettersi a Internet (direttamente o indirettamente) e di scambiare dati con il cloud. Un registro dispositivi è un contenitore di dispositivi con proprietà condivise. Per maggiori dettagli su dispositivi e registry, vedi Dispositivi.
Se non lo hai ancora fatto, completa i passaggi Come iniziare prima di procedere.
Creazione di un registro dispositivi
Per utilizzare Cloud IoT Core, devi creare almeno un registro dispositivi. Puoi creare un registro utilizzando la console, l'API o gcloud.
console
- Vai alla pagina Registry della console.
Nella parte superiore della pagina, fai clic su Crea un registro.
Inserisci un ID registro e seleziona un'area geografica cloud. Per informazioni sulla denominazione dei registry e sui requisiti relativi alle dimensioni, consulta i requisiti consentiti per i caratteri e le dimensioni.
Seleziona i Protocolli che i dispositivi in questo registro utilizzeranno per connettersi a Cloud IoT Core: MQTT, HTTP o entrambi.
Seleziona un argomento di telemetria predefinito o creane uno nuovo.
L'argomento predefinito viene utilizzato per gli eventi di telemetria pubblicati che non hanno una sottocartella o se la sottocartella utilizzata non ha un argomento Cloud Pub/Sub corrispondente.
(Facoltativo) Se vuoi pubblicare stream di dati separati da un dispositivo, aggiungi altri argomenti di telemetria.
Ogni argomento viene mappato a una sottocartella specificata nel percorso dell'argomento MQTT o nella richiesta HTTP quando i dati vengono pubblicati.
Per creare altri argomenti di telemetria:
a. Fai clic su Aggiungi altri argomenti di telemetria, poi su Aggiungi argomento e sottocartella.
b. Seleziona un argomento Pub/Sub o creane uno nuovo.
c. Inserisci un nome descrittivo per la sottocartella.
Per informazioni sui nomi delle sottocartelle e sui requisiti delle dimensioni, consulta i requisiti consentiti per i caratteri e le dimensioni.
(Facoltativo) Seleziona un argomento Stato dispositivo o creane uno nuovo. Questo argomento può essere uguale a un argomento di telemetria o può essere utilizzato solo per dati statali.
I dati relativi allo stato vengono pubblicati su Cloud Pub/Sub secondo il criterio migliore: se la pubblicazione nell'argomento non va a buon fine, non verrà eseguito un nuovo tentativo. Se non viene definito alcun argomento, gli aggiornamenti dello stato del dispositivo vengono mantenuti in modo interno da Cloud IoT Core, ma vengono conservati solo gli ultimi dieci stati.
Per saperne di più, vedi Recuperare lo stato del dispositivo.
Fai clic su Crea per continuare.
gcloud
Per creare un registro, esegui il 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]
Nell'attuale release di Cloud IoT Core, le aree geografiche disponibili sono us-central1
, europe-west1
e asia-east1
.
Puoi utilizzare i flag --enable-http-config
e --enable-mqtt-config
per attivare e disattivare i protocolli per il Registro di sistema. Per impostazione predefinita, entrambi i protocolli sono abilitati.
Puoi specificare più argomenti Pub/Sub e le relative sottocartelle ripetendo il flag --event-notification-config
. Se specifichi più argomenti Pub/Sub, devi selezionare un argomento predefinito senza sottocartella. Questo argomento predefinito verrà utilizzato per gli eventi di telemetria pubblicati che non hanno una sottocartella o se la sottocartella utilizzata non ha un argomento Pub/Sub corrispondente. Se non selezioni un argomento predefinito, questi eventi di telemetria andranno persi.
Server
Utilizza il metodo create
DeviceRegistry per creare un registro:
C#
Per un esempio diCreateAuthorizedClient
, consulta la sezione Autenticazione delle applicazioni.
Vai
Java
Node.js
Per un esempio digetClient
, consulta la sezione Autenticazione delle applicazioni.
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python. Per un esempio diget client
, consulta la sezione Autenticazione delle applicazioni.
Ruby
Ruolo IAM per la pubblicazione Pub/Sub
Quando abiliti l'API Cloud IoT Core per un progetto per la prima volta, a un nuovo account di servizio per il progetto viene assegnato automaticamente un ruolo (cloudiot.serviceAgent
) che consente la pubblicazione per tutti gli argomenti Pub/Sub definiti nei registry all'interno del progetto. Se in seguito rimuovi questo ruolo predefinito dall'account di servizio del progetto pertinente, potrebbero verificarsi errori. Per maggiori dettagli,
consulta la sezione Risoluzione dei problemi.
Creazione di un registro dispositivi con più argomenti Pub/Sub
Come indicato in Creazione di un registro dispositivi, per utilizzare Cloud IoT Core è necessario creare almeno un registro dispositivi. Un registro può avere uno o più argomenti Pub/Sub in cui i dispositivi possono pubblicare dati.
Puoi combinare argomenti Pub/Sub con sottocartelle MQTT/HTTP per pubblicare eventi di telemetria in argomenti distinti. Ogni argomento viene mappato a una sottocartella, quindi, quando pubblichi dati nella sottocartella, viene inoltrato all'argomento. Ad esempio, potresti avere un dispositivo che pubblica più tipi di dati, come dati di temperatura, umidità e logging. Puntando questi stream di dati ai loro singoli argomenti, puoi eliminare la necessità di separare i dati in diverse categorie dopo la pubblicazione.
Puoi mappare un singolo argomento Pub/Sub a più sottocartelle, ma il contrario non è vero; ogni sottocartella deve essere unica e non può essere mappata per argomenti diversi.
Per informazioni dettagliate sulla pubblicazione per argomenti Pub/Sub separati, consulta le sezioni Utilizzo del bridge MQTT e utilizzo del bridge HTTP.
Creazione di coppie di chiavi per dispositivo in corso...
Prima di creare un dispositivo, crea una coppia di chiavi pubblica/privata. Quando ti connetti a Cloud IoT Core, ogni dispositivo crea un JSON Web Token (JWT) firmato con la sua chiave privata, che Cloud IoT Core autentica utilizzando la chiave pubblica del dispositivo.
Creazione o modifica di un dispositivo
Puoi creare un dispositivo o modificarne uno esistente utilizzando la console, l'API o gcloud. Assicurati di aver creato un registro e una coppia di chiavi prima di completare i passaggi di questa sezione.
console
- Vai alla pagina Registry della console.
Fai clic sull'ID del registry del dispositivo.
Nel menu del Registro di sistema a sinistra, fai clic su Dispositivi.
Fai clic su Crea un dispositivo.
Per modificare un dispositivo esistente, fai clic sul suo ID nella pagina Dispositivi, quindi fai clic su Modifica dispositivo nella parte superiore della pagina.
Inserisci un ID dispositivo che descriva brevemente il dispositivo o ti aiuti a identificarlo in altro modo. Questo campo non può essere modificato in un secondo momento. Per informazioni sui nomi dei dispositivi e sui requisiti relativi alle dimensioni, consulta i requisiti consentiti per i caratteri e le dimensioni.
In Comunicazione del dispositivo, seleziona Consenti o Blocca. Questa opzione consente di bloccare la comunicazione quando necessario, ad esempio quando un dispositivo non funziona correttamente. Nella maggior parte dei casi, è consigliabile consentire la comunicazione durante la creazione iniziale del dispositivo.
Se stai creando un nuovo dispositivo, seleziona il metodo di immissione che vuoi utilizzare per inserire la chiave pubblica:
- Manuale:copia e incolla la chiave pubblica nel campo Valore chiave pubblica.
- Caricamento: nel campo Valore chiave pubblica, fai clic su Sfoglia per selezionare un file sul computer.
Seleziona il formato chiave pubblica corrispondente alla coppia di chiavi per questo dispositivo. Incolla il certificato o la chiave nel campo Valore chiave pubblica. Puoi anche impostare una data di scadenza per la chiave.
Per aggiungere una chiave a un dispositivo esistente, fai clic su Aggiungi chiave pubblica nella pagina Dettagli dispositivo.
Utilizza i campi Chiave e Valore per aggiungere metadati del dispositivo facoltativi, ad esempio un numero di serie. Per informazioni sui nomi delle coppie chiave-valore e sulle dimensioni dei metadati, consulta i requisiti consentiti per le dimensioni e i caratteri.
Seleziona un livello Cloud Logging per determinare quali eventi del dispositivo vengono inviati a Cloud Logging.
Fai clic su Crea per creare il dispositivo o su Aggiorna per salvare le modifiche su un dispositivo esistente.
gcloud
Per creare un dispositivo, esegui il comando gcloud iot devices create
.
Per creare un dispositivo con una chiave pubblica RSA, esegui il comando seguente:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=rsa_public.pem,type=rsa-pem
Per creare un dispositivo con un certificato di chiave pubblica RSA, esegui il comando seguente:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=rsa_public.pem,type=rsa-x509-pem
Per creare un dispositivo con una chiave pubblica ES256, esegui il comando seguente:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=ec_public.pem,type=es256-pem
Per creare un dispositivo con un certificato per la chiave pubblica ES256, esegui il comando seguente:
gcloud iot devices create DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \ --public-key path=ec_public.pem,type=es256-x509-pem
Per modificare un dispositivo, esegui il comando gcloud iot devices update
:
gcloud iot devices update DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \
Server
Utilizza i seguenti metodi per creare o modificare i dispositivi:
- Metodo
create
dispositivo per aggiungere dispositivi ai registry - Metodo
patch
dispositivo per modificare i dispositivi esistenti
Quando crei un dispositivo, le chiavi pubbliche vengono specificate nel campo credentials
della risorsa Device
nell'API Cloud IoT Core. Puoi anche aggiungere o modificare questo campo quando aggiorni la risorsa del dispositivo. Se sono presenti uno o più certificati a livello di registro durante l'aggiunta di una nuova credenziale del dispositivo (tramite la creazione o la modifica di dispositivi), la credenziale della chiave pubblica deve essere firmata da uno dei certificati a livello di registro. Per ulteriori informazioni, consulta DeviceCredential
nella risorsa Dispositivo.
Per RSA, il campoDevice.credentials[i].public_key.key
deve essere impostato sui contenuti di rsa_cert.pem
(inclusi l'intestazione e il piè di pagina). Il campo Device.credentials[i].public_key.format
deve essere impostato su RSA_PEM
o RSA_X509_PEM
.
Per ES256, il campo Device.credentials[i].public_key.key
deve essere impostato sui contenuti di ec_public.pem
(incluse l'intestazione e il piè di pagina). Il campo Device.credentials[i].public_key.format
deve essere impostato su ES256_PEM
o ES256_X509_PEM
.
L'esempio seguente mostra come creare un dispositivo con credenziali RSA:
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
L'esempio seguente mostra come creare un dispositivo con credenziali dell'ellittica (EC):
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
L'esempio seguente mostra come applicare patch a un dispositivo con le credenziali RSA:
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
Per ulteriori esempi di codice, consulta Esempi di gestione dei dispositivi.
Date di scadenza di credenziali e certificati
Quando crei un dispositivo e aggiungi una chiave pubblica, puoi impostare una data di scadenza per la chiave. Se la chiave è stata generata con un certificato X.509 autofirmato, anche il certificato ha una data di scadenza. Tuttavia, queste due date di scadenza sono separate.
Se la chiave scade o il certificato X.509 autofirmato sulla chiave scade, il dispositivo non potrà connettersi a Cloud IoT Core. Inoltre, se provi a creare o aggiornare un dispositivo con un certificato X.509 scaduto, Cloud IoT Core restituisce un errore.
Recupero dei dettagli del dispositivo in corso...
Per visualizzare i dettagli di uno o più dispositivi, puoi utilizzare la console, l'API o gcloud.
console
- Vai alla pagina Registry della console.
Fai clic sull'ID del registry del dispositivo.
Nel menu a sinistra, fai clic su Dispositivi.
Fai clic sull'ID del dispositivo per andare alla pagina Dettagli dispositivo. In questa pagina vengono riepilogate le attività recenti del dispositivo, inclusa l'ultima pubblicazione di un messaggio e l'ora dell'errore più recente. In questa pagina viene mostrato anche l'ID numerico del dispositivo.
Fai clic sulla scheda Configurazione &cronologia dello stato per visualizzare le versioni recenti della configurazione e i tempi di aggiornamento del dispositivo.
I campi relativi all'ultimo battito cardiaco e all'ultima volta che una configurazione è stata compromessa sono inclusi solo per il bridge MQTT. Il bridge HTTP non supporta ACK heartbeat o ACK espliciti.
gcloud
Per elencare i dispositivi in un registro, esegui il comando gcloud iot devices list
:
gcloud iot devices list \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Per ricevere dettagli su un dispositivo, esegui il comando gcloud iot devices describe
:
gcloud iot devices describe DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Server
Utilizza i seguenti metodi per ottenere informazioni dettagliate sui dispositivi:
- Metodo
list
dispositivo per elencare i dispositivi in un registro - Metodo
get
per ricevere informazioni dettagliate sul dispositivo - Metodo
states.list
del dispositivo per elencare le ultime versioni dello stato del dispositivo in ordine decrescente
L'esempio seguente mostra come elencare i dispositivi in un registro:
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
L'esempio seguente mostra come recuperare un dispositivo e i relativi metadati da un registro dispositivi:
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
L'esempio seguente mostra come recuperare lo stato del dispositivo da un registro dispositivi:
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
Per ulteriori esempi di codice, consulta Esempi di gestione dei dispositivi.
Eliminazione di dispositivi e registry
Puoi eliminare dispositivi e registry utilizzando la console, l'API o gcloud. Per eliminare un registro, devi prima eliminare tutti i dispositivi che contiene.
console
Puoi eliminare uno o più dispositivi dall'elenco dei dispositivi del Registro di sistema.
Per eliminare dispositivi:
- Vai alla pagina Registry della console.
Fai clic sull'ID del registry del dispositivo.
Nel menu a sinistra, fai clic su Dispositivi.
Seleziona i dispositivi da eliminare, quindi fai clic su Elimina.
Conferma di voler eliminare i dispositivi selezionati, quindi fai clic su Elimina.
gcloud
Per eliminare un dispositivo, esegui il comando gcloud iot devices delete
:
gcloud iot devices delete DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Per eliminare un registro, esegui il comando gcloud iot registries delete
:
gcloud iot registries delete REGISTRY_ID \ --project=PROJECT_ID \ --region=REGION
Server
Utilizza i seguenti metodi per eliminare dispositivi e registry:
- Metodo
delete
per eliminare un dispositivo. - Metodo
delete
Registri per eliminare un registro
L'esempio seguente mostra come eliminare un dispositivo da un registro:
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
L'esempio seguente mostra come eliminare un registro:
C#
Vai
Java
Node.js
PHP
Python
Questo esempio utilizza la libreria client delle API di Google per Python.Ruby
Per altri esempi di codice, consulta gli esempi di gestione del Registro di sistema e gli esempi di gestione dei dispositivi.
Passaggi successivi
- Collegare un dispositivo tramite MQTT o HTTP
- Esamina le quote e i limiti di Cloud IoT Core