Esta página explica como criar, editar e excluir registros de dispositivos e dispositivos dentro deles.
Um dispositivo é um "elemento" da "Internet das Coisas", uma unidade de processamento capaz de se conectar à Internet (direta ou indiretamente) e trocar dados com a nuvem. Um registro de dispositivo é um contêiner de dispositivos com propriedades compartilhadas. Para mais detalhes sobre dispositivos e registros, consulte Dispositivos.
Se você ainda não tiver feito isso, conclua as etapas de Primeiros passos antes de continuar.
como criar um registro de dispositivos
Para usar o Cloud IoT Core, você precisa criar pelo menos um registro de dispositivo. É possível criar um registro usando o console do Google Cloud, a API ou a gcloud.
Console
- Acesse a página Registros no Console do Google Cloud.
Na parte superior da página, clique em Criar um registro.
Digite um ID do registro e selecione uma região da nuvem. Saiba mais sobre requisitos de nome e tamanho de registro em Requisitos de caracteres e tamanho permitidos.
Selecione os Protocolos que os dispositivos neste registro usarão para se conectar ao Cloud IoT Core: MQTT, HTTP ou ambos.
Selecione um tópico de telemetria padrão ou crie um novo.
O tópico padrão é usado para eventos de telemetria publicados que não têm uma subpasta ou se a subpasta usada não tem um tópico do Cloud Pub/Sub correspondente.
(Opcional) Se você quiser publicar fluxos separados de dados de um dispositivo, adicione mais tópicos de telemetria.
Cada tópico é mapeado para uma subpasta especificada no caminho do tópico MQTT ou na solicitação HTTP quando os dados são publicados.
Para criar outros tópicos de telemetria:
a. Clique em Adicionar mais tópicos de telemetria e, em seguida, clique em Adicionar tópico e subpasta.
b. Selecione um tópico do Pub/Sub ou crie um novo.
c. Digite um nome de subpasta descritivo.
Para informações sobre nomes de subpastas e requisitos de tamanho, consulte Requisitos de caracteres e tamanhos permitidos.
(Opcional) Selecione um Tópico de estado do dispositivo ou crie um novo. Este tópico pode ser igual a um tópico de telemetria ou pode ser usado apenas para dados de estado.
Os dados de estado são publicados no Cloud Pub/Sub com base no melhor esforço: se a publicação no tópico falhar, ela não será repetida. Se nenhum tópico for definido, as atualizações de estado do dispositivo serão mantidas internamente pelo Cloud IoT Core, mas somente os últimos 10 estados serão mantidos.
Para mais informações, consulte Como saber o estado do dispositivo.
Clique em Criar para continuar.
gcloud
Para criar um registro, execute o 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]
Na versão atual do Cloud IoT Core, as regiões disponíveis são us-central1
, europe-west1
e asia-east1
.
É possível usar as sinalizações --enable-http-config
e --enable-mqtt-config
para ativar e desativar protocolos para o registro. Por padrão, os dois protocolos estão ativados.
É possível especificar vários tópicos do Pub/Sub e as subpastas correspondentes repetindo a sinalização --event-notification-config
. Se você especificar vários tópicos do Pub/Sub, selecione um tópico padrão que não tenha subpastas. Este tópico padrão será usado para eventos de telemetria publicados que não têm uma subpasta ou se a subpasta usada não tem um tópico do Pub/Sub correspondente. Se você não selecionar um tópico padrão, esses eventos de telemetria serão perdidos.
API
Use o método create
do DeviceRegistry para criar um registro:
C#
Para uma amostra deCreateAuthorizedClient
, consulte Como autenticar aplicativos.
Go
Java
Node.js
Para uma amostra degetClient
, consulte Como autenticar aplicativos.
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python. Para uma amostra deget client
, consulte Como autenticar aplicativos.
Ruby
Papel de IAM para publicação do Pub/Sub
Quando você ativa a API Cloud IoT Core para um projeto pela primeira vez, uma nova conta
de serviço do projeto
recebe automaticamente um papel (cloudiot.serviceAgent
) que permite
a publicação. a todos os tópicos do Pub/Sub definidos nos registros do projeto. Remover esse papel padrão da conta de serviço do projeto relevante posteriormente pode causar erros. Veja detalhes em
Solução de problemas.
Como criar um registro de dispositivo com vários tópicos do Pub/Sub
Conforme observado em Como criar um registro de dispositivo, você precisa criar pelo menos um registro de dispositivo para usar o Cloud IoT Core. Um registro pode ter um ou mais tópicos do Pub/Sub em que os dispositivos no registro podem publicar dados.
É possível combinar tópicos do Pub/Sub com subpastas MQTT/HTTP para publicar eventos de telemetria em tópicos separados. Cada tópico é mapeado para uma subpasta. Portanto, quando você publica dados para a subpasta, ele é encaminhado para o tópico. Por exemplo, imagine que você tem um dispositivo que publica vários tipos de dados, como temperatura, umidade e dados de registros. Ao direcionar esses streams de dados para os próprios tópicos Pub/Sub, você elimina a necessidade de separar os dados em diferentes categorias após a publicação.
É possível mapear um único tópico do Pub/Sub para várias subpastas, mas o inverso não é verdadeiro. Cada subpasta precisa ser exclusiva e não é possível mapear uma subpasta para tópicos diferentes.
Para informações detalhadas sobre a publicação em tópicos separados do Pub/Sub, consulte as seções sobre como usar a ponte MQTT e como usar a ponte HTTP.
Como criar pares de chaves do dispositivo
Antes de criar um dispositivo, primeiro crie um par de chaves pública/privada para ele. Ao se conectar ao Cloud IoT Core, cada dispositivo cria um JSON Web Token (JWT) assinado com a chave privada, que o Cloud IoT Core autentica usando a chave pública do dispositivo.
Criar ou editar um dispositivo
É possível criar um dispositivo ou editar um existente usando o console do Google Cloud, a API ou a gcloud. Verifique se você criou um registro e um par de chaves antes de concluir as etapas desta seção.
Console
- Acesse a página Registros no Console do Google Cloud.
Clique no ID do registro do dispositivo.
No menu de registro à esquerda, clique em Dispositivos.
Clique em Criar um dispositivo.
Para editar um dispositivo, clique no código dele na página Dispositivos e, depois, em Editar dispositivo na parte superior da página.
Digite um Código do dispositivo que descreva o dispositivo brevemente ou que ajude a identificá-lo. Não será possível editar esse campo mais tarde. Para saber mais sobre as exigências do tamanho para nomes e dispositivos, consulte Requisitos de caracteres e tamanhos permitidos.
Em Comunicação do dispositivo, selecione Permitir ou Bloquear. Essa opção permite bloquear a comunicação quando necessário, como quando um dispositivo não está funcionando corretamente. Na maioria dos casos, convém permitir a comunicação ao criar o dispositivo pela primeira vez.
Se estiver criando um novo dispositivo, selecione o Método de entrada que você quer usar para inserir a chave pública:
- Manual: copie e cole a chave pública no campo Valor da chave pública.
- Upload:no campo Valor da chave pública, clique em Procurar para selecionar um arquivo no seu computador.
Selecione o Formato da chave pública que corresponde ao par de chaves deste dispositivo. Cole o certificado ou a chave no campo Valor da chave pública. Também é possível definir uma data de validade para a chave.
Para adicionar uma chave a um dispositivo, clique em Adicionar chave pública na página Detalhes do dispositivo.
Use os campos Chave e Valor para adicionar metadados do dispositivo opcionais, como um número de série. Para informações sobre requisitos de tamanho e nomenclatura de chave-valor de metadados, consulte Requisitos de caracteres e tamanho permitidos.
Selecione um nível do Cloud Logging para determinar quais eventos do dispositivo são enviados para o Cloud Logging.
Clique em Criar para criar o dispositivo ou Atualizar para salvar as alterações em um dispositivo.
gcloud
Para criar um dispositivo, execute o comando gcloud iot devices create
.
Para criar um dispositivo com uma chave pública RSA, execute o seguinte 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 criar um dispositivo com um certificado de chave pública RSA, execute o seguinte 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 criar um dispositivo com uma chave pública ES256, execute o seguinte 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 criar um dispositivo com um certificado de chave pública ES256, execute o seguinte 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 um dispositivo, execute o comando gcloud iot devices update
:
gcloud iot devices update DEVICE_ID \ --project=PROJECT_ID \ --region=REGION \ --registry=REGISTRY_ID \
API
Use os seguintes métodos para criar ou editar dispositivos:
- Método
create
do dispositivo para adicionar dispositivos aos registros - Método
patch
do dispositivo para editar dispositivos existentes
Ao criar um dispositivo, as chaves públicas são especificadas no campo credentials
do recurso Device
na API Cloud IoT Core. Também é possível adicionar ou modificar esse campo ao atualizar o recurso do dispositivo. Se um ou mais certificados no nível do registro estiverem presentes ao adicionar uma nova credencial do dispositivo (por meio de criação ou de modificações), a credencial da chave pública precisa ser assinada por um dos certificados no nível do registro. Consulte DeviceCredential
no recurso Dispositivo para ver mais informações.
Para RSAs, o campo Device.credentials[i].public_key.key
precisa ser definido como o conteúdo de rsa_cert.pem
(incluindo o cabeçalho e o rodapé). O campo Device.credentials[i].public_key.format
precisa ser definido como RSA_PEM
ou RSA_X509_PEM
.
Para o ES256, o campo Device.credentials[i].public_key.key
precisa ser definido como o conteúdo de ec_public.pem
(incluindo o cabeçalho e o rodapé). O campo Device.credentials[i].public_key.format
precisa ser definido como ES256_PEM
ou ES256_X509_PEM
.
O exemplo a seguir mostra como criar um dispositivo com credenciais do RSA:
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
O exemplo a seguir mostra como criar um dispositivo com credenciais de curva elíptica (EC):
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
Veja na amostra a seguir como corrigir um dispositivo com credenciais RSA:
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
Consulte Amostras de gerenciamento de dispositivos para ver mais exemplos de código.
Datas de validade de credenciais e certificados
Ao criar um dispositivo e adicionar uma chave pública, é possível definir uma data de validade para a chave. Se a chave foi gerada com um certificado X.509 autoassinado, o próprio certificado também tem uma data de validade. No entanto, essas duas datas de validade são separadas.
Se a chave expirar ou o certificado X.509 autoassinado na chave expirar, o dispositivo não poderá se conectar ao Cloud IoT Core. Além disso, se você tentar criar ou atualizar um dispositivo com um certificado X.509 expirado, o Cloud IoT Core retornará um erro.
Recebendo detalhes do dispositivo
É possível ver detalhes sobre um ou mais dispositivos usando o console do Google Cloud, a API ou a gcloud.
Console
- Acesse a página Registros no Console do Google Cloud.
Clique no ID do registro do dispositivo.
No menu à esquerda, clique em Dispositivos.
Clique no código do dispositivo para acessar a página Detalhes do dispositivo. Esta página resume a atividade recente do dispositivo, incluindo a última vez que uma mensagem foi publicada e a hora do erro mais recente. Essa página também mostra o código numérico do dispositivo.
Clique na guia Histórico de configuração e estado para ver as versões recentes e os horários de atualização do dispositivo.
Os campos referentes ao último sinal de funcionamento e à última vez em que uma configuração foi confirmada são apenas para a ponte MQTT. A ponte HTTP não é compatível com sinais de funcionamento ou ACKs explícitas.
gcloud
Para listar os dispositivos em um registro, execute o comando gcloud iot devices list
:
gcloud iot devices list \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Para ver detalhes sobre um conjunto de dados, execute o comando gcloud iot devices describe
.
gcloud iot devices describe DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
API
Use os seguintes métodos para ver detalhes sobre os dispositivos:
- Método
list
do dispositivo para listar os dispositivos em um registro - Método
get
do dispositivo para ver detalhes sobre um dispositivo - Método
states.list
do dispositivo para listar as últimas versões do estado do dispositivo em ordem decrescente.
Veja na amostra a seguir como listar os dispositivos em um registro:
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
O exemplo a seguir mostra como recuperar um dispositivo e os metadados dele de um registro de dispositivo:
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
O exemplo a seguir mostra como recuperar o estado do dispositivo de um registro de dispositivo:
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
Consulte Amostras de gerenciamento de dispositivos para ver mais exemplos de código.
Como excluir dispositivos e registros
É possível excluir dispositivos e registros usando o console do Google Cloud, a API ou o gcloud. Para excluir um registro, primeiro exclua todos os dispositivos dele.
Console
É possível excluir um ou mais dispositivos da lista de registros do dispositivo.
Para excluir dispositivos, faça o seguinte:
- Acesse a página Registros no Console do Google Cloud.
Clique no ID do registro do dispositivo.
No menu à esquerda, clique em Dispositivos.
Selecione os dispositivos que você quer excluir e clique em Excluir.
Confirme que você quer excluir os dispositivos selecionados e clique em Excluir.
gcloud
Para excluir um dispositivo, execute o comando gcloud iot devices delete
:
gcloud iot devices delete DEVICE_ID \ --project=PROJECT_ID \ --registry=REGISTRY_ID \ --region=REGION
Para excluir um registro, execute o comando gcloud iot registries delete
:
gcloud iot registries delete REGISTRY_ID \ --project=PROJECT_ID \ --region=REGION
API
Use os seguintes métodos para excluir dispositivos e registros:
- Método
delete
do dispositivo para excluir um dispositivo. - Método
delete
de registros para excluir um registro
O exemplo a seguir mostra como excluir um dispositivo de um registro:
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
Veja na amostra a seguir como excluir um registro:
C#
Go
Java
Node.js
PHP
Python
Neste exemplo, usamos a biblioteca de cliente de APIs do Google para Python.Ruby
Consulte as Amostras de gerenciamento de registros e as Amostras de gerenciamento de dispositivos para mais exemplos de código.
A seguir
- Conectar um dispositivo por MQTT ou HTTP
- Analise as cotas e os limites do Cloud IoT Core