Integrazione con servizi e protocolli tramite i connettori Greengrass - 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à.

Integrazione con servizi e protocolli tramite i connettori Greengrass

Questa caratteristica è disponibile soloAWS IoT GreengrassCore v1.7 e versioni successive.

Connettori inAWS IoT Greengrasssono moduli predefiniti che rendono più efficiente l'interazione con infrastrutture locali, protocolli del dispositivo,AWSe altri servizi cloud. Utilizzando i connettori, puoi apprendere con più rapidità nuovi protocolli e API, per avere più tempo per concentrarti sullalogicoche è importante per il tuo business.

Il seguente diagramma mostra dove possono essere utilizzati i connettori nellaAWS IoT Greengrass paesaggio.

I connettori si connettono a dispositivi, servizi e risorse locali.

Molti connettori utilizzano i messaggi MQTT per comunicare con i dispositivi client e le funzioni Greengrass Lambda nel gruppo o conAWS IoTe il servizio shadow locale. Nell'esempio seguente, il connettore Twilio Notifications riceve messaggi MQTT messaggi da una funzione Lambda definita dall'utente, utilizza un riferimento locale di un segreto daAWS Secrets Managere chiama l'API Twilio.

Un connettore che riceve un messaggio MQTT da una funzione Lambda e che sta richiamando un servizio.

Per i tutorial sulla creazione di questa soluzione, consulta Nozioni di base sui connettori Greengrass (console) e Nozioni di base sui connettori Greengrass (CLI).

I connettori Greengrass possono aiutarti a estendere le funzioni del dispositivo o creare dispositivi per un unico scopo. Utilizzando i connettori, è possibile:

  • L'implementazione di una logica di business riutilizzabile.

  • L'interazione con servizi di cloud e locali, tra cuiAWSe servizi di terze parti.

  • L'integrazione e l'elaborazione dei dati del dispositivo.

  • Abilitazione di device-to-device richiami con abbonamenti a un argomento MQTT e a funzioni Lambda definite dall'utente

AWSoffre una serie di connettori Greengrass che semplificano le interazioni con le origini dati e i servizi più comuni. Questi moduli precostituiti attivano gli scenari di logging e diagnostica, rifornimento, elaborazione dei dati industriali, allarmi e messaggistica. Per ulteriori informazioni, consulta la pagina AWS-connettori Greengrass forniti .

Requisiti

Per utilizzare i connettori, tieni presente i seguenti punti:

  • Ogni connettore utilizzato ha requisiti che è necessario soddisfare. Questi requisiti potrebbero includere la versione minima del software AWS IoT Greengrass Core, i prerequisiti del dispositivo, le autorizzazioni richieste e i limiti. Per ulteriori informazioni, consulta la pagina AWS-connettori Greengrass forniti .

  • Un gruppo Greengrass può contenere una sola istanza configurata di un determinato connettore. Puoi tuttavia scegliere l'istanza in più abbonamenti. Per ulteriori informazioni, consulta la pagina Parametri di configurazione .

  • Quando la containerizzazione predefinita per il gruppo Greengrass è impostata su Nessun container, i connettori del gruppo devono essere eseguiti senza containerizzazione. Per trovare i connettori che supportano la modalità Nessun container consulta AWS-connettori Greengrass forniti.

Utilizzo dei connettori Greengrass

Un connettoreè un tipo di componente di gruppo. Come altri componenti di gruppo, ad esempio dispositivi client e funzioni Lambda definite dall'utente, dovrai aggiungere i connettori ai gruppi, configurarne le impostazioni e distribuirli inAWS IoT GreengrassCore. I connettori vengono eseguiti nell'ambiente core.

Puoi distribuire alcuni connettori come semplici applicazioni autonome. Ad esempio, il connettore Device Defender legge i parametri del sistema dal dispositivo core e li invia aAWS IoT Device Defenderper l'analisi.

Puoi aggiungere altri connettori come elementi costitutivi di soluzioni più grandi. La soluzione di esempio seguente utilizza il connettore Modbus-RTU Protocol Adapter per elaborare messaggi provenienti dai sensori e il connettore Twilio per avviare messaggi Twilio.

Flusso di dati dalla funzione Lambda al connettore Modbus-RTU Protocol Adapter alla funzione Lambda al connettore Twilio Notifications a Twilio.

