AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長壽命階段。如需詳細資訊,請參閱 AWS IoT Greengrass V1 維護政策 。在此日期之後, AWS IoT Greengrass V1 不會發佈提供功能、增強功能、錯誤修正或安全修補程式的更新。在 上執行的裝置 AWS IoT Greengrass V1 不會中斷,並會繼續運作和連線至雲端。我們強烈建議您遷移至 AWS IoT Greengrass Version 2,這會新增重要的新功能,並支援其他平台 。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ServiceNow MetricBase 整合連接器
警告
此連接器已移至延長生命階段,以及AWS IoT Greengrass不會發行提供功能、增強現有功能、安全性修補程式或錯誤修正的更新。如需詳細資訊,請參閱 AWS IoT Greengrass Version 1維護政策。
所以此 ServiceNow MetricBase 整合連接器會將時間列指標從 Greengrass 裝置發佈到 ServiceNow MetricBase。這可讓您存放、分析和視覺化來自 Greengrass 核心環境的時間序列資料,並對本機事件採取行動。
此連接器會接收 MQTT 主題上的時間序列資料,並將資料發佈到 ServiceNow API 在定期的間隔。
您可以使用此連接器來支援如下案例:
根據從 Greengrass 裝置收集的時間序列資料,建立以閾值為基礎的提醒和警示。
使用來自 Greengrass 裝置的時間服務資料,搭配建在 ServiceNow 平台。
此連接器具有以下版本。
版本 |
ARN |
---|---|
4 |
|
3 |
|
2 |
|
1 |
|
如需版本變更的詳細資訊,請參閱 Changelog。
要求
此連接器有下列要求:
連接器參數
此連接器提供下列參數:
建立範例連接器 (AWS 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 函數具有長期生命週期。
在 中AWS IoT Greengrass主控台,您可以從群組中新增連接器連接器(憑證已建立!) 頁面上的名稱有些許差異。如需詳細資訊,請參閱 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
- 輸出範例:Success
-
{ "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 } ] } }
- 輸出範例:Failure (失敗)
-
{ "response": { "error": "InvalidInputException", "error_message": "metric value is invalid", "status": "fail" } }
注意
如果連接器偵測到可重試的錯誤 (例如,連線錯誤),它會在下一個批次中重試發佈。
使用範例
使用下列高階步驟,設定可用來試用連接器的範例 Python 3.7 Lambda 函數。
注意
-
如果您使用其他 Python 執行時間,則可以建立從 Python 3.x 到 Python 3.7 的符號連結。
-
連接器入門 (主控台) 和 連接器入門 (CLI) 主題包含詳細步驟,說明如何設定和部署範例 Twilio 通知連接器。
確定您符合連接器的要求。
-
建立並發佈 Lambda 函數,將輸入資料傳送至連接器。
將範例程式碼儲存為 PY 檔案。下載並解壓縮AWS IoT Greengrass適用於 Python 的核心 SDK。然後,建立在根層級包含 PY 檔案和
greengrasssdk
資料夾的 zip 套件。此 zip 套件是您上傳至的部署套件AWS Lambda。建立 Python 3.7 Lambda 函數後,請發佈函數版本並建立別名。
-
設定 Greengrass 群組。
-
部署群組。
-
在 中AWS IoT主控台、測試頁面上的訂閱輸出資料主題,以檢視來自連接器的狀態訊息。範例 Lambda 函數具有長時間的生命週期,而且在部署完群組後會立即開始傳送訊息。
完成測試後,您可以將 Lambda 生命週期設為隨需 (或
"Pinned": false
(在 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
license
所以此 ServiceNow MetricBase 整合連接器包含以下第三方軟體/授權:
pysnow
/MIT
此連接器會在Greengrass Core 軟體授權合約
Changelog
下表說明連接器每個版本的變更。
版本 |
變更 |
---|---|
4 |
已新增 |
3 |
已將 Lambda 執行時間升級至 Python 3.7,這會改變執行時間要求。 |
2 |
可減少過多記錄的修正。 |
1 |
初始版本。 |
Greengrass 群組一次只能包含連接器的一個版本。若要取得有關升級連接器版本的資訊,請參閱升級連接器版本。