Nozioni di base sui connettori Greengrass (console) - 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à.

Nozioni di base sui connettori Greengrass (console)

Questa funzione è disponibile solo perAWS IoT GreengrassCore v1.7 e versioni più recenti.

Questo tutorial mostra come utilizzare l'AWS Management Console con i connettori.

Utilizza i connettori per accelerare il ciclo di vita dello sviluppo. I connettori sono moduli precostituiti e riutilizzabili che semplificano l'interazione con servizi, protocolli e risorse. Possono aiutarti a distribuire più rapidamente la logica di business ai dispositivi Greengrass. Per ulteriori informazioni, consulta la pagina Integrazione con servizi e protocolli tramite i connettori Greengrass .

In questo tutorial, configuri e distribuisci ilNotifiche Twilioconnettore. Il connettore riceve le informazioni sui messaggi Twilio come dati di input, quindi attiva un messaggio di testo Twilio. Il flusso di dati viene mostrato nel seguente schema.

Flusso di dati dalla funzione Lambda al connettore Twilio Notifications a Twilio.

Dopo avere configurato il connettore, è necessario creare una funzione Lambda e una sottoscrizione.

  • La funzione valuta i dati simulati da un sensore di temperatura. Pubblica in base a condizioni le informazioni sul messaggio Twilio in un argomento MQTT. Questo è l'argomento a cui il connettore effettua la sottoscrizione.

  • La sottoscrizione consente alla funzione di effettuare la pubblicazione nell'argomento e al connettore di ricevere i dati dall'argomento.

Il connettore Twilio Notifications richiede un token di autorizzazione Twilio per interagire con l'API Twilio. Il token è un segreto sotto forma di testo creato AWS Secrets Manager e a cui fa riferimento una risorsa di gruppo. Ciò consente a AWS IoT Greengrass di creare una copia locale del segreto nel core Greengrass, dove viene crittografata e resa disponibile al connettore. Per ulteriori informazioni, consulta la pagina Distribuzione dei segreti nel core AWS IoT Greengrass .

Il tutorial include le seguenti fasi di alto livello:

Il completamento di questo tutorial richiede circa 20 minuti.

Prerequisiti

Per completare questo tutorial, è necessario quanto segue:

  • Un gruppo Greengrass e un core Greengrass (v1.9.3 or later). Per informazioni su come creare un gruppo e un core Greengrass, consulta Guida introduttiva con AWS IoT Greengrass. Nel tutorial Nozioni di base sono descritte anche le fasi per l'installazione del software AWS IoT Greengrass Core.

  • Python 3.7 installato sul dispositivo AWS IoT Greengrass core.

  • AWS IoT Greengrassdeve essere configurato per supportare segreti locali, come descritto nellaRequisiti dei segreti.

    Nota

    Questo requisito include consentire l'accesso ai tuoi segreti del 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 con*greengrass -.

  • SID dell'account Twilio, token di autorizzazione e numero di telefono abilitato per Twilio. Dopo avere creato un progetto Twilio, questi valori sono disponibili nel pannello di controllo del progetto.

    Nota

    Puoi utilizzare un account di prova Twilio. Se utilizzi un account di prova, devi aggiungere numeri di telefono di destinatari non Twilio a un elenco di numeri di telefono verificati. Per ulteriori informazioni, consultaCome lavorare con il tuo account di prova Twilio gratuito.

Fase 1: Creazione di un segreto di Secrets Manager