Le soluzioni spesso includono funzioni Lambda definite dall'utente che si trovano in prossimità dei connettori ed elaborano i dati inviati o ricevuti dal connettore. In questo esempio, TempMonitorLa funzione riceve dati dal convertitore di protocollo Modbus-RTU, esegue la logica di business, quindi invia i dati a Twilio Notifications.

Di seguito è riportata la procedura generica per creare e distribuire una soluzione:

  1. Definire il flusso di dati di alto livello. Identificare le origini dati, i canali dei dati, i servizi, i protocolli e le risorse di cui hai bisogno. In questa soluzione di esempi, sono inclusi dati sul protocollo RTU Modbus, la porta seriale Modbus fisica e Twilio.

  2. Individuare i connettori da includere nella soluzione e aggiungerli al gruppo. La soluzione di esempio utilizza convertitore di protocollo Modbus-RTU e Twilio Notifications. Per aiutarti a trovare i connettori adeguati al tuo scenario e per ulteriori informazioni sui singoli requisiti, consulta AWS-connettori Greengrass forniti.

  3. Identificare se hai bisogno delle funzioni Lambda definite dall'utente, dei dispositivi client o delle risorse, quindi eventualmente eventualmente crearli e aggiungerli al gruppo. Questo passaggio potrebbe includere funzioni che contengono logica di business o l'elaborazione di dati in un formato richiesto da un'altra entità della soluzione. La soluzione di esempio utilizza le funzioni per l'invio di richieste RTU Modbus e avviare le notifiche Twilio. Include anche una risorsa dispositivo locale per la porta seriale RTU Modbus e una risorsa segreta per il token di autenticazione Twilio.

    Nota

    Le risorse segrete fanno riferimento a password, token e altri segreti di AWS Secrets Manager. I segreti possono essere utilizzati dai connettori e dalle funzioni Lambda per eseguire l'autenticazione con i servizi e le applicazioni. Per impostazione predefinita, AWS IoT Greengrass può accedere ai segreti con nomi che iniziano con "greengrass-". Per ulteriori informazioni, consulta la pagina Distribuzione dei segreti nel core AWS IoT Greengrass .

  4. Creazione di sottoscrizioni che consentono alle entità della soluzione di scambiarsi messaggi MQTT. Se un connettore viene utilizzato in una sottoscrizione, il connettore e il messaggio di origine o di destinazione devono utilizzare la sintassi dell'argomento predefinita supportata dal connettore. Per ulteriori informazioni, consulta la pagina Input e output .

  5. Distribuzione del gruppo nel core Greengrass

Per ulteriori informazioni sulla creazione e distribuzione di un connettore, consulta i seguenti tutorial:

Parametri di configurazione

Molti connettori forniscono parametri che consentono di personalizzarne il funzionamento o l'output. Questi parametri vengono utilizzati durante l'inizializzazione, in fase di runtime o in altri momenti del ciclo di vita del connettore.

I tipi di parametri e il relativo utilizzo possono variare in base al connettore. Ad esempio, il connettore SNS include un parametro che consente di configurare l'argomento predefinito SNS, mentre Device Defender include un parametro che consente di configurare la velocità di campionamento dei dati.

Una versione di gruppo può contenere vari connettori, ma una sola istanza alla volta di un determinato connettore. Questo significa che ciascun connettore nel gruppo può avere solo una configurazione attiva. Tuttavia, l'istanza del connettore può essere utilizzata in più sottoscrizioni nel gruppo. Ad esempio, è possibile creare abbonamenti che consentono a molti dispositivi di inviare dati al connettore Kinesis Firehose.

Parametri utilizzati per l'accesso alle risorse di gruppo

I connettori Greengrass utilizzano le risorse di gruppo per accedere al file system, alle porte, alle periferiche e ad altre risorse locali sul dispositivo core. Se un connettore richiede l'accesso a una risorsa di gruppo, fornirà i relativi parametri di configurazione.

Le risorse di gruppo includono:

  • Risorse locali. Directory, file, porte, pin e periferiche presenti sul dispositivo core Greengrass.

  • Risorse di Machine Learning. Modelli Machine Learning che ricevono formazione nel cloud e vengono distribuiti al core per un'inferenza locale.

  • Risorse segrete. Copie locali, crittografate di password, chiavi, token o testo arbitrario da AWS Secrets Manager. I connettori possono accedere in modo sicuro a questi segreti locali e utilizzarli per autenticare i servizi o l'infrastruttura locale.

Ad esempio, i parametri di Device Defender abilitano l'accesso ai parametri di sistema nell'host/procLa directory ei parametri di Twilio Notifications abilitano l'accesso a un token di autenticazione Twilio memorizzato in locale.

Aggiornamento dei parametri del connettore

I parametri sono configurati quando il connettore viene aggiunto a un gruppo Greengrass. È possibile modificare i valori dei parametri dopo l'aggiunta del connettore.

  • Nella console: Dalla pagina di configurazione del gruppo, aprireConnettorie dal menu contestuale del connettore, selezionareModificare.

    Nota

    Se il connettore utilizza una risorsa segreta che successivamente verrà modificata per fare riferimento a un altro segreto, è necessario modificare i parametri del connettore e confermare la modifica.

  • Nell'API: Creare un'altra versione del connettore che definisca la nuova configurazione.

    LaAWS IoT GreengrassL'API utilizza le versioni per gestire i gruppi. Le versioni non sono modificabili, pertanto per aggiungere o modificare i componenti del gruppo, ad esempio dispositivi client, funzioni e risorse del gruppo, è necessario creare versioni di componenti nuovi o aggiornati. Quindi, è necessario creare e distribuire una versione di gruppo contente la versione di destinazione di ciascun componente.

Dopo aver modificato la configurazione del connettore, è necessario distribuire il gruppo per propagare le modifiche apportate al core.

Input e output

Molti connettori Greengrass possono comunicare con altre entità inviando e ricevendo messaggi MQTT. La comunicazione MQTT è controllata dalle sottoscrizioni che consentono a un connettore di scambiare dati con le funzioni Lambda, i dispositivi client e altri connettori del gruppo Greengrass o conAWS IoTe il servizio shadow locale. Per consentire questa comunicazione, devi creare sottoscrizioni nel gruppo a cui appartiene il connettore. Per ulteriori informazioni, consulta la pagina Sottoscrizioni gestite nel flusso di lavoro di messaggistica MQTT .

I connettori possono essere autori di messaggi, abbonati ai messaggi o entrambi. Ogni connettore definisce gli argomenti MQTT che pubblica o a cui è abbonato. Questi argomenti predefiniti devono essere utilizzati nelle sottoscrizioni in cui il connettore è l'origine o la destinazione di un messaggio. Per i tutorial che includono le fasi di configurazione delle sottoscrizioni a un connettore, consulta Nozioni di base sui connettori Greengrass (console) e Nozioni di base sui connettori Greengrass (CLI).

Nota

Molti connettori dispongono anche di modalità di comunicazione integrate per interagire con il cloud o i servizi locali. Queste variano in base al connettore e potrebbero richiedere la configurazione di parametri o l'aggiunta di autorizzazioni al ruolo del gruppo. Per informazioni sui requisiti del connettore, consultare AWS-connettori Greengrass forniti.

Argomenti di input

La maggior dei connettori ricevono dati su argomenti MQTT. Alcuni connettori effettuano la sottoscrizione a più argomenti per i dati di input. Ad esempio, il connettore Serial Stream supporta due argomenti:

  • serial/+/read/#

  • serial/+/write/#

Per questo connettore, le richieste di lettura e scrittura vengono inviate all'argomento corrispondente. Quando crei gli abbonamenti, assicurati di utilizzare l'argomento in linea con l'implementazione.

I caratteri + e # negli esempi precedenti sono caratteri jolly. Questi caratteri jolly consentono agli abbonati di ricevere messaggi su più argomenti e agli autori di personalizzare gli argomenti di destinazione.

  • Il carattere jolly + appare ovunque nella gerarchia degli argomenti. Può essere sostituito da una voce della gerarchia.

    Ad esempio, per l'argomento sensor/+/input, i messaggi possono essere pubblicati negli argomenti sensor/id-123/input, ma non in sensor/group-a/id-123/input.

  • Il carattere jolly # può comparire solo alla fine della gerarchia dell'argomento. Può essere sostituito da zero o più elementi della gerarchia.

    Ad esempio, per l'argomento sensor/#, i messaggi possono essere pubblicati in sensor/, sensor/id-123 e sensor/group-a/id-123, ma non in sensor.

I caratteri jolly sono validi solo per l'abbonamento agli argomenti. Non è possibile pubblicare messaggi in argomenti contenenti caratteri jolly. Consulta la documentazione del connettore per ulteriori informazioni sui requisiti degli argomenti di input o output. Per ulteriori informazioni, consulta la pagina AWS-connettori Greengrass forniti .

Supporto per la containerizzazione

Per impostazione predefinita, la maggior parte dei connettori viene eseguita sul core di Greengrass in un ambiente di runtime isolato gestito da AWS IoT Greengrass. Questi ambienti di runtime, denominati container, forniscono l'isolamento tra i connettori e il sistema host, offrendo maggiore sicurezza per l'host e il connettore.

Tuttavia, questa containerizzazione di Greengrass non è supportata in alcuni ambienti, come quando si esegueAWS IoT Greengrassin un contenitore Docker o su kernel Linux meno recenti senza cgroups. In questi ambienti, i connettori devono essere eseguiti in modalità No container (Nessun container) . Per trovare i connettori che supportano la modalità Nessun container consulta AWS-connettori Greengrass forniti. Alcuni connettori vengono eseguiti in questa modalità in modo nativo e alcuni connettori consentono di impostare la modalità di isolamento.

Puoi inoltre impostare la modalità di isolamento su No container (Nessun container) in ambienti che supportano la containerizzazione di Greengrass, ma consigliamo di utilizzare la modalità Greengrass container (Container Greengrass) quando possibile.

Nota

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

Aggiornamento delle versioni dei connettori

I provider di connettori potrebbero rilasciare nuove versioni di un connettore che aggiungono funzionalità, risolvono problemi o migliorano le prestazioni. Per informazioni sulle versioni disponibili e sulle modifiche correlate, consulta la documentazione relativa a ciascun connettore.

NellaAWS IoTpuoi verificare la presenza di nuove versioni per i connettori nel gruppo Greengrass.

  1. NellaAWS IoTRiquadro di navigazione della console, inManage (Gestione), EspandereDispositivi Greengrasse quindi scegliereGruppi (V1).

  2. UNDERGruppi Greengrass, scegliere il gruppo.

  3. Scegli Connectors (Connettori) per visualizzare i connettori nel gruppo.

    Se il connettore ha una nuova versione,Disponibilitàil pulsante viene visualizzato nellaUpgradecolonna.

  4. Per aggiornare la versione del connettore:

    1. SulConnettoripage, nellaUpgradecolonna, scegliDisponibilità. Viene visualizzata la pagina Upgrade connector (Aggiorna connettore) in cui vengono visualizzate le impostazioni dei parametri correnti, se applicabili.

      Scegli la nuova versione del connettore, definisci i parametri in base alle esigenze, quindi scegli Upgrade (Aggiorna).

    2. Nella pagina Subscriptions (Sottoscrizioni) aggiungi nuove sottoscrizioni nel gruppo per sostituire quelle che utilizzano il connettore come origine o destinazione. Quindi, rimuovi le vecchie sottoscrizioni.

      Le sottoscrizioni fanno riferimento ai connettori in base alla versione, in modo che diventino non validi se si modifica la versione del connettore nel gruppo.

    3. DaOperazionimenu, scegliDistribuzioneper distribuire le modifiche al core.

Per aggiornare un connettore dall'API AWS IoT Greengrass, crea e distribuisci una versione del gruppo che includa il connettore aggiornato e le sottoscrizioni. Utilizza lo stesso processo seguito per aggiungere un connettore a un gruppo. Per la procedura dettagliata che illustra come utilizzare laAWS CLIper configurare e distribuire un connettore Twilio Notifications di esempio, consultaNozioni di base sui connettori Greengrass (CLI).

Registrazione per connettori

I connettori Greengrass contengono funzioni Lambda che scrivono eventi ed errori nei log Greengrass. A seconda delle impostazioni del gruppo, i log vengono scritti in CloudWatch I log, il file system locale o entrambi. I log dei connettori includono gli ARN della funzione corrispondente. Il seguente ARN di esempio è tratto dal connettore Kinesis Firehose:

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

La configurazione di logging predefinita scrive log a livello di informazioni nel file system con la seguente struttura di directory:

greengrass-root/ggc/var/log/user/region/aws/function-name.log

Per ulteriori informazioni sulla registrazione di Greengrass, consultaMonitoraggio con i log AWS IoT Greengrass.