快速入门:创建 IoT Core 设备注册表

创建 IoT Core 设备注册表

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


如需在 Cloud Shell Editor 中直接获取有关此任务的分步指导,请点击操作演示

操作演示


以下部分将引导您完成与点击操作演示相同的步骤。

准备工作

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

    转到“项目选择器”

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

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

    启用 API

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

    转到“项目选择器”

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

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

    启用 API

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

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

  2. 设置 Node.js 开发环境

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

创建设备注册表

  1. 转到 Google Cloud Console 中的 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 Console 中的 Google Cloud Pub/Sub 主题页面。

    转到 Google Cloud Pub/Sub 主题页面

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

  3. 转到 Google Cloud Console 中的注册表页面。

    转到注册表页面

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

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

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

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

  7. 转到 Google Cloud Console 中的注册表页面。

    转到注册表页面

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

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

后续步骤