ServiceNow MetricBase Connettore di integrazione - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

ServiceNow MetricBase Connettore di integrazione

avvertimento

Questo connettore è stato spostato nelFase di vitaeAWS IoT Greengrassnon rilascerà aggiornamenti che forniscono funzionalità, miglioramenti alle funzionalità esistenti, patch di sicurezza o correzioni di bug. Per ulteriori informazioni, consulta la pagina AWS IoT Greengrass Version 1politica di manutenzione .

La ServiceNow MetricBase Integrationconnettorepubblica i parametri delle serie temporali dai dispositivi Greengrass in ServiceNow MetricBase. In questo modo potrai archiviare, analizzare e visualizzare i dati delle serie temporali dall'ambiente core di Greengrass e agire sugli eventi locali.

Questo connettore riceve dati delle serie temporali su un argomento MQTT e li pubblica in ServiceNow API a intervalli regolari.

Puoi utilizzare questo connettore per supportare molti scenari, ad esempio:

  • Creazione di avvisi basati su soglie e allarmi basati sui dati delle serie temporali raccolti dai dispositivi Greengrass.

  • Utilizzo dei dati dei servizi temporali dei dispositivi Greengrass con applicazioni personalizzate integrate nel ServiceNow platform.

Questo connettore dispone delle versioni seguenti.

Versione

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

Per informazioni sulle modifiche di ogni versione, consulta Changelog.

Requisiti

Questo connettore presenta i seguenti requisiti:

Version 3 - 4
  • AWS IoT GreengrassSoftware Core v1.9.3 o versioni successive.AWS IoT Greengrassdeve essere configurato per supportare segreti locali, come descritto inRequisiti per i segreti.

    Nota

    Questo requisito include consentire l'accesso ai tuoi segreti di Secrets Manager. Se stai utilizzando il ruolo del servizio Greengrass predefinito, Greengrass avrà il permesso di ottenere i valori dei segreti con nomi che iniziano congreengrass -.

  • Pitoneversione 3.7 o 3.8 installata sul dispositivo core e aggiunta alla variabile di ambiente PATH.

    Nota

    Per utilizzare Python 3.8, eseguire il seguente comando per creare un collegamento simbolico dalla cartella di installazione predefinita di Python 3.7 ai binari Python 3.8 installati.

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

    Questo configura il dispositivo in modo che soddisfi il requisito Python per AWS IoT Greengrass.

  • UN ServiceNow account con un abbonamento a MetricBase. Nello statoInoltre, nell'account è necessario creare un parametro e una tabella dei parametri. Per ulteriori informazioni, consultaMetricBasenella ServiceNow documentazione.

  • Un segreto in formato testo diAWS Secrets Managerin cui vengono memorizzati il nome utente e la password per accedere al ServiceNow istanza con autenticazione di base. Il segreto deve includere le chiavi "utente" e "password" con i valori corrispondenti. Per ulteriori informazioni, consultaCreazione di un segreto di basenellaAWS Secrets ManagerGuida per l’utente di.

  • Una risorsa segreta nel gruppo Greengrass che fa riferimento al segreto Secrets Manager. Per ulteriori informazioni, consulta la pagina Distribuzione dei segreti nel core AWS IoT Greengrass .

Versions 1 - 2
  • AWS IoT GreengrassSoftware Core v1.7 o versioni successive.AWS IoT Greengrassdeve essere configurato per supportare segreti locali, come descritto inRequisiti per i segreti.

    Nota

    Questo requisito include consentire l'accesso ai tuoi segreti di Secrets Manager. Se stai utilizzando il ruolo del servizio Greengrass predefinito, Greengrass avrà il permesso di ottenere i valori dei segreti con nomi che iniziano congreengrass -.

  • Pitoneversione 2.7 installata sul dispositivo core e aggiunta alla variabile di ambiente PATH.

  • UN ServiceNow account con un abbonamento a MetricBase. Nello statoInoltre, nell'account è necessario creare un parametro e una tabella dei parametri. Per ulteriori informazioni, consultaMetricBasenella ServiceNow documentazione.

  • Un segreto in formato testo diAWS Secrets Managerin cui vengono memorizzati il nome utente e la password per accedere al ServiceNow istanza con autenticazione di base. Il segreto deve includere le chiavi "utente" e "password" con i valori corrispondenti. Per ulteriori informazioni, consultaCreazione di un segreto di basenellaAWS Secrets ManagerGuida per l’utente di.

  • Una risorsa segreta nel gruppo Greengrass che fa riferimento al segreto Secrets Manager. Per ulteriori informazioni, consulta la pagina Distribuzione dei segreti nel core AWS IoT Greengrass .

