ServiceNow MetricBase Connecteur d'intégration - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

ServiceNow MetricBase Connecteur d'intégration

Avertissement

Ce connecteur a été déplacé dans lePhase de vie prolongée, etAWS IoT Greengrassne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations à des fonctionnalités existantes, des correctifs de sécurité ou des corrections de bogues. Pour plus d'informations, consultez AWS IoT Greengrass Version 1politique de maintenance.

Le ServiceNow MetricBase Integrationconnecteurpublie les métriques de séries temporelles à partir de périphériques Greengrass ServiceNow MetricBase. Cela vous permet de stocker, analyser et visualiser les données en séries chronologiques à partir de l'environnement Greengrass Core et d'agir sur les événements locaux.

Ce connecteur reçoit des données en séries chronologiques dans une rubrique MQTT et publie les données dans le ServiceNow API à intervalles réguliers.

Vous pouvez utiliser ce connecteur pour prendre en charge des scénarios, tels que :

  • Créer des alertes basées sur le seuil et des alarmes en fonction des données en séries chronologiques collectées depuis les appareils Greengrass.

  • Utiliser des données de services chronologiques des appareils Greengrass avec des applications personnalisées reposant sur le ServiceNow .

Ce connecteur a les versions suivantes.

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

Pour obtenir des informations sur les changements apportés aux versions, veuillez consulter le Journal des modifications.

Prérequis

Ce connecteur possède les critères suivants :

Version 3 - 4
  • AWS IoT GreengrassLogiciel Core 1.9.3 ou version ultérieure.AWS IoT Greengrassdoit être configuré pour prendre en charge les secrets locaux, comme décrit dansExigences relatives aux secrets.

    Note

    Cette exigence inclut l'autorisation d'accès à vos Secrets Manager secrets. Si vous utilisez le rôle de service Greengrass par défaut, Greengrass est autorisé à obtenir les valeurs des secrets dont les noms commencent pargreengrass-.

  • Pythonversion 3.7 ou 3.8 installée sur l'appareil principal et ajoutée à la variable d'environnement PATH.

    Note

    Pour utiliser Python 3.8, exécutez la commande suivante pour créer un lien symbolique entre le dossier d'installation de Python 3.7 par défaut et les binaires Python 3.8 installés.

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

    Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass.

  • UN ServiceNow avec un abonnement activé à MetricBase. DansEn outre, une métrique et une table de métriques doivent être créées dans le compte. Pour de plus amples informations, veuillez consulterMetricBasedans le ServiceNow .

  • Un secret de type texte dansAWS Secrets Managerqui stocke le nom d'utilisateur et le mot de passe de connexion à votre ServiceNow instance avec authentification de base. Le secret doit contenir les clés « utilisateur » et « mot de passe » avec des valeurs correspondantes. Pour de plus amples informations, veuillez consulterCréation d'un secret basiquedans leAWS Secrets ManagerGuide de l'utilisateur.

  • Ressource de secret dans le groupe Greengrass qui référence le secret du Secrets Manager. Pour plus d'informations, consultez Déployer des secrets sur AWS IoT Greengrass Core.

Versions 1 - 2
  • AWS IoT GreengrassLogiciel Core 1.7 ou version ultérieure.AWS IoT Greengrassdoit être configuré pour prendre en charge les secrets locaux, comme décrit dansExigences relatives aux secrets.

    Note

    Cette exigence inclut l'autorisation d'accès à vos Secrets Manager secrets. Si vous utilisez le rôle de service Greengrass par défaut, Greengrass est autorisé à obtenir les valeurs des secrets dont les noms commencent pargreengrass-.

  • Pythonversion 2.7 installée sur l'appareil principal et ajoutée à la variable d'environnement PATH.

  • UN ServiceNow avec un abonnement activé à MetricBase. DansEn outre, une métrique et une table de métriques doivent être créées dans le compte. Pour de plus amples informations, veuillez consulterMetricBasedans le ServiceNow .

  • Un secret de type texte dansAWS Secrets Managerqui stocke le nom d'utilisateur et le mot de passe de connexion à votre ServiceNow instance avec authentification de base. Le secret doit contenir les clés « utilisateur » et « mot de passe » avec des valeurs correspondantes. Pour de plus amples informations, veuillez consulterCréation d'un secret basiquedans leAWS Secrets ManagerGuide de l'utilisateur.

  • Ressource de secret dans le groupe Greengrass qui référence le secret du Secrets Manager. Pour plus d'informations, consultez Déployer des secrets sur AWS IoT Greengrass Core.