In questa fase, è possibile utilizzare la console AWS Secrets Manager per creare un segreto sotto forma di testo del token di autorizzazione Twilio.

  1. Accedere alla console AWS Secrets Manager.

    Nota

    Per ulteriori informazioni su questo processo, consultaFase 1: Crea e archivia il tuo segreto inAWS Secrets ManagernellaAWS Secrets ManagerGuida per l’utente di.

  2. Scegli Archivia un nuovo segreto.

  3. UNDERScegli il tipo segreto, scegliOther type of secret (Altro tipo di segreto).

  4. In Specify the key/value pairs to be stored for this secret (Specifica le coppie chiave/valore da archiviare per il segreto), nella scheda Plaintext (Testo normale), immettere il token di autorizzazione Twilio. Rimuovi tutta la formattazione JSON e immetti solo il valore del token.

  5. Keepaws/secretsmanagerselezionato per la chiave di crittografia, quindi scegliSuccessivo.

    Nota

    Non è previsto alcun addebito daAWS KMSse usi il valore predefinitoAWSchiave gestita che Secrets Manager crea nel tuo account.

  6. In Secret name (Nome segreto), immetti greengrass-TwilioAuthToken, quindi seleziona Next (Avanti).

    Nota

    Per impostazione predefinita, il ruolo del servizio Greengrass consenteAWS IoT Greengrassper ottenere il valore dei segreti con nomi che iniziano congreengrass -. Per ulteriori informazioni, consulta Requisiti dei segreti.

  7. Questo tutorial non richiede la rotazione. Scegliere quindi Disable automatic rotation (Disabilita rotazione automatica), quindiSuccessivo.

  8. Nella pagina Review (Revisione), rivedi le impostazioni e quindi scegli Store (Archivia).

    Dovrai quindi creare una risorsa segreta nel gruppo Greengrass che faccia riferimento al segreto.

Fase 2: Aggiunta di una risorsa segreta a un gruppo Greengrass

In questa fase, aggiungerai una risorsa segreta al gruppo Greengrass. Questa risorsa è un riferimento al segreto creato nella fase precedente.

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

  2. Scegli il gruppo a cui aggiungere la risorsa segreta.

  3. Nella pagina di configurazione del gruppo, scegli l'Risorsequindi scorri verso il basso fino allaSegretiSezione. LaSegretimostra le risorse segrete appartenenti al gruppo. Puoi aggiungere, modificare e rimuovere le risorse segrete da questa sezione.

    Nota

    In alternativa, la console consente di creare una risorsa segreta e segreta quando si configura un connettore o una funzione Lambda. Puoi farlo dai connettoriConfigurazione dei parametripagina o la funzione LambdaRisorse(Certificato creato).

  4. ScegliereInserisciinSegretiSezione.

  5. SulAggiunta di una risorsa segretapagina, inserisciMyTwilioAuthTokenperNome risorsa.

  6. Per ilSecret, scegligreengrass -TwilioAuthToken.

  7. NellaSeleziona etichette (opzionale)Sezione, la AWSCURRENT L'etichetta di gestione temporanea rappresenta la versione più recente del segreto. Questa etichetta è sempre inclusa in una risorsa segreta.

    Nota

    Questo tutorial richiede l' AWSCURRENT solo per l'etichetta. Puoi anche includere etichette necessarie per la funzione o per il connettore Lambda.

  8. Scegliere Add resource (Aggiungi risorsa).

Fase 3: Aggiunta di un connettore al gruppo Greengrass

In questa fase, si configurano i parametri delConnettore di notifica Twilioe aggiungilo al gruppo.

  1. Nella pagina di configurazione del gruppo, scegliere Connectors (Connettori), quindi Add a connector (Aggiungi un connettore).

  2. SulAggiungi connettorepagina, scegliereNotifiche Twilio.

  3. Scegliere la versione .

  4. NellaConfigurazioneSezione:

    • PerRisorsa token di autenticazione Twilio, immettere la risorsa creata nella fase precedente.

      Nota

      Quando si immette la risorsa, ilARN del segreto del token di autenticazione Twiliola proprietà è popolata per te.

    • In Default from phone number (Impostazione predefinita da numero di telefono), immettere il numero di telefono abilitato per Twilio.

    • In Twilio account SID (SID account Twilio), immettere il SID dell'account Twilio.

  5. Scegliere Add resource (Aggiungi risorsa).

Fase 4: Creazione di un pacchetto di distribuzione della funzione Lambda