Parametri del connettore

Questo connettore fornisce i seguenti parametri:

Version 4
PublishInterval

Il numero massimo di secondi di attesa fra la pubblicazione di eventi in ServiceNow. Il valore massimo è 900.

Il connettore pubblica in ServiceNow quandoPublishBatchSizeèPublishIntervalScade.

Nome visualizzato nellaAWS IoTConsole : Intervallo di pubblicazione in secondi

Campo obbligatorio:true

Tipo: string

Valori validi: 1 - 900

Modello di[1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

Il numero massimo di valori dei parametri che è possibile raggruppare prima che vengano pubblicati in ServiceNow.

Il connettore pubblica in ServiceNow quandoPublishBatchSizeèPublishIntervalScade.

Nome visualizzato nellaAWS IoTConsole : Publish batch

Campo obbligatorio:true

Tipo: string

Modello di^[0-9]+$

InstanceName

Il nome dell'istanza utilizzata per la connessione ServiceNow.

Nome visualizzato nellaAWS IoTConsole : Nome del ServiceNow istanza

Campo obbligatorio:true

Tipo: string

Modello di.+

DefaultTableName

Il nome della tabella che contiene ilGlideRecordassociato alle serie temporali MetricBase Database. La proprietà table nel payload del messaggio di input può essere utilizzata per sostituire questo valore.

Nome visualizzato nellaAWS IoTConsole : Il nome della tabella che contiene il parametro

Campo obbligatorio:true

Tipo: string

Modello di.+

MaxMetricsToRetain

Il numero massimo di parametri da salvare in memoria prima che vengano sostituiti con nuovi parametri.

Questo limite è valido quando non è presente una connessione a Internet e il connettore inizia il buffering dei parametri da pubblicare successivamente. Quando il buffer è pieno, i parametri meno recenti vengono sostituiti da quelli nuovi.

Nota

I parametri non vengono salvati se si interrompe il processo host del connettore. Ad esempio, ciò potrebbe verificarsi durante la distribuzione dei gruppi o al riavvio del dispositivo.

Il valore deve essere superiore alle dimensioni del batch e abbastanza grande da contenere messaggi in base alla velocità in entrata dei messaggi MQTT.

Nome visualizzato nellaAWS IoTConsole : Maximum metrics to retain in memory (

Campo obbligatorio:true

Tipo: string

Modello di^[0-9]+$

AuthSecretArn

Il segretoAWS Secrets Managerche archiade il ServiceNow Nome utente e password. Deve essere un segreto in formato testo. Il segreto deve includere le chiavi "utente" e "password" con i valori corrispondenti.

Nome visualizzato nellaAWS IoTConsole : ARN del segreto di autorizzazione

Campo obbligatorio:true

Tipo: string

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

AuthSecretArn-ResourceId

La risorsa segreta del gruppo che fa riferimento al segreto Secrets Manager per il ServiceNow Credenziali .

Nome visualizzato nellaAWS IoTConsole : Auth token

Campo obbligatorio:true

Tipo: string

Modello di.+

IsolationMode

Modalità di containerizzazione per questo connettore. L'impostazione predefinita è GreengrassContainer, il che significa che il connettore viene eseguito in un ambiente di runtime isolato all'interno del container AWS IoT Greengrass.

Nota

L'impostazione predefinita della containerizzazione per il gruppo non si applica ai connettori.

Nome visualizzato nellaAWS IoTConsole : Modalità di isolamento del container

Campo obbligatorio:false

Tipo: string

Valori validi: GreengrassContainer o NoContainer

Modello di^NoContainer$|^GreengrassContainer$

Version 1 - 3
PublishInterval

Il numero massimo di secondi di attesa fra la pubblicazione di eventi ServiceNow. Il valore massimo è 900.

Il connettore pubblica in ServiceNow quandoPublishBatchSizeèPublishIntervalScade.

Nome visualizzato nellaAWS IoTConsole : Intervallo di pubblicazione in secondi

Campo obbligatorio:true

Tipo: string

Valori validi: 1 - 900

Modello di[1-9]|[1-9]\d|[1-9]\d\d|900

PublishBatchSize

Il numero massimo di valori dei parametri che è possibile raggruppare prima che vengano pubblicati in ServiceNow.

Il connettore pubblica in ServiceNow quandoPublishBatchSizeèPublishIntervalScade.

Nome visualizzato nellaAWS IoTConsole : Publish batch

Campo obbligatorio:true

Tipo: string

Modello di^[0-9]+$

InstanceName

Il nome dell'istanza utilizzata per la connessione ServiceNow.

Nome visualizzato nellaAWS IoTConsole : Nome del ServiceNow istanza

Campo obbligatorio:true

Tipo: string

Modello di.+

DefaultTableName

Il nome della tabella che contiene ilGlideRecordassociato alle serie temporali MetricBase Database. La proprietà table nel payload del messaggio di input può essere utilizzata per sostituire questo valore.

Nome visualizzato nellaAWS IoTConsole : Il nome della tabella che contiene il parametro

Campo obbligatorio:true

Tipo: string

Modello di.+

MaxMetricsToRetain

Il numero massimo di parametri da salvare in memoria prima che vengano sostituiti con nuovi parametri.

Questo limite è valido quando non è presente una connessione a Internet e il connettore inizia il buffering dei parametri da pubblicare successivamente. Quando il buffer è pieno, i parametri meno recenti vengono sostituiti da quelli nuovi.

Nota

I parametri non vengono salvati se si interrompe il processo host del connettore. Ad esempio, ciò potrebbe verificarsi durante la distribuzione dei gruppi o al riavvio del dispositivo.

Il valore deve essere superiore alle dimensioni del batch e abbastanza grande da contenere messaggi in base alla velocità in entrata dei messaggi MQTT.

Nome visualizzato nellaAWS IoTConsole : Maximum metrics to retain in memory (

Campo obbligatorio:true

Tipo: string

Modello di^[0-9]+$

AuthSecretArn

Il segretoAWS Secrets Managerche archiade il ServiceNow Nome utente e password. Deve essere un segreto in formato testo. Il segreto deve includere le chiavi "utente" e "password" con i valori corrispondenti.

Nome visualizzato nellaAWS IoTConsole : ARN del segreto di autorizzazione

Campo obbligatorio:true

Tipo: string

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

AuthSecretArn-ResourceId

La risorsa segreta del gruppo che fa riferimento al segreto Secrets Manager per il ServiceNow Credenziali .

Nome visualizzato nellaAWS IoTConsole : Auth token

Campo obbligatorio:true

Tipo: string

Modello di.+

Esempio di creazione di un connettore (AWS CLI)

Il seguente comando CLI crea unConnectorDefinitioncon una versione iniziale che contiene ServiceNow MetricBase Connettore di integrazione.

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

La funzione Lambda in questo connettore ha undi lungaCiclo di vita

NellaAWS IoT Greengrassconsole, è possibile aggiungere un connettore dal gruppoConnettori(Certificato creato). Per ulteriori informazioni, consulta la pagina Nozioni di base sui connettori Greengrass (console) .

Dati di input

Questo connettore accetta i parametri delle serie temporali su un argomento MQTT e li pubblica in ServiceNow. I messaggi di input devono essere in formato JSON.

Filtro argomento in sottoscrizione

servicenow/metricbase/metric

Proprietà dei messaggi
request

Informazioni sulla tabella, sul record e sul parametro. Questa richiesta rappresenta l'oggetto seriesRef in una richiesta POST delle serie temporali. Per ulteriori informazioni, consulta API delle serie temporali Clotho - POST.

Campo obbligatorio:true

Tipo:objectcon le seguenti proprietà:

subject

Il valore sys_id del record specifico della tabella.

Campo obbligatorio:true

Tipo: string

metric_name

Il nome del campo del parametro.

Campo obbligatorio:true

Tipo: string

table

Il nome della tabella in cui memorizzare il record. Specifica questo valore per sostituire il parametro DefaultTableName.

Campo obbligatorio:false

Tipo: string

value

Il valore del punto dati individuale.

Campo obbligatorio:true

Tipo: float

timestamp

Il timestamp del punto dati individuale. Il valore predefinito è l'ora corrente.

Campo obbligatorio:false

Tipo: string

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

Dati di output

Questo connettore pubblica le informazioni di stato come dati di output su un argomento MQTT.

Filtro argomento in sottoscrizione

servicenow/metricbase/metric/status

Output di esempio: Riuscito
{ "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 } ] } }
Output di esempio: Errore
{ "response": { "error": "InvalidInputException", "error_message": "metric value is invalid", "status": "fail" } }
Nota

Se il connettore rileva un errore riprovabile (ad esempio, errori di connessione), tenta nuovamente la pubblicazione nel batch successivo.

Esempio di utilizzo

Utilizza i seguenti passaggi di alto livello per impostare un esempio di funzione Lambda Python 3.7 che puoi utilizzare per provare il connettore.

Nota
  1. Assicurarsi di soddisfare i requisiti per il connettore.

  2. Crea e pubblica una funzione Lambda che invia i dati di input al connettore.

    Salvare il codice di esempio come file PY. Scarica e decomprimi il fileAWS IoT GreengrassSDK Core per Python. Quindi, crea un pacchetto zip che contiene il file PY e la cartella greengrasssdk a livello root. Questo pacchetto zip è il pacchetto di distribuzione caricato suAWS Lambda.

    Dopo aver creato la funzione Lambda Python 3.7, pubblica una versione della funzione e crea un alias.

  3. Configurare il gruppo Greengrass.

    1. Aggiungi la funzione Lambda con il suo alias (scelta consigliata). Configura il ciclo di vita Lambda su lunga durata (o"Pinned": truenella CLI).

    2. Aggiungi la risorsa segreta richiesta e concedi l'accesso in lettura alla funzione Lambda.

    3. Aggiungere il connettore e configurarne i relativi parametri.

    4. Aggiungere sottoscrizioni che consentono al connettore di ricevere i dati di input e inviare i dati di output nei filtri degli argomenti supportati.

      • Imposta la funzione Lambda come origine, il connettore come destinazione e utilizza un filtro per l'argomento di input supportato.

      • Imposta il connettore come origine, AWS IoT Core come destinazione e utilizza un filtro per l’argomento di output supportato. Utilizza questa sottoscrizione per visualizzare i messaggi di stato inAWS IoTConsole.

  4. Distribuisci il gruppo.

  5. NellaAWS IoTconsole,Test, sottoscrivi l'argomento dei dati di output per visualizzare i messaggi di stato dal connettore. La funzione Lambda di esempio ha una lunga durata e inizia a inviare messaggi immediatamente dopo la distribuzione del gruppo.

    Al termine del test, puoi impostare il ciclo di vita Lambda su «on demand» (o"Pinned": falsenella CLI) e distribuire il gruppo. Ciò impedisce alla funzione di inviare messaggi.

Esempio

La funzione Lambda di esempio seguente invia un messaggio di input al connettore.

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

Licenze

La ServiceNow MetricBase Il connettore di integrazione include il software e le licenze di terze parti

Questo connettore viene rilasciato sottoAccordo di licenza del software Greengrass Core.

Changelog

La tabella seguente descrive le modifiche apportate a ogni versione del connettore.

Versione

Modifiche

4

Aggiunto il parametro IsolationMode per configurare la modalità di containerizzazione per il connettore.

3

Aggiornato il runtime Lambda a Python 3.7, che modifica il requisito di runtime.

2

Correggere per ridurre l'eccessiva registrazione di log.

1

Versione iniziale.

Un gruppo Greengrass può contenere una sola versione del connettore alla volta. Per informazioni sull'aggiornamento di una versione del connettore, consulta Aggiornamento delle versioni dei connettori.

Consulta anche