Google Cloud IoT Core 将于 2023 年 8 月 16 日停用。如需了解详情,请与您的 Google Cloud 客户支持团队联系。
快速入门:创建 IoT Core 设备注册表

创建 IoT Core 设备注册表

本页介绍了如何使用 Google Cloud 控制台创建 Cloud IoT Core 设备注册表和注册设备。还为您展示如何运行一个示例来连接设备并发布设备遥测事件。


如需直接在 Cloud Shell Editor 中按照此任务的分步指南来执行操作,请点击操作演示

操作演示


准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  4. 启用 Cloud IoT and Cloud Pub/Sub API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能

  7. 启用 Cloud IoT and Cloud Pub/Sub API。

    启用 API

设置本地环境并安装必要工具

  1. 安装并初始化 gcloud CLI。Cloud IoT Core 需要 173.0.0 或更高版本的 gcloud CLI。

  2. 设置 Node.js 开发环境

    或者,您也可以使用 Google Cloud Shell,该工具已安装 gcloud CLI 和 Node.js。

创建设备注册表

  1. 转到 Google Cloud 控制台中的 Google Cloud IoT Core 页面。

    转到 Google Cloud IoT Core 页面

  2. 点击创建注册表

  3. 注册表 ID 部分输入 my-registry

  4. 如果您在美国,请选择 us-central1 作为区域。如果您在美国境外,请选择首选区域

  5. 选择 MQTT 作为协议

  6. 默认遥测主题下拉列表中,选择创建主题

  7. 创建主题对话框的名称字段中输入 my-device-events

  8. 点击创建主题对话框中的创建

  9. 设备状态主题证书值字段是可选的,因此请留空。

  10. 点击 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 命令时,您将需要该文件路径。

在以下部分中,您将向注册表添加设备,并将公钥与设备相关联。

向注册表添加一个设备

  1. 注册表页面上,选择 my-registry

  2. 选择设备标签页,然后点击创建设备

  3. 设备 ID 部分输入 my-device

  4. 对于设备通信,选择允许

  5. 将公钥信息添加到身份验证字段。

    • rsa_cert.pem 的内容复制到剪贴板。请务必添加包含 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 的行。
    • 对于公钥格式,选择 RS256_X509
    • 将公钥粘贴到公钥值框中。
    • 点击添加,将 RS256_X509 密钥与设备关联。
  6. 设备元数据字段为选填字段;请将其留空。

  7. 点击创建

您刚刚向注册表添加了一个设备。RS256_X509 密钥会显示在设备的设备详情页面上。

运行 Node.js 示例以连接虚拟设备并查看遥测数据

  1. 从 GitHub 获取 Cloud IoT Core Node.js 示例。Cloud IoT Core 示例位于 iot 目录中。

    git clone https://github.com/googleapis/nodejs-iot.git
    
  2. 在克隆的代码库中,导航到 iot/mqtt_example 目录。您接下来将在此目录中完成其余的步骤。

    cd nodejs-iot/samples/mqtt_example
    
  3. 将您在上一部分中创建的私钥 (rsa_private.pem) 复制到当前目录 (samples/mqtt_example):

    cp ../../../rsa_private.pem .
    
  4. 安装 Node.js 依赖项:

    npm install
    
  5. 运行以下命令创建一项订阅,用以订阅该注册表的发布/订阅主题,注意须将命令中的占位符替换成您的项目 ID:

    gcloud pubsub subscriptions create \
        projects/PROJECT_ID/subscriptions/my-subscription \
        --topic=projects/PROJECT_ID/topics/my-device-events
    
  6. 运行以下命令(注意要将占位符替换成您自己的项目 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
    

    输出结果显示示例设备正在向遥测主题发布消息。目前已发布了二十五条消息。

  7. 运行以下命令以读取发布到遥测主题的消息,注意替换您的项目 ID:

    gcloud pubsub subscriptions pull --auto-ack \
        projects/PROJECT_ID/subscriptions/my-subscription
    
  8. 重复运行 subscriptions pull 命令可查看其他消息。

清理

为避免因本页中使用的资源导致您的 Google Cloud 帐号产生费用,请按照以下步骤操作。

  1. 转到 Google Cloud 控制台中的 Google Cloud Pub/Sub 主题页面。

    转到 Google Cloud Pub/Sub 主题页面

  2. 在列表中选择主题旁边的复选框,然后点击页面顶部的删除

  3. 转到 Google Cloud 控制台中的注册表页面。

    转到注册表页面

  4. 点击列表中的注册表名称。

  5. 点击列表中的设备名称。

  6. 设备详情页面顶部,点击删除。输入设备的名称以确认删除。

    如需删除注册表,您必须先删除其中的所有设备。如果您已将任何其他设备添加到此注册表中,也请将其删除。

  7. 转到 Google Cloud 控制台中的注册表页面。

    转到注册表页面

  8. 点击列表中的注册表名称。

  9. 注册表详情页面顶部,点击删除

后续步骤