Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,将不再接收功能更新,并且将仅收到安全补丁和错误修复。有关更多信息,请参阅Amazon IoT Greengrass V1维护时段。我们强烈建议您迁移到Amazon IoT Greengrass Version 2,这增加了重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ServiceNow MetricBase 集成连接器
警告
此连接器已移入延长生命阶段, 和Amazon IoT Greengrass不会发布提供功能、现有功能增强功能、安全补丁或错误修复的更新。有关更多信息,请参阅 Amazon IoT Greengrass Version 1维护策略。
这些区域有: ServiceNow MetricBase 集成连接器将时间序列指标从 Greengrass 设备发布到 ServiceNow MetricBase. 这样一来,您可以存储、分析和可视化 Greengrass 核心环境中的时间序列数据,并对本地事件执行操作。
此连接器接收关于 MQTT 主题的时间序列数据,并将数据发布到 ServiceNow 定期进行 API。
您可以使用此连接器支持如下情况:
根据从 Greengrass 设备收集的时间序列数据,创建基于阈值的提醒和警报。
使用 Greengrass 设备中的时间服务数据,且自定义应用程序在 ServiceNow platfor
此连接器具有以下版本。
版本 |
ARN |
---|---|
4 |
|
3 |
|
2 |
|
1 |
|
有关版本更改的信息,请参阅更改日志。
要求
此连接器具有以下要求:
连接器参数
该连接器提供以下参数:
创建连接器示例 (Amazon CLI)
以下 CLI 命令将创建一个ConnectorDefinition
其初始版本包含 ServiceNow MetricBase 集成连接器。
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyServiceNowMetricBaseIntegrationConnector", "ConnectorArn": "arn:aws:greengrass:
region
::/connectors/ServiceNowMetricBaseIntegration/versions/4", "Parameters": { "PublishInterval" : "10", "PublishBatchSize" : "50", "InstanceName" : "myinstance", "DefaultTableName" : "u_greengrass_app", "MaxMetricsToRetain" : "20000", "AuthSecretArn" : "arn:aws:secretsmanager:region
:account-id
:secret:greengrass-secret-hash
", "AuthSecretArn-ResourceId" : "MySecretResource", "IsolationMode" : "GreengrassContainer" } } ] }'
注意
此连接器中的 Lambda 函数具有长时间生存生命周期。
在Amazon IoT Greengrassconsole,则可以从组的连接器页. 有关更多信息,请参阅 Greengrass 连接器入门(控制台)。
输入数据
此连接器接受关于 MQTT 主题的时间序列指标,并将指标发布到 ServiceNow. 输入消息必须采用 JSON 格式。
- 订阅中的主题筛选条件
-
servicenow/metricbase/metric
- 消息属性
-
request
-
有关表、记录和指标的信息。该请求表示时间序列 POST 请求中的
seriesRef
对象。有关更多信息,请参阅 Clotho 时间序列 API - POST。 必需
true
类型:
object
包含以下属性:subject
-
表中特定记录的
sys_id
。必需
true
类型:
string
metric_name
-
指标字段名称。
必需
true
类型:
string
table
-
用于存储记录的表的名称。指定该值以覆盖
DefaultTableName
参数。必需
false
类型:
string
value
-
单个数据点的值。
必需
true
类型:
float
timestamp
-
单个数据点的时间戳。默认值为当前时间。
必需
false
类型:
string
- 示例输入
-
{ "request": { "subject":"ef43c6d40a0a0b5700c77f9bf387afe3", "metric_name":"u_count", "table": "u_greengrass_app" "value": 1.0, "timestamp": "2018-10-14T10:30:00" } }
输出数据
此连接器将状态信息发布为 MQTT 主题的输出数据。
- 订阅中的主题筛选条件
-
servicenow/metricbase/metric/status
- 输出示例:成功
-
{ "response": { "metric_name": "Errors", "table_name": "GliderProd", "processed_on": "2018-10-14T10:35:00", "response_id": "khjKSkj132qwr23fcba", "status": "success", "values": [ { "timestamp": "2016-10-14T10:30:00", "value": 1.0 }, { "timestamp": "2016-10-14T10:31:00", "value": 1.1 } ] } }
- 输出示例:失败
-
{ "response": { "error": "InvalidInputException", "error_message": "metric value is invalid", "status": "fail" } }
注意
如果连接器检测到可重试错误(例如,连接错误),则会在下一个批次中重试发布。
用法示例
使用以下概括步骤设置可用于尝试连接器的示例 Python 3.7 Lambda 函数。
注意
-
如果使用的是其他 Python 运行时,则可以创建从 Python3.x 到 Python 3.7 的符号链接。
-
连接器入门(控制台) 和连接器入门 (CLI) 主题包含详细步骤,说明如何配置和部署示例 Twilio 通知连接器。
确保满足连接器的要求。
-
创建并发布将输入数据发送到连接器的Lambda函数。
将示例代码保存为 PY 文件。下载并解压缩Amazon IoT Greengrass适用于 Python 的核需. 然后,创建一个 zip 包,其中在根级别包含 PY 文件和
greengrasssdk
文件夹。此 zip 包是您上传到的部署包Amazon Lambda.创建 Python 3.7 Lambda 函数后,发布函数版本并创建别名。
-
配置 Greengrass 组。
-
部署组。
-
在Amazon IoT控制台测试页面上,订阅输出数据主题以查看连接器中的状态消息。示例 Lambda 函数是长时间生存的,并且在部署组后立即开始发送消息。
完成测试后,您可以将 Lambda 生命周期设置为按需(或
"Pinned": false
在 CLI CLI 中设置为。这会阻止函数发送消息。
示例
以下示例 Lambda 函数将输入消息发送到连接器。
import greengrasssdk import json iot_client = greengrasssdk.client('iot-data') SEND_TOPIC = 'servicenow/metricbase/metric' def create_request_with_all_fields(): return { "request": { "subject": '2efdf6badbd523803acfae441b961961', "metric_name": 'u_count', "value": 1234, "timestamp": '2018-10-20T20:22:20', "table": 'u_greengrass_metricbase_test' } } def publish_basic_message(): messageToPublish = create_request_with_all_fields() print("Message To Publish: ", messageToPublish) iot_client.publish(topic=SEND_TOPIC, payload=json.dumps(messageToPublish)) publish_basic_message() def lambda_handler(event, context): return
许可证
这些区域有: ServiceNow MetricBase 集成连接器包含以下第三方软件/许可:
pysnow
/MIT
此连接器在Greengrass 核心软件许可协议
更改日志
下表介绍了在连接器各个版本中进行的更改。
版本 |
更改 |
---|---|
4 |
增加了用于配置连接器容器化模式的 |
3 |
已将 Lambda 运行时升级到 Python 3.7,这会更改运行时要求。 |
2 |
进行了修复,以减少过多的日志记录。 |
1 |
首次发布。 |
Greengrass 组每次只能包含连接器版本。有关升级连接器版本的信息,请参阅升级连接器版本。