Paramètres du connecteur

Ce connecteur fournit les paramètres suivants :

Version 4
PublishInterval

Nombre maximal de secondes à attendre entre la publication des événements ServiceNow. La valeur maximale est 900.

Le connecteur publie dans ServiceNow quandPublishBatchSizeest atteintePublishIntervalExpires on.

Nom d'affichage dans laAWS IoTConsole  : Intervalle de publication en secondes

Obligatoire :true

Type: string

Valeurs valides : 1 - 900

Modèle de code :[1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

Nombre maximal de valeurs de métriques qui peuvent être traitées par lot avant qu'elles ne soient publiées dans ServiceNow.

Le connecteur publie dans ServiceNow quandPublishBatchSizeest atteintePublishIntervalExpires on.

Nom d'affichage dans laAWS IoTConsole  : Publication de taille de lot

Obligatoire :true

Type: string

Modèle de code :^[0-9]+$

InstanceName

Nom de l'instance utilisée pour la connexion à ServiceNow.

Nom d'affichage dans laAWS IoTConsole  : Nom de ServiceNow exemple

Obligatoire :true

Type: string

Modèle de code :.+

DefaultTableName

Nom de la table contenant leGlideRecordassocié à la série chronologique MetricBase Base de données. La propriété table de la charge utile du message d'entrée peut être utilisée pour remplacer cette valeur.

Nom d'affichage dans laAWS IoTConsole  : Nom de la table qui contient la métrique

Obligatoire :true

Type: string

Modèle de code :.+

MaxMetricsToRetain

Nombre maximal de métriques à enregistrer dans la mémoire avant qu'elles ne soient remplacées par de nouvelles métriques.

Cette limite s'applique lorsqu'il n'y a aucune connexion à Internet et que le connecteur démarre pour mettre en tampon les métriques à publier ultérieurement. Lorsque le tampon est plein, les métriques les plus anciennes sont remplacées par de nouvelles métriques.

Note

Les métriques ne sont pas enregistrées si le processus hôte du connecteur est interrompu. Par exemple, cela peut se produire pendant le déploiement du groupe ou lorsque le périphérique redémarre.

Cette valeur doit être supérieure à la taille du lot et suffisamment grande pour contenir les messages basés sur le taux entrant des messages MQTT.

Nom d'affichage dans laAWS IoTConsole  : Nombre maximum de métriques à conserver en mémoire

Obligatoire :true

Type: string

Modèle de code :^[0-9]+$

AuthSecretArn

Le secret dans leAWS Secrets Managerqui stockez le ServiceNow Nom d'utilisateur et mot de passe. Il doit s'agir d'un secret de type texte. Le secret doit contenir les clés « utilisateur » et « mot de passe » avec des valeurs correspondantes.

Nom d'affichage dans laAWS IoTConsole  : ARN du secret d'authentification

Obligatoire :true

Type: string

Modèle de code :arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

AuthSecretArn-ResourceId

Ressource de secret dans le groupe qui référence le secret de Secrets Manager pour le ServiceNow Informations d'identification .

Nom d'affichage dans laAWS IoTConsole  : Ressource du jeton d'authentification

Obligatoire :true

Type: string

Modèle de code :.+

IsolationMode

Mode conteneurisation de ce connecteur. La valeur par défaut est GreengrassContainer, ce qui signifie que le connecteur s'exécute dans un environnement d'exécution isolé à l'intérieur du conteneur AWS IoT Greengrass.

Note

Le paramètre de conteneurisation par défaut pour le groupe ne s'applique pas aux connecteurs.

Nom d'affichage dans laAWS IoTConsole  : Mode d'isolation du conteneur

Obligatoire :false

Type: string

Valeurs valides : GreengrassContainer ou NoContainer

Modèle de code :^NoContainer$|^GreengrassContainer$

Version 1 - 3
PublishInterval

Nombre maximal de secondes à attendre entre la publication des événements ServiceNow. La valeur maximale est 900.

Le connecteur publie dans ServiceNow quandPublishBatchSizeest atteintePublishIntervalExpires on.

Nom d'affichage dans laAWS IoTConsole  : Intervalle de publication en secondes

Obligatoire :true

Type: string

Valeurs valides : 1 - 900

Modèle de code :[1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

Nombre maximal de valeurs de métriques qui peuvent être traitées par lot avant qu'elles ne soient publiées dans ServiceNow.

Le connecteur publie dans ServiceNow quandPublishBatchSizeest atteintePublishIntervalExpires on.

Nom d'affichage dans laAWS IoTConsole  : Publication de taille de lot

Obligatoire :true

Type: string

Modèle de code :^[0-9]+$

InstanceName

Nom de l'instance utilisée pour la connexion à ServiceNow.

Nom d'affichage dans laAWS IoTConsole  : Nom de ServiceNow exemple

Obligatoire :true

Type: string

Modèle de code :.+

DefaultTableName

Nom de la table contenant leGlideRecordassocié à la série chronologique MetricBase Base de données. La propriété table de la charge utile du message d'entrée peut être utilisée pour remplacer cette valeur.

Nom d'affichage dans laAWS IoTConsole  : Nom de la table qui contient la métrique

Obligatoire :true

Type: string

Modèle de code :.+

MaxMetricsToRetain

Nombre maximal de métriques à enregistrer dans la mémoire avant qu'elles ne soient remplacées par de nouvelles métriques.

Cette limite s'applique lorsqu'il n'y a aucune connexion à Internet et que le connecteur démarre pour mettre en tampon les métriques à publier ultérieurement. Lorsque le tampon est plein, les métriques les plus anciennes sont remplacées par de nouvelles métriques.

Note

Les métriques ne sont pas enregistrées si le processus hôte du connecteur est interrompu. Par exemple, cela peut se produire pendant le déploiement du groupe ou lorsque le périphérique redémarre.

Cette valeur doit être supérieure à la taille du lot et suffisamment grande pour contenir les messages basés sur le taux entrant des messages MQTT.

Nom d'affichage dans laAWS IoTConsole  : Nombre maximum de métriques à conserver en mémoire

Obligatoire :true

Type: string

Modèle de code :^[0-9]+$

AuthSecretArn

Le secret dans leAWS Secrets Managerqui stockez le ServiceNow Nom d'utilisateur et mot de passe. Il doit s'agir d'un secret de type texte. Le secret doit contenir les clés « utilisateur » et « mot de passe » avec des valeurs correspondantes.

Nom d'affichage dans laAWS IoTConsole  : ARN du secret d'authentification

Obligatoire :true

Type: string

Modèle de code :arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+

AuthSecretArn-ResourceId

Ressource de secret dans le groupe qui référence le secret de Secrets Manager pour le ServiceNow Informations d'identification .

Nom d'affichage dans laAWS IoTConsole  : Ressource du jeton d'authentification

Obligatoire :true

Type: string

Modèle de code :.+

Exemple de création de connecteur (AWS CLI)

La commande de ligne de commande suivante crée un élémentConnectorDefinitionavec une version initiale qui contient le ServiceNow MetricBase Connecteur d'intégration.

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

La fonction Lambda de ce connecteur possède unlongue duréeCycle de vie.

DansAWS IoT Greengrass, vous pouvez ajouter un connecteur à partir de la consoleConnecteurs. Pour plus d'informations, consultez Mise en route avec les connecteurs Greengrass (console).

Données d'entrée

Ce connecteur accepte les métriques de séries temporelles dans une rubrique MQTT et publie les métriques dans ServiceNow. Les messages d'entrée doivent être au format JSON.

Filtre de rubrique dans l'abonnement

servicenow/metricbase/metric

Propriétés des messages
request

Informations sur la table, l'enregistrement et la métrique. Cette requête représente l'objet seriesRef dans une demande POST en séries chronologiques. Pour plus d'informations, consultez Clotho Time Series API - POST.

Obligatoire :true

Type :objectqui inclut les propriétés suivantes :

subject

sys_id de l'enregistrement spécifique dans la table.

Obligatoire :true

Type: string

metric_name

Nom du champ de la métrique.

Obligatoire :true

Type: string

table

Nom du tableau dans lequel stocker l'enregistrement. Spécifiez cette valeur pour remplacer le paramètre DefaultTableName.

Obligatoire :false

Type: string

value

Valeur du point de données individuel.

Obligatoire :true

Type: float

timestamp

Horodatage du point de données individuel. La valeur par défaut est l'heure actuelle.

Obligatoire :false

Type: string

Exemple d'entrée
{ "request": { "subject":"ef43c6d40a0a0b5700c77f9bf387afe3", "metric_name":"u_count", "table": "u_greengrass_app" "value": 1.0, "timestamp": "2018-10-14T10:30:00" } }

Données de sortie

Ce connecteur publie des informations d'état sous forme de données de sortie dans une rubrique MQTT.

Filtre de rubrique dans l'abonnement

servicenow/metricbase/metric/status

Exemple de sortie : Succès
{ "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 } ] } }
Exemple de sortie : Échec
{ "response": { "error": "InvalidInputException", "error_message": "metric value is invalid", "status": "fail" } }
Note

Si le connecteur détecte une erreur réessayable (par exemple, des erreurs de connexion), il tente à nouveau la publication dans le lot suivant.

Exemple d'utilisation

Suivez les étapes détaillées suivantes pour configurer un exemple de fonction Lambda Python 3.7 que vous pouvez utiliser pour tester le connecteur.

Note
  1. Veillez à répondre aux conditions requises pour le connecteur.

  2. Créez et publiez une fonction Lambda qui envoie des données d'entrée au connecteur.

    Enregistrez l'exemple de code en tant que fichier PY. Téléchargez et décompressez le fichierAWS IoT GreengrassSDK Core pour Python. Ensuite, créez un package zip contenant le fichier PY et le dossier greengrasssdk au niveau racine. Ce package zip correspond au package de déploiement que vous chargez surAWS Lambda.

    Après avoir créé la fonction Lambda Python 3.7, publiez une version de fonction et créez un alias.

  3. Configurez votre groupe Greengrass.

    1. Ajoutez la fonction Lambda par son alias (recommandé). Configurez le cycle de vie Lambda comme long (ou"Pinned": truedans la CLI).

    2. Ajoutez la ressource secrète requise et accordez l'accès en lecture à la fonction Lambda.

    3. Ajoutez le connecteur et configurez ses paramètres.

    4. Ajoutez des abonnements qui permettent au connecteur de recevoir des données d'entrée et d'envoyer des données de sortie sur des filtres de rubrique pris en charge.

      • Définissez la fonction Lambda en tant que source, le connecteur en tant que cible et utilisez un filtre de rubrique d'entrée pris en charge.

      • Définissez le connecteur en tant que source, AWS IoT Core en tant que cible et utilisez un filtre de rubrique de sortie pris en charge. Vous utilisez cet abonnement pour afficher les messages d'état dans laAWS IoTconsole

  4. Déployez le groupe.

  5. DansAWS IoT, sur leTestabonnez-vous à la rubrique des données de sortie pour afficher les messages d'état du connecteur. L'exemple de fonction Lambda à longue durée de vie commence à envoyer des messages immédiatement après le déploiement du groupe.

    Lorsque vous avez terminé le test, vous pouvez définir le cycle de vie Lambda sur le type « à la demande »"Pinned": falsedans l'interface de ligne de commande) et déployez le groupe. Cela empêche la fonction d'envoyer des messages.

Exemple

L'exemple de fonction Lambda suivant envoie un message d'entrée au connecteur.

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

Licences

Le ServiceNow MetricBase Le connecteur d'intégration inclut les logiciels et licences tiers suivants :

Ce connecteur est libéré sousContrat de licence du logiciel Greengrass Core.

Journal des modifications

Le tableau suivant décrit les modifications apportées à chaque version du connecteur.

Version

Modifications

4

Ajout du paramètre IsolationMode pour configurer le mode de conteneurisation du connecteur.

3

Mise à niveau du moteur d'exécution Lambda vers Python 3.7, ce qui modifie l'exigence d'environnement exécution.

2

Correctif pour réduire la journalisation excessive.

1

Première version.

Un groupe Greengrass peut contenir une seule version du connecteur à la fois. Pour de plus amples informations sur la mise à niveau d'une version de connecteur, veuillez consulter Mise à niveau des versions du connecteur.

Consulter aussi