Per creare una funzione Lambda, devi prima creare una funzione Lambdapacchetto di distribuzioneche contiene il codice della funzione e le dipendenze. Le funzioni Lambda di Greengrass richiedono ilAWS IoT GreengrassCore SDKper attività come la comunicazione con messaggi MQTT nell'ambiente principale e l'accesso ai segreti locali. Questo tutorial crea una funzione Python, in modo da utilizzare la versione Python dell'SDK nel pacchetto di distribuzione.

  1. DaAWS IoT GreengrassCore SDKpagina di download, scarica ilAWS IoT GreengrassCore SDK per Python sul tuo computer.

  2. Decomprimere il pacchetto scaricato per ottenere l'SDK. Il kit SDK è la cartella greengrasssdk.

  3. Salvare la seguente funzione del codice Python nel file locale temp_monitor.py.

    import greengrasssdk import json import random client = greengrasssdk.client('iot-data') # publish to the Twilio Notifications connector through the twilio/txt topic def function_handler(event, context): temp = event['temperature'] # check the temperature # if greater than 30C, send a notification if temp > 30: data = build_request(event) client.publish(topic='twilio/txt', payload=json.dumps(data)) print('published:' + str(data)) print('temperature:' + str(temp)) return # build the Twilio request from the input data def build_request(event): to_name = event['to_name'] to_number = event['to_number'] temp_report = 'temperature:' + str(event['temperature']) return { "request": { "recipient": { "name": to_name, "phone_number": to_number, "message": temp_report } }, "id": "request_" + str(random.randint(1,101)) }
  4. Comprimere le voci seguenti nel file temp_monitor_python.zip. Al momento della creazione del file ZIP, includere solo il codice e le dipendenze, non la cartella che li contiene.

    • temp_monitor.py. La logica dell'app.

    • greengrasssdk. Libreria richiesta per le funzioni Python Greengrass Lambda che pubblicano messaggi MQTT.

    Questo file è il pacchetto di distribuzione della funzione Lambda.

Creare a questo punto una funzione Lambda che utilizzi il pacchetto di distribuzione.

Fase 5: Creazione di una funzione Lambda nellaAWS Lambdaplancia

In questa fase, utilizzerai l'AWS Lambdaconsole per creare una funzione Lambda e configurarla in modo che utilizzi il pacchetto di distribuzione. In seguito, pubblicherai una versione della funzione e creerai un alias.

  1. Innanzitutto, crea la funzione Lambda.

    1. Nella AWS Management Console, scegli Services (Servizi) e apri la console AWS Lambda.

    2. ScegliereCrea funzionequindi scegliereAuthor from scratch (Crea da zero).

    3. Nella sezione Basic information (Informazioni di base), specifica i seguenti valori:

      • Nel campo Function name (Nome funzione), immettere TempMonitor.

      • In Runtime, scegliere Python 3.7.

      • PerAutorizzazioni, mantenere l'impostazione predefinita. Questo crea un ruolo di esecuzione che concede le autorizzazioni Lambda di base. Questo ruolo non viene utilizzato daAWS IoT Greengrass.

    4. Nella parte inferiore della pagina scegliCrea funzione.

  2. Quindi, registra il gestore e carica il pacchetto di distribuzione della funzione Lambda.

    1. SulCodescheda, sottoCodice sorgente, scegliCarica da. Dal menu a discesa, sceglifile in formato zip.

      Il menu a discesa Carica da con file.zip evidenziato.
    2. ScegliereCaricamentoquindi scegli iltemp_monitor_python.zippacchetto di distribuzione. Quindi, scegliere Save (Salva).

    3. SulCodetab per la funzione, sottoImpostazioni di runtime, scegliModificare, quindi impostare i seguenti valori.

      • In Runtime, scegliere Python 3.7.

      • In Handler (Gestore), immetti temp_monitor.function_handler

    4. Seleziona Save (Salva.

      Nota

      LaTestpulsante sullaAWS Lambdanon funziona con questa funzione. LaAWS IoT GreengrassCore SDK non contiene moduli necessari per eseguire le funzioni Lambda di Greengrass in modo indipendente nelAWS Lambdaconsole. Questi moduli (ad esempio,greengrass_common) vengono forniti alle funzioni dopo che sono state implementate nel core Greengrass.

  3. Ora, pubblica la prima versione della funzione Lambda e crea unalias per la versione.

    Nota

    I gruppi Greengrass possono fare riferimento a una funzione Lambda tramite alias (consigliato) o per versione. L'utilizzo di un alias semplifica la gestione degli aggiornamenti del codice perché non è necessario modificare la tabella di sottoscrizione o la definizione del gruppo quando il codice funzione viene aggiornato. Invece, è sufficiente puntare l'alias alla nuova versione della funzione.

    1. Nel menu Actions (Operazioni), seleziona Publish new version (Pubblica nuova versione).

    2. Per Version description (Descrizione versione), immettere First version, quindi scegliere Publish (Pubblica).

    3. SulTempMonitor: 1pagina di configurazione, dallaOperazionimenu, scegliCreare alias.

    4. Nella pagina Create a new alias (Crea un nuovo alias), utilizza i seguenti valori:

      • In Name (Nome), inserire GG_TempMonitor.

      • In Version (Versione), selezionare 1.

      Nota

      AWS IoT Greengrassnon supporta gli alias Lambda per$LATESTVersioni.

    5. Scegli Crea.

Ora puoi aggiungere la funzione Lambda al gruppo Greengrass.

Fase 6: Aggiunta di una funzione Lambda al gruppo Greengrass

In questa fase, aggiungerai la funzione Lambda al gruppo, quindi configurerai il ciclo di vita e le variabili di ambiente della funzione. Per ulteriori informazioni, consulta la pagina Controllo dell'esecuzione delle funzioni Greengrass Lambda utilizzando la configurazione specifica del gruppo .

  1. Nella pagina di configurazione del gruppo, scegli l'Funzioni Lambdalinguetta.

  2. UNDERFunzioni Lambda, scegliInserisci.

  3. SulAggiungi funzione Lambdapagina, scegliereTempMonitorper la funzione Lambda.

  4. PerVersione delle funzioni Lambda, scegliAlias: GG_TempMonitor.

  5. ScegliereAggiungi funzione Lambda.

Fase 7: Aggiunta di abbonamenti al gruppo Greengrass

In questa fase, aggiungerai una sottoscrizione che consente alla funzione Lambda di inviare dati di input al connettore. Il connettore definisce gli argomenti MQTT a cui è sottoscritto. Pertanto, questa sottoscrizione utilizza uno degli argomenti. Si tratta dello argomento in cui la funzione di esempio effettua la pubblicazione.

In questo tutorial, crei anche sottoscrizioni che consentono alla funzione di ricevere letture simulate della temperatura da AWS IoT e che consentono a AWS IoT di ricevere informazioni sullo stato dal connettore.

  1. Nella pagina di configurazione del gruppo, scegli l'Abbonamentischeda, quindi scegliAggiungi sottoscrizione.

  2. SulCreazione di una sottoscrizione, configura l'origine e la destinazione come indicato di seguito:

    1. PerTipo di origine, scegliLambda function (Funzione Lambda)e quindi scegliereTempMonitor.

    2. PerTarget type (Tipo di destinazione), scegliConnectore quindi scegliereNotifiche Twilio.

  3. Per ilFiltro di argomenti, sceglitwilio/txt.

  4. Scegliere Create Subscription (Crea iscrizione).

  5. Ripetere le fasi da 1 a 4 per creare un abbonamento che consente a AWS IoT di pubblicare messaggi nella funzione.

    1. PerTipo di origine, scegliService (Servizio)e quindi scegliereIoT Cloud.

    2. PerSeleziona un target, scegliLambda function (Funzione Lambda)e quindi scegliereTempMonitor.

    3. In Topic filter (Filtro argomento), immettere temperature/input.

  6. Ripetere le fasi da 1 a 4 per creare una sottoscrizione che consenta al connettore di pubblicare messaggi in AWS IoT.

    1. PerTipo di origine, scegliConnectore quindi scegliereNotifiche Twilio.

    2. PerTarget type (Tipo di destinazione), scegliService (Servizio)e quindi scegliereIoT Cloud.

    3. In Topic filter (Filtro argomento), viene inserito twilio/message/status. Si tratta dell'argomento predefinito in cui pubblica il connettore.

Fase 8: Distribuire il gruppo Greengrass

Distribuire il gruppo al nuovo dispositivo core.

  1. Assicurarsi che il fileAWS IoT Greengrasscore è in esecuzione. Esegui i seguenti comandi nel terminale di Raspberry Pi in base alle esigenze.

    1. Per controllare se il daemon è in esecuzione:

      ps aux | grep -E 'greengrass.*daemon'

      Se l'output contiene una voce root per /greengrass/ggc/packages/ggc-version/bin/daemon, allora il daemon è in esecuzione.

      Nota

      La versione nel percorso dipende dalla versione del software AWS IoT Greengrass Core installata sul dispositivo core.

    2. Per avviare il daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Nella pagina di configurazione del gruppo, scegliDistribuzione.

    1. NellaFunzioni Lambdascheda, sotto la schedaFunzioni Lambda del sistemasezione, selezionaRilevatore di IPe scegliModificare.

    2. NellaModifica impostazioni rilevatore IPfinestra di dialogo, selezionareRileva e sostituisci automaticamente gli endpoint del broker MQTT.

    3. Seleziona Save (Salva.

      Questo consente ai dispositivi di acquisire automaticamente informazioni di base sulla connettività, come, ad esempio indirizzo IP, DNS e numero della porta. È consigliato il rilevamento automatico, ma AWS IoT Greengrass supporta anche endpoint specifici manualmente. Ti viene chiesto il metodo di individuazione solo la prima volta che il gruppo viene distribuito.

      Nota

      Se richiesto, concedi l'autorizzazione per creare ilRuolo del servizio Greengrasse associalo al tuoAccount AWSnella correnteRegione AWS. Tale ruolo consente aAWS IoT Greengrassper accedere alle risorse inAWSServizi .

      Nella pagina Deployments (Distribuzioni) vengono visualizzati il timestamp della distribuzione, l'ID versione e lo stato. Una volta completata, la distribuzione dovrebbe mostrare lo statoCompletato.

      Per la risoluzione dei problemi, consultare Risoluzione dei problemi relativi a AWS IoT Greengrass.

Nota

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.

Test della soluzione

  1. SulAWS IoTHome page della console, scegliTest.

  2. PerSottoscrizione all'argomento, utilizza i seguenti valori, quindi scegliSottoscrizione. I connettori Twilio Notifications pubblicano informazioni sullo stato in questo argomento.

    Proprietà

    Value (Valore)

    Argomento sottoscrizione

    twilio/message/status

    Visualizzazione payload MQTT

    Visualizza i payload come stringhe

  3. PerPubblicazione nell'argomento, utilizza i seguenti valori, quindi scegliPubblicareper richiamare la funzione.

    Proprietà

    Value (Valore)

    Argomento

    temperatura/input

    Message

    Replace (Sostituisci)nome-destinatariocon un nome erecipient-phone-numbercon il numero di telefono del destinatario del messaggio di testo. Esempio: +12345000000

    { "to_name": "recipient-name", "to_number": "recipient-phone-number", "temperature": 31 }

    Se utilizzi un account di prova, devi aggiungere numeri di telefono di destinatari non Twilio a un elenco di numeri di telefono verificati. Per ulteriori informazioni, consultaVerifica del numero di telefono personale.

    Se l'operazione viene completata, il destinatario riceve il messaggio di testo e la console mostra lo stato success dai dati di output.

    A questo punto, è necessario modificare temperature nel messaggio di input in 29 e pubblicare. Poiché è un valore inferiore a 30, il TempMonitor non attiverà un messaggio Twilio.

Consulta anche