创建 IoT Core 设备注册表
本页介绍了如何使用 Google Cloud 控制台创建 Cloud IoT Core 设备注册表和注册设备。还为您展示如何运行一个示例来连接设备并发布设备遥测事件。
如需直接在 Cloud Shell Editor 中按照此任务的分步指南来执行操作,请点击操作演示:
准备工作
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud IoT and Cloud Pub/Sub API。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud IoT and Cloud Pub/Sub API。
设置本地环境并安装必要工具
安装并初始化 gcloud CLI。Cloud IoT Core 需要 173.0.0 或更高版本的 gcloud CLI。
设置 Node.js 开发环境。
或者,您也可以使用 Google Cloud Shell,该工具已安装 gcloud CLI 和 Node.js。
创建设备注册表
- 转到 Google Cloud 控制台中的 Google Cloud IoT Core 页面。
点击创建注册表。
在注册表 ID 部分输入
my-registry
。如果您在美国,请选择 us-central1 作为区域。如果您在美国境外,请选择首选区域。
选择 MQTT 作为协议。
在默认遥测主题下拉列表中,选择创建主题。
在创建主题对话框的名称字段中输入
my-device-events
。点击创建主题对话框中的创建。
设备状态主题和证书值字段是可选的,因此请留空。
点击 Cloud IoT Core 页面上的创建。
您刚刚创建了一个设备注册表,其中包含一个用于发布设备遥测事件的 Cloud Pub/Sub 主题。
创建您的凭据
生成设备密钥对
打开一个终端窗口,并运行以下多行命令以创建 RS256 密钥:
openssl req -x509 -newkey rsa:2048 -keyout rsa_private.pem -nodes \ -out rsa_cert.pem -subj "/CN=unused"
下载根凭据
下载 Google 的 CA 根证书并记下其下载位置。运行下面的 Node.js 命令时,您将需要该文件路径。
在以下部分中,您将向注册表添加设备,并将公钥与设备相关联。
向注册表添加一个设备
在注册表页面上,选择
my-registry
。选择设备标签页,然后点击创建设备。
在设备 ID 部分输入
my-device
。对于设备通信,选择允许。
将公钥信息添加到身份验证字段。
- 将
rsa_cert.pem
的内容复制到剪贴板。请务必添加包含-----BEGIN CERTIFICATE-----
和-----END CERTIFICATE-----
的行。 - 对于公钥格式,选择 RS256_X509。
- 将公钥粘贴到公钥值框中。
- 点击添加,将 RS256_X509 密钥与设备关联。
- 将
设备元数据字段为选填字段;请将其留空。
点击创建。
您刚刚向注册表添加了一个设备。RS256_X509 密钥会显示在设备的设备详情页面上。
运行 Node.js 示例以连接虚拟设备并查看遥测数据
从 GitHub 获取 Cloud IoT Core Node.js 示例。Cloud IoT Core 示例位于
iot
目录中。git clone https://github.com/googleapis/nodejs-iot.git
在克隆的代码库中,导航到
iot/mqtt_example
目录。您接下来将在此目录中完成其余的步骤。cd nodejs-iot/samples/mqtt_example
将您在上一部分中创建的私钥 (
rsa_private.pem
) 复制到当前目录 (samples/mqtt_example
):cp ../../../rsa_private.pem .
安装 Node.js 依赖项:
npm install
运行以下命令创建一项订阅,用以订阅该注册表的发布/订阅主题,注意须将命令中的占位符替换成您的项目 ID:
gcloud pubsub subscriptions create \ projects/PROJECT_ID/subscriptions/my-subscription \ --topic=projects/PROJECT_ID/topics/my-device-events
运行以下命令(注意要将占位符替换成您自己的项目 ID),以使用 MQTT 协议桥将一个虚拟设备连接到 Cloud IoT Core。确保将
serverCertFile
设置为您的 Google 根证书的下载位置。node cloudiot_mqtt_example_nodejs.js \ mqttDeviceDemo \ --projectId=PROJECT_ID \ --cloudRegion=REGION \ --registryId=my-registry \ --deviceId=my-device \ --privateKeyFile=rsa_private.pem \ --serverCertFile=roots.pem \ --numMessages=25 \ --algorithm=RS256
输出结果显示示例设备正在向遥测主题发布消息。目前已发布了二十五条消息。
运行以下命令以读取发布到遥测主题的消息,注意替换您的项目 ID:
gcloud pubsub subscriptions pull --auto-ack \ projects/PROJECT_ID/subscriptions/my-subscription
重复运行
subscriptions pull
命令可查看其他消息。
清理
为避免因本页中使用的资源导致您的 Google Cloud 帐号产生费用,请按照以下步骤操作。
- 转到 Google Cloud 控制台中的 Google Cloud Pub/Sub 主题页面。
在列表中选择主题旁边的复选框,然后点击页面顶部的删除。
- 转到 Google Cloud 控制台中的注册表页面。
点击列表中的注册表名称。
点击列表中的设备名称。
在设备详情页面顶部,点击删除。输入设备的名称以确认删除。
如需删除注册表,您必须先删除其中的所有设备。如果您已将任何其他设备添加到此注册表中,也请将其删除。
- 转到 Google Cloud 控制台中的注册表页面。
点击列表中的注册表名称。
在注册表详情页面顶部,点击删除。