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à.
Splunk Integrconnector
avvertimento
Questo connettore è stato spostato nelfase di vita prolungata, eAWS 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 .
L'integrazione Splunkconnettorepubblica i dati dai dispositivi Greengrass su Splunk. In questo modo potrai utilizzare Splunk per monitorare e analizzare l'ambiente core di Greengrass e agire sugli eventi locali. Il connettore si integra con HTTP Event Collector (HEC). Per ulteriori informazioni, consulta Introduzione a Splunk HTTP Event Collector
Questo connettore riceve dati di eventi e di logging in un argomento MQTT e pubblica i dati così come sono nell'API Splunk.
Puoi utilizzare questo connettore per supportare scenari industriali, ad esempio:
-
Gli operatori possono utilizzare i dati periodici provenienti da attuatori e sensori (ad esempio, letture di temperatura, pressione e acqua) per attivare allarmi se i valori superano una determinata soglia.
-
Gli sviluppatori utilizzano i dati raccolti dai macchinari industriali per creare modelli ML in grado di monitorare le apparecchiature in vista di potenziali problemi.
Questo connettore dispone delle versioni seguenti.
Versione |
ARN |
---|---|
4 |
|
3 |
|
2 |
|
1 |
|
Per informazioni sulle modifiche di ogni versione, consulta Changelog.
Requisiti
Questo connettore presenta i seguenti requisiti:
Parametri del connettore
Questo connettore fornisce i seguenti parametri:
Esempio di creazione di un connettore (AWS CLI)
Il seguente comando CLI crea unConnectorDefinition
con una versione iniziale che contiene il connettore Splunk Integration.
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MySplunkIntegrationConnector", "ConnectorArn": "arn:aws:greengrass:
region
::/connectors/SplunkIntegration/versions/4", "Parameters": { "SplunkEndpoint": "https://myinstance.cloud.splunk.com:8088", "MemorySize": 200000, "SplunkQueueSize": 10000, "SplunkFlushIntervalSeconds": 5, "SplunkTokenSecretArn":"arn:aws:secretsmanager:region
:account-id
:secret:greengrass-secret-hash
", "SplunkTokenSecretArn-ResourceId": "MySplunkResource", "IsolationMode" : "GreengrassContainer" } } ] }'
Nota
La funzione Lambda in questo connettore ha un::::ciclo 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 dati di eventi e di logging in un argomento MQTT e pubblica i dati ricevuti così come sono nell'API Splunk. I messaggi di input devono essere in formato JSON.
- Filtro argomento in sottoscrizione
-
splunk/logs/put
- Proprietà dei messaggi
-
request
-
I dati dell'evento da inviare all'API Splunk. Gli eventi devono soddisfare le specifiche dell'API services/collector
. Campo obbligatorio:
true
Type:
object
. Soloevent
è obbligatoria solo la proprietà. id
-
Un ID arbitrario della richiesta. Questa proprietà viene utilizzata per associare una richiesta di input a uno stato di output.
Campo obbligatorio:
false
Tipo:
string
- Limiti
-
Tutti i limiti imposti dall'API Splunk vengono applicati quando si utilizza questo connettore. Per ulteriori informazioni, consulta services/collector
. - Input di esempio
-
{ "request": { "event": "some event", "fields": { "severity": "INFO", "category": [ "value1", "value2" ] } }, "id": "request123" }
Dati di output
Questo connettore pubblica i dati di output in due argomenti:
-
Informazioni di stato nell'argomento
splunk/logs/put/status
. -
Gli errori nell'argomento
splunk/logs/put/error
.
- Filtro di argomenti:
splunk/logs/put/status
-
Utilizza questo argomento per ascoltare lo stato delle richieste. Ogni volta che il connettore invia all'API Splunk un batch di dati ricevuti, viene pubblicato l'elenco degli ID delle richieste con esito positivo e di quelle con esito negativo.
- Output di esempio
-
{ "response": { "succeeded": [ "request123", ... ], "failed": [ "request789", ... ] } }
- Filtro di argomenti:
splunk/logs/put/error
-
Utilizza questo argomento per ascoltare gli errori del connettore. La proprietà
error_message
che descrive l'errore o il timeout rilevato durante l'elaborazione della richiesta.- Output di esempio
-
{ "response": { "error": "UnauthorizedException", "error_message": "invalid splunk token", "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
-
Se stai usando altri runtime Python, puoi creare un collegamento simbolico da Python3.x a Python 3.7.
-
Gli argomenti Nozioni di base sui connettori (console) e Nozioni di base sui connettori (CLI) contengono passaggi dettagliati che illustrano come configurare e distribuire un connettore Twilio Notifications di esempio.
-
Assicurarsi di soddisfare i requisiti per il connettore.
-
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 di 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.
-
Configurare il gruppo Greengrass.
-
Aggiungi la funzione Lambda con il suo alias (scelta consigliata). Configura il ciclo di vita Lambda su lunga durata (o
"Pinned": true
nella CLI). -
Aggiungi la risorsa segreta richiesta e concedi l'accesso in lettura alla funzione Lambda.
-
Aggiungere il connettore e configurarne i relativi parametri.
-
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 nellaAWS IoTConsole.
-
-
-
Distribuisci il gruppo.
-
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": false
nella 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 time import json iot_client = greengrasssdk.client('iot-data') send_topic = 'splunk/logs/put' def create_request_with_all_fields(): return { "request": { "event": "Access log test message." }, "id" : "req_123" } 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
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 |
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.