转载

IBM Watson IoT Platform Event Recorder

要求

  1. 在通读本文之前,您必须完成共享订阅秘诀中的步骤。
  2. Python 3.5 或更高版本

回页首

简介

Watson IoT Event Recorder 应用程序(示例代码)创建了一个 Cloudant NoSQL DB,并在发布设备事件时将它们实时存入到该数据库中。本文将使用共享订阅功能,在某个应用程序实例无法适应公布的信息的数量时分担负载。请参阅此文章了解有关共享订阅的更多信息。

本文的 示例代码 是用 Python Client Library for IBM Watson IoT Platform 编写的,简化了与 IBM Watson IoT Platform 的交互。Python Client Library for IBM Watson IoT Platform 根据用户为属性“type”设置的值启用了共享订阅支持。当“type”属性设置为“shared” 时,会在共享预订模式下连接应用程序,否则会在独立模式(默认行为)下建立连接。为了启用共享订阅支持或可扩展的应用程序支持,该库在内部以 “A:org_id:app_id”的形式采用客户端 id,其中

  • A 表示应用程序是一个可扩展应用程序
  • org_id 是唯一组织 ID,在您注册使用服务时分配。它将是一个 6 字符的字母数字字符串。
  • app_id 是此客户端的用户定义的唯一字符串标示符。

本文是为 Windows 平台编写的,但也可以在其他平台上应用。

回页首

准备工作

安装必要的 python 模块

打开一个命令提示符,并逐个安装以下 python 模块:

pip install ibmiotf pip install cloudant pip install bottle

(备注:在目录 $Python_Home/Scripts 下可以找到 pip 可执行文件。例如,C:/Python35/Scripts)

回页首

创建 Cloudant NoSQL DB

创建 Cloudant NoSQL DB 来存储设备事件

1. 转到Bluemix。如果已是一名 Bluemix 用户,请像平常一样登录。如果您对 Bluemix 不熟悉,那么可以通过注册获得一个免费 30 天的试用版。

2. 在 Bluemix 应用程序中,单击“CATALOG”选项卡。

3. 选择“Cloudant NoSQL DB” 服务。(备注:如果无法找到该服务,可以使用搜索框,如下所示。)

4. 为您的服务键入一个名称并单击 Create 按钮。

IBM Watson IoT Platform Event Recorder

5. 导航到 Service Credentials 选项卡,如下所示,并记下用户名和密码,稍后从 python 模块连接到 Cloudant DB 服务时需要使用它们。

IBM Watson IoT Platform Event Recorder

6. 导航到 Managed 选项卡并单击 Launch 按钮来访问 Cloudant DB,如下所示。

IBM Watson IoT Platform Event Recorder

回页首

启动 Watson IoT Event Recorder

启动 IBM Watson IoT Platform Event Recorder 应用程序来将事件存储到 Cloudant NoSQL DB

本节假设 Watson IoT Organization 已经设置好了,并且有一个或多个设备正在向它发布事件。请参阅文章共享订阅,了解如何设置 Watson IoT Organization 和发布设备事件。

IBM Watson IoT Platform Event Recorder

1. 打开一个命令提示符并下载 IoT Event Recorder python 模块。

https://raw.githubusercontent.com/ibm-messaging/iotf-recorder-py/master/record-cloudant.py

2. 通过输入您的组织 ID、应用程序的 API 密钥和身份验证令牌来创建一个 app.cfg 配置文件,如下所示:

[application] org=<Your Organization ID> id=<Unique application id> auth-method=apikey auth-key=<Your Organization's API Key> auth-token=<Your Organization's API Token> type=shared

(type 必须设置为 shared,以便在共享订阅模式下运行应用程序)

3. 通过指定以下命令来运行示例代码:

python record-cloudant.py -c app.cfg -u <username> -p <password>

(备注:必须使用前一小节中记录的用户名和密码替换此处的用户名和密码。)

4. 回到浏览器并刷新 Cloudant DB 页面,您会观察到,已经创建了一个叫做 $org-events 的数据库名称,并且已经存储事件。

IBM Watson IoT Platform Event Recorder

5. 打开数据库来查看一个或多个事件。

IBM Watson IoT Platform Event Recorder

回页首

启动 Watson IoT Event Recorder 的多个实例

您可以通过将多个设备连接到组织来增加负载,但这需要启动 Event Recorder 应用程序的更多实例来分担负载。

IBM Watson IoT Platform Event Recorder

1. 当 Event Recorder 的第一个实例在第一台服务器中运行时,从另一台服务器使用相同的 app.cfg 文件和相同的命令运行 Watson IoT Event Recorder 的另一个实例。

python record-cloudant.py -c app.cfg -u <username> -p <password>

(确保 app.cfg 文件不被修改。为了实现负载平衡,必须使用相同的 id 来连接到 IBM Watson IoT Platform。)

2. 您会观察到,现在已在两个应用程序之间分担负载。

3. 您可能需要做一些实验来了解获得最佳负载平衡需要使用多少个应用程序实例。

原文  http://www.ibm.com/developerworks/cn/iot/iot-ibm-iot-foundation-event-recorder/index.html?ca=drs-
正文到此结束
Loading...