ServiceNow MetricBase Connector - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

ServiceNow MetricBase Connector

Warnung

Dieser Konnektor wurde in dieverlängerte Phase, undAWS IoT Greengrassveröffentlicht keine Updates, die Funktionen, Verbesserungen vorhandener Funktionen, Sicherheitspatches oder Fehlerbehebungen bieten. Weitere Informationen finden Sie unter AWS IoT Greengrass Version 1Wartungspolitik.

Die ServiceNow MetricBase IntegrationAnschlussveröffentlicht Zeitreihenmetriken von Greengrass-Geräten für ServiceNow MetricBase. Auf diese Weise können Sie Zeitreihendaten aus der Greengrass Core-Umgebung speichern, analysieren und visualisieren und auf lokale Ereignisse reagieren.

Dieser Konnektor empfängt Zeitreihendaten zu einem MQTT-Thema und veröffentlicht die Daten im ServiceNow API in regelmäßigen Abständen.

Sie können diesen Konnektor zur Unterstützung vieler Szenarien verwenden, darunter z. B.:

  • Erstellen von Schwellenwert-basierten Warnmeldungen und Alarmen basierend auf Zeitreihendaten, die von Greengrass-Geräten gesammelt wurden.

  • Verwenden von Zeitservicedaten von Greengrass-Geräten mit benutzerdefinierten Anwendungen, die auf dem ServiceNow platform.

Dieser Konnektor hat die folgenden Versionen.

Version

ARN

4

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/4

3

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/3

2

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/2

1

arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/1

Informationen über Versionsänderungen finden Sie im Änderungsprotokoll.

Voraussetzungen

Dieser Konnektor hat die folgenden Anforderungen:

Version 3 - 4
  • AWS IoT GreengrassCore-Software v1.9.3 oder höher.AWS IoT Greengrassmuss für die Unterstützung lokaler Secrets konfiguriert sein, wie inSecrets Anforderungen.

    Anmerkung

    Diese Anforderung umfasst den Zugriff auf Ihre Secrets Manager Manager-Schlüssel. Wenn Sie die standardmäßige Greengrass-Servicerolle verwenden, hat Greengrass die Berechtigung, die Werte von Secrets mit Namen zu erhalten, die mitgreengrass-.

  • PythonVersion 3.7 oder 3.8 auf dem Core-Gerät installiert und der Umgebungsvariablen PATH hinzugefügt.

    Anmerkung

    Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom standardmäßigen Python 3.7-Installationsordner zu den installierten Python 3.8-Binärdateien zu erstellen.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.

  • EIN ServiceNow -Konsole mit aktiviertem Abonnement für MetricBase. In :Darüber hinaus muss im Konto eine Metrik und eine metrische Tabelle angelegt werden. Weitere Informationen finden Sie unterMetricBaseim ServiceNow -Dokumentation.

  • Ein Texttyp-Secret inAWS Secrets Manager, das den Benutzernamen und das Passwort für Ihre speichert ServiceNow -Instanz mit Standardauthentifizierung. Das Secret muss "Benutzer-" und "Passwort-"Schlüssel mit entsprechenden Werten enthalten. Weitere Informationen finden Sie unterErstellen eines Basis-SecretsimAWS Secrets ManagerBenutzerhandbuch.

  • Eine geheime Ressource in der Greengrass-Gruppe, die auf das Secrets Manager verweist. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.

Versions 1 - 2
  • AWS IoT GreengrassCore-Software v1.7 oder höher.AWS IoT Greengrassmuss für die Unterstützung lokaler Secrets konfiguriert sein, wie inSecrets Anforderungen.

    Anmerkung

    Diese Anforderung umfasst den Zugriff auf Ihre Secrets Manager Manager-Schlüssel. Wenn Sie die standardmäßige Greengrass-Servicerolle verwenden, hat Greengrass die Berechtigung, die Werte von Secrets mit Namen zu erhalten, die mitgreengrass-.

  • PythonVersion 2.7 auf dem Core-Gerät installiert und der Umgebungsvariablen PATH hinzugefügt.

  • EIN ServiceNow -Konsole mit aktiviertem Abonnement für MetricBase. In :Darüber hinaus muss im Konto eine Metrik und eine metrische Tabelle angelegt werden. Weitere Informationen finden Sie unterMetricBaseim ServiceNow -Dokumentation.

  • Ein Texttyp-Secret inAWS Secrets Manager, das den Benutzernamen und das Passwort für Ihre speichert ServiceNow -Instanz mit Standardauthentifizierung. Das Secret muss "Benutzer-" und "Passwort-"Schlüssel mit entsprechenden Werten enthalten. Weitere Informationen finden Sie unterErstellen eines Basis-SecretsimAWS Secrets ManagerBenutzerhandbuch.

  • Eine geheime Ressource in der Greengrass-Gruppe, die auf das Secrets Manager verweist. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.

Connector-Parameter

Dieser Konnektor stellt die folgenden Parameter bereit:

Version 4
PublishInterval

Die maximale Wartezeit in Sekunden zwischen den Veröffentlichungsereignissen für ServiceNow. Der maximale Wert beträgt 900.

Der -Konnektor veröffentlicht in ServiceNow wennPublishBatchSizeerreichtPublishIntervalAblauf.

Anzeigename in derAWS IoT-Konsole Veröffentlichungsintervall in Sekunden

Erforderlich:true

Typ: string

Zulässige Werte: 1 - 900

Gültig:[1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

Die maximale Anzahl von Metrikenwerten, die vor der Veröffentlichung gesammelt werden können ServiceNow.

Der -Konnektor veröffentlicht in ServiceNow wennPublishBatchSizeerreichtPublishIntervalAblauf.

Anzeigename in derAWS IoT-Konsole Publish Größe

Erforderlich:true

Typ: string

Gültig:^[0-9]+$

InstanceName

Der Name der Instance, mit der die Verbindung hergestellt wird ServiceNow.

Anzeigename in derAWS IoT-Konsole Name von ServiceNow Instanz

Erforderlich:true

Typ: string

Gültig:.+

DefaultTableName

Der Name der Tabelle, die denGlideRecordverbunden mit der Zeitreihe MetricBase Datenbank enthalten. Die Eigenschaft table in der Nutzlast der Input-Message kann verwendet werden, um diesen Wert zu überschreiben.

Anzeigename in derAWS IoT-Konsole Der Name der Tabelle, die die Metrik enthält

Erforderlich:true

Typ: string

Gültig:.+

MaxMetricsToRetain

Die maximale Anzahl der Metriken, die im Speicher gespeichert werden können, bevor sie durch neue Metriken ersetzt werden.

Diese Begrenzung gilt, wenn keine Verbindung zum Internet besteht und der Konnektor beginnt, die Metriken zu puffern, um sie später zu veröffentlichen. Wenn der Puffer voll ist, werden die ältesten Metriken durch neue Metriken ersetzt.

Anmerkung

Metriken werden nicht gespeichert, wenn der Host-Prozess für den Konnektor unterbrochen wird. Dies kann beispielsweise während der Gruppen-Bereitstellung oder beim Neustart des Geräts geschehen.

Dieser Wert sollte größer als die Batch-Größe und groß genug sein, um Nachrichten basierend auf der Eingangsrate der MQTT-Nachrichten zu halten.

Anzeigename in derAWS IoT-Konsole Maximum metrics to retain in memory (Maximale Anzahl

Erforderlich:true

Typ: string

Gültig:^[0-9]+$

AuthSecretArn

Das Secret inAWS Secrets Managerdas die ServiceNow -Benutzername und das Passwort. Dies muss ein Texttyp Secret sein. Das Secret muss "Benutzer-" und "Passwort-"Schlüssel mit entsprechenden Werten enthalten.

Anzeigename in derAWS IoT-Konsole ARN of auth secret (ARN of

Erforderlich:true

Typ: string

Gültig:arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

AuthSecretArn-ResourceId

Die geheime Ressource in der Gruppe, die auf das Secrets Manager Manager--Secret verweist ServiceNow -Anmeldeinformationen.

Anzeigename in derAWS IoT-Konsole Auth token-Ressource

Erforderlich:true

Typ: string

Gültig:.+

IsolationMode

Der Containerisierungsmodus für diesen Konnektor. Der Standardwert ist GreengrassContainer. Hierbei wird der Konnektor in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass-Containers ausgeführt.

Anmerkung

Die Standardeinstellung für Containerisierung für die Gruppe gilt nicht für Konnektoren.

Anzeigename in derAWS IoT-Konsole Containerisolierungsmodus

Erforderlich:false

Typ: string

Gültige Werte: GreengrassContainer oder NoContainer.

Gültig:^NoContainer$|^GreengrassContainer$

Version 1 - 3
PublishInterval

Die maximale Wartezeit in Sekunden zwischen den Veröffentlichungsereignissen für ServiceNow. Der maximale Wert beträgt 900.

Der -Konnektor veröffentlicht in ServiceNow wennPublishBatchSizeerreichtPublishIntervalAblauf.

Anzeigename in derAWS IoT-Konsole Veröffentlichungsintervall in Sekunden

Erforderlich:true

Typ: string

Zulässige Werte: 1 - 900

Gültig:[1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

Die maximale Anzahl von Metrikenwerten, die vor der Veröffentlichung gesammelt werden können ServiceNow.

Der -Konnektor veröffentlicht in ServiceNow wennPublishBatchSizeerreichtPublishIntervalAblauf.

Anzeigename in derAWS IoT-Konsole Publish Größe

Erforderlich:true

Typ: string

Gültig:^[0-9]+$

InstanceName

Der Name der Instance, mit der die Verbindung hergestellt wird ServiceNow.

Anzeigename in derAWS IoT-Konsole Name von ServiceNow Instanz

Erforderlich:true

Typ: string

Gültig:.+

DefaultTableName

Der Name der Tabelle, die denGlideRecordverbunden mit der Zeitreihe MetricBase Datenbank enthalten. Die Eigenschaft table in der Nutzlast der Input-Message kann verwendet werden, um diesen Wert zu überschreiben.

Anzeigename in derAWS IoT-Konsole Der Name der Tabelle, die die Metrik enthält

Erforderlich:true

Typ: string

Gültig:.+

MaxMetricsToRetain

Die maximale Anzahl der Metriken, die im Speicher gespeichert werden können, bevor sie durch neue Metriken ersetzt werden.

Diese Begrenzung gilt, wenn keine Verbindung zum Internet besteht und der Konnektor beginnt, die Metriken zu puffern, um sie später zu veröffentlichen. Wenn der Puffer voll ist, werden die ältesten Metriken durch neue Metriken ersetzt.

Anmerkung

Metriken werden nicht gespeichert, wenn der Host-Prozess für den Konnektor unterbrochen wird. Dies kann beispielsweise während der Gruppen-Bereitstellung oder beim Neustart des Geräts geschehen.

Dieser Wert sollte größer als die Batch-Größe und groß genug sein, um Nachrichten basierend auf der Eingangsrate der MQTT-Nachrichten zu halten.

Anzeigename in derAWS IoT-Konsole Maximum metrics to retain in memory (Maximale Anzahl

Erforderlich:true

Typ: string

Gültig:^[0-9]+$

AuthSecretArn

Das Secret inAWS Secrets Managerdas die ServiceNow -Benutzername und das Passwort. Dies muss ein Texttyp Secret sein. Das Secret muss "Benutzer-" und "Passwort-"Schlüssel mit entsprechenden Werten enthalten.

Anzeigename in derAWS IoT-Konsole ARN of auth secret (ARN of

Erforderlich:true

Typ: string

Gültig:arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

AuthSecretArn-ResourceId

Die geheime Ressource in der Gruppe, die auf das Secrets Manager Manager--Secret verweist ServiceNow -Anmeldeinformationen.

Anzeigename in derAWS IoT-Konsole Auth token-Ressource

Erforderlich:true

Typ: string

Gültig:.+

Beispiel für das Erstellen eines Konnektors (AWS CLI)

Der folgende -CLI-Befehl erstellt eineConnectorDefinitionmit einer Erstversion, die den ServiceNow MetricBase Connector für die Integration

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" } } ] }'
Anmerkung

Die Lambda-Funktion in diesem Konnektor hat einelangdauerndemLebenszyklus.

In derAWS IoT Greengrass-Konsole können Sie einen Connector aus demKonnektorenangezeigten. Weitere Informationen finden Sie unter Erste Schritte mit Greengrass-Konnektoren (Konsole).

Eingabedaten

Dieser Konnektor akzeptiert Zeitreihenmetriken zu einem MQTT-Thema und veröffentlicht die Metriken ServiceNow. Eingabebotschaften müssen im JSON-Format vorliegen.

Themenfilter im Abonnement

servicenow/metricbase/metric

Nachrichten-Eigenschaften
request

Informationen über die Tabelle, den Datensatz und die Metrik. Diese Anforderung repräsentiert das Objekt seriesRef in einer Zeitreihen-POST-Anforderung. Weitere Informationen finden Sie unter Clotho Zeitreihen-API - POST.

Erforderlich:true

Typ:object, das die folgenden Eigenschaften beinhaltet:

subject

Die sys_id des spezifischen Datensatzes in der Tabelle.

Erforderlich:true

Typ: string

metric_name

Der Metrik-Feldname.

Erforderlich:true

Typ: string

table

Der Name der Tabelle, in der der Datensatz gespeichert werden soll. Geben Sie diesen Wert an, um den Parameter DefaultTableName zu überschreiben.

Erforderlich:false

Typ: string

value

Der Wert des einzelnen Datenpunktes.

Erforderlich:true

Typ: float

timestamp

Der Zeitstempel des einzelnen Datenpunktes. Der Standardwert ist die aktuelle Zeit.

Erforderlich:false

Typ: string

Beispieleingabe
{ "request": { "subject":"ef43c6d40a0a0b5700c77f9bf387afe3", "metric_name":"u_count", "table": "u_greengrass_app" "value": 1.0, "timestamp": "2018-10-14T10:30:00" } }

Ausgabedaten

Dieser Connector veröffentlicht Statusinformationen als Ausgabedaten im MQTT-Thema.

Themenfilter im Abonnement

servicenow/metricbase/metric/status

Beispielausgabe: Herzlichen Glückwunsch
{ "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 } ] } }
Beispielausgabe: Fehler
{ "response": { "error": "InvalidInputException", "error_message": "metric value is invalid", "status": "fail" } }
Anmerkung

Wenn der Konnektor einen wiederholbaren Fehler erkennt (z. B. Verbindungsfehler), versucht er die Veröffentlichung im nächsten Batch erneut.

Verwendungsbeispiele

Führen Sie die folgenden allgemeinen Schritte aus, um eine Python 3.7-Lambda-Beispielfunktion einzurichten, mit der Sie den Konnektor ausprobieren können.

Anmerkung
  1. Stellen Sie sicher, dass Sie die Anforderungen für den Konnektor erfüllen.

  2. Erstellen und veröffentlichen Sie eine Lambda-Funktion, die Eingabedaten an den Konnektor sendet.

    Speichern Sie den Beispielcode als PY-Datei. Downloaden und entpacken Sie dasAWS IoT GreengrassKern-SDK für Python. Erstellen Sie dann ein ZIP-Paket, das die PY-Datei und den Ordner greengrasssdk auf Stammebene enthält. Dieses ZIP-Paket ist das Bereitstellungspaket, das Sie auf hochladen.AWS Lambda.

    Nachdem Sie die Python 3.7-Lambda-Funktion erstellt haben, veröffentlichen Sie eine Funktionsversion und erstellen Sie einen Alias.

  3. Konfigurieren Sie Ihre Greengrass-Gruppe.

    1. Fügen Sie die Lambda-Funktion über ihren Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder"Pinned": truein der CLI).

    2. Fügen Sie die erforderliche Secret-Ressource hinzu und gewähren Sie Lesezugriff auf die Lambda-Funktion.

    3. Fügen Sie den Konnektor hinzu und konfigurieren Sie seine Parameter.

    4. Fügen Sie Abonnements hinzu, die es dem Konnektor ermöglichen, Eingabedaten zu empfangen und Ausgabedaten zu unterstützten Themenfiltern zu senden.

      • Legen Sie die Lambda--Funktion als Quelle und den Konnektor als Ziel fest und verwenden Sie einen unterstützten Eingabethemenfilter.

      • Legen Sie den Konnektor als Quelle und AWS IoT Core als Ziel fest und verwenden Sie einen unterstützten Ausgabethemenfilter. Sie verwenden dieses Abonnement zum Anzeigen von Statusmeldungen in derAWS IoTconsole.

  4. Stellen Sie die Gruppe bereit.

  5. In derAWS IoT-Konsole aufTestdas Thema Ausgabedaten abonnieren, um Statusmeldungen vom Connector anzuzeigen. Die Lambda-Beispielfunktion ist langlebig und beginnt sofort nach der Bereitstellung der Gruppe mit dem Senden von Nachrichten.

    Wenn Sie mit dem Testen fertig sind, können Sie den Lambda-Lebenszyklus auf On-Demand (oder"Pinned": falsein der CLI) und stellen Sie die Gruppe bereit. Dadurch wird verhindert, dass die Funktion Nachrichten sendet.

Beispiel

Die folgende Lambda-Beispielfunktion sendet eine Eingabenachricht an den Konnektor.

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

Lizenzen

Die ServiceNow MetricBase Der -Konnektor enthält die folgende Drittanbieter-Software/Lizenz:

Dieser Connector wird unter demLizenzvereinbarung für die Greengrass Core-Software.

Änderungsprotokoll

In der folgenden Tabelle werden die wichtigen Änderungen in jeder Version für das Konnektor für beschrieben.

Version

Änderungen

4

Der Parameter IsolationMode wurde hinzugefügt, um den Containerisierungsmodus für den Konnektor zu konfigurieren.

3

Die Lambda-Laufzeit wurde auf Python 3.7 aktualisiert, wodurch sich die Laufzeitanforderung ändert.

2

Beheben, um übermäßige Protokollierung zu reduzieren.

1

Erstversion.

Eine Greengrass-Gruppe kann nur jeweils eine Version des Konnektors enthalten. Weitere Informationen zum Aktualisieren einer Konnektorversion finden Sie unter Aktualisieren von Konnektorversionen.

Weitere Informationen finden Sie auch unter