View a markdown version of this page

Come configurare l'accesso alle risorse locali utilizzando Console di gestione AWS - AWS IoT Greengrass

Avviso di fine del supporto: il 7 ottobre 2026, AWS interromperà il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita Migrate from. AWS IoT Greengrass Version 1

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à.

Come configurare l'accesso alle risorse locali utilizzando Console di gestione AWS

Questa funzionalità è disponibile per AWS IoT Greengrass Core v1.3 e versioni successive.

È possibile configurare le funzioni Lambda per accedere in modo sicuro alle risorse locali sul dispositivo principale Greengrass host. Per risorse locali si intendono bus e periferiche che sono fisicamente presenti nell'host o volumi di file system nel sistema operativo dell'host. Per ulteriori informazioni, inclusi i requisiti e i vincoli, consulta Accedi alle risorse locali con funzioni e connettori Lambda.

Questo tutorial descrive come utilizzare il Console di gestione AWS per configurare l'accesso alle risorse locali presenti su un AWS IoT Greengrass dispositivo principale. Include le seguenti fasi di alto livello:

Per un tutorial che utilizza il AWS Command Line Interface, vedereCome configurare l'accesso alle risorse locali utilizzando AWS interfaccia a riga di comando.

Prerequisiti

Per completare questo tutorial, è necessario quanto segue:

  • Un gruppo Greengrass e un core Greengrass (v1.3 o successivo). Per creare un gruppo o un core Greengrass, consulta Nozioni di base su AWS IoT Greengrass.

  • Le seguenti directory sul dispositivo core Greengrass:

    • /src/LRAtest

    • /dest/LRAtest

    Il gruppo proprietario di queste directory deve disporre dell'accesso in lettura e scrittura alle directory. Per concedere l'accesso potresti utilizzare il seguente comando:

    sudo chmod 0775 /src/LRAtest

Fase 1: Creare un pacchetto di distribuzione delle funzioni Lambda

In questo passaggio, crei un pacchetto di distribuzione della funzione Lambda, che è un file ZIP che contiene il codice e le dipendenze della funzione. È inoltre possibile scaricare il AWS IoT Greengrass Core SDK da includere nel pacchetto come dipendenza.

  1. Sul computer, copia il seguente script Python in un file locale denominato lraTest.py. Questa è la logica dell'app per la funzione Lambda.

    # Demonstrates a simple use case of local resource access. # This Lambda function writes a file test to a volume mounted inside # the Lambda environment under destLRAtest. Then it reads the file and # publishes the content to the AWS IoT LRAtest topic. import sys import greengrasssdk import platform import os import logging # Setup logging to stdout logger = logging.getLogger(__name__) logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) # Create a Greengrass Core SDK client. client = greengrasssdk.client('iot-data') volumePath = '/dest/LRAtest' def function_handler(event, context): try: client.publish(topic='LRA/test', payload='Sent from AWS IoT Greengrass Core.') volumeInfo = os.stat(volumePath) client.publish(topic='LRA/test', payload=str(volumeInfo)) with open(volumePath + '/test', 'a') as output: output.write('Successfully write to a file.') with open(volumePath + '/test', 'r') as myfile: data = myfile.read() client.publish(topic='LRA/test', payload=data) except Exception as e: logger.error('Failed to publish message: ' + repr(e)) return
  2. Dalla pagina di download del AWS IoT Greengrass Core SDK, scarica il AWS IoT Greengrass Core SDK for Python sul tuo computer.

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

  4. Comprimi i seguenti elementi in un file denominato lraTestLambda.zip:

    • lraTest.py. Logica dell'app.

    • greengrasssdk. Libreria richiesta per tutte le funzioni Python Lambda.

    Il lraTestLambda.zip file è il pacchetto di distribuzione delle funzioni Lambda. Ora sei pronto per creare una funzione Lambda e caricare il pacchetto di distribuzione.

Fase 2: Creare e pubblicare una funzione Lambda

In questo passaggio, usi la AWS Lambda console per creare una funzione Lambda e configurarla per utilizzare il tuo pacchetto di distribuzione. In seguito, pubblicherai una versione della funzione e creerai un alias.

Innanzitutto, crea la funzione Lambda.

  1. In Console di gestione AWS, scegli Servizi e apri la AWS Lambda console.

  2. Scegli Funzioni.

  3. Scegli la funzione Crea, quindi scegli Autore da zero.

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

    1. Nel campo Function name (Nome funzione), immettere TestLRA.

    2. In Runtime, scegliere Python 3.7.

    3. Per le autorizzazioni, mantieni l'impostazione predefinita. Questo crea un ruolo di esecuzione che concede le autorizzazioni Lambda di base. Questo ruolo non è utilizzato da. AWS IoT Greengrass

  5. Scegli Crea funzione.

    La pagina Create function (Crea funzione) con il pulsante Create function (Crea funzione) evidenziato.

     

  6. Carica il pacchetto di distribuzione della funzione Lambda e registra il gestore.

    1. Nella scheda Codice, in Codice sorgente, scegli Carica da. Dal menu a discesa, scegli il file .zip.

      Il menu a discesa Carica da con il file .zip evidenziato.
    2. Scegli Carica, quindi scegli il pacchetto di lraTestLambda.zip distribuzione. Poi, scegli Salva.

    3. Nella scheda Codice della funzione, in Impostazioni di runtime, scegli Modifica, quindi inserisci i seguenti valori.

      • In Runtime, scegliere Python 3.7.

      • Per Handler, inserisci lra Test.function _handler.

    4. Selezionare Salva.

      Nota

      Il pulsante Test sulla AWS Lambda console non funziona con questa funzione. Il AWS IoT Greengrass Core SDK non contiene i moduli necessari per eseguire le funzioni Greengrass Lambda in modo indipendente nella console. AWS Lambda Questi moduli (ad esempiogreengrass_common) vengono forniti alle funzioni dopo essere stati distribuiti nel core di Greengrass.

    Successivamente, pubblica la prima versione della tua funzione Lambda. Quindi, creare un alias per la versione.

    I gruppi Greengrass possono fare riferimento a una funzione Lambda tramite alias (consigliato) o per versione. L'uso 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 della funzione viene aggiornato. Basta invece puntare l'alias alla nuova versione della funzione.

  7. Da Actions (Operazioni), seleziona Publish new version (Pubblica nuova versione).

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

  9. Nella pagina di configurazione TestLRA: 1, in Actions (Operazioni), scegli Create alias (Crea alias).

  10. Nella pagina Crea alias, per Nome, inserisci. test Per Version (Versione), immetti 1.

    Nota

    AWS IoT Greengrass non supporta gli alias Lambda per le versioni $LATEST.

  11. Scegli Crea.

    La pagina Create a new alias (Crea un nuovo alias) con il pulsante Create (Crea) evidenziato.

    Ora puoi aggiungere la funzione Lambda al tuo gruppo Greengrass.

Fase 3: Aggiungere la funzione Lambda al gruppo Greengrass

In questa fase, aggiungerai la funzione al gruppo e configurerai il ciclo di vita della funzione.

Innanzitutto, aggiungi la funzione Lambda al tuo gruppo Greengrass.

  1. Nel pannello di navigazione della AWS IoT console, in Gestisci, espandi i dispositivi Greengrass, quindi scegli Gruppi (V1).

  2. Scegli il gruppo Greengrass in cui desideri aggiungere la funzione Lambda.

  3. Nella pagina di configurazione del gruppo, scegli la scheda Funzioni Lambda.

  4. Nella sezione Le mie funzioni Lambda, scegli Aggiungi.

  5. Nella pagina Aggiungi funzione Lambda, scegli la funzione Lambda. Seleziona TestLRA.

  6. Scegli la versione della funzione Lambda.

  7. Nella sezione Configurazione della funzione Lambda, seleziona Utente e gruppo di sistema e Containerizzazione della funzione Lambda.

     

    Quindi, configura il ciclo di vita della funzione Lambda.

  8. Per Timeout, scegli 30 seconds (30 secondi).

    Importante

    Le funzioni Lambda che utilizzano risorse locali (come descritto in questa procedura) devono essere eseguite in un contenitore Greengrass. In caso contrario, il tentativo di distribuire la funzione avrà esito negativo. Per ulteriori informazioni, consulta Containerizzazione.

  9. Nella parte inferiore della pagina, scegli Aggiungi funzione Lambda.

Fase 4: aggiungere una risorsa locale al gruppo Greengrass

In questa fase, aggiungerai una risorsa di volume locale al gruppo Greengrass e concederai alla funzione l'accesso in lettura e scrittura alla risorsa. Una risorsa locale dispone di un ambito a livello di gruppo. Puoi concedere le autorizzazioni per qualsiasi funzione Lambda del gruppo per accedere alla risorsa.

  1. Nella pagina di configurazione del gruppo, scegli la scheda Risorse.

  2. Nella sezione Risorse locali, scegli Aggiungi.

  3. Nella pagina Aggiungi una risorsa locale, utilizza i seguenti valori.

    1. Per Resource Name (Nome risorsa) immetti testDirectory.

    2. Per Resource type (Tipo di risorsa), scegli Volume.

    3. Per Percorso locale del dispositivo, inserisci/src/LRAtest. Questo percorso deve esistere sul sistema operativo dell'host.

      Il percorso locale del dispositivo è il percorso locale assoluto della risorsa nel file system del dispositivo principale. Questa posizione è esterna al container in cui viene eseguita la funzione. Il percorso non può iniziare con /sys.

    4. Per Destination path (Percorso di destinazione), immetti /dest/LRAtest. Questo percorso deve esistere sul sistema operativo dell'host.

      Il percorso di destinazione è il percorso assoluto della risorsa nel namespace Lambda. Questa posizione è interna al container in cui viene eseguita la funzione.

    5. In Proprietario del gruppo di sistema e autorizzazione di accesso ai file, seleziona Aggiungi automaticamente le autorizzazioni del file system del gruppo di sistema proprietario della risorsa.

      L'opzione Proprietario del gruppo di sistema e autorizzazione di accesso ai file consente di concedere autorizzazioni di accesso ai file aggiuntive al processo Lambda. Per ulteriori informazioni, consulta Autorizzazione di accesso ai file dell'owner del gruppo.

  4. Scegliere Add resource (Aggiungi risorsa). Nella pagina Resources (Risorse) viene visualizzata la nuova risorsa testDirectory.

Fase 5: aggiungere sottoscrizioni al gruppo Greengrass

In questa fase, aggiungerai due sottoscrizioni al gruppo Greengrass. Questi abbonamenti consentono la comunicazione bidirezionale tra la funzione Lambda e. AWS IoT

Innanzitutto, crea un abbonamento per la funzione Lambda a cui inviare messaggi. AWS IoT

  1. Nella pagina di configurazione del gruppo, scegli la scheda Abbonamenti.

  2. Scegliere Aggiungi.

  3. Nella pagina Crea un abbonamento, configura l'origine e la destinazione, come segue:

    1. Per Tipo di sorgente, scegli la funzione Lambda, quindi scegli TestLRA.

    2. Per Tipo di destinazione, scegli Servizio, quindi scegli IoT Cloud.

    3. Per Filtro tematico LRA/test, inserisci, quindi scegli Crea abbonamento.

  4. Nella pagina Subscriptions (Sottoscrizioni) viene visualizzata la nuova sottoscrizione.

     

    Quindi, configura un abbonamento che richiami la funzione da AWS IoT.

  5. Nella pagina Abbonamenti, scegli Aggiungi abbonamento.

  6. Nella pagina Select your source and target (Seleziona origine e destinazione), configura l'origine e la destinazione come indicato di seguito:

    1. Per Tipo di sorgente, scegli la funzione Lambda, quindi scegli IoT Cloud.

    2. Per Tipo di destinazione, scegli Servizio, quindi scegli TestLRA.

    3. Scegli Avanti.

  7. Nella pagina Filter your data with a topic (Filtra i dati con un argomento), in Topic filter (Filtro argomento), immetti invoke/LRAFunction, quindi scegliere Next (Avanti).

  8. Scegli Fine. Nella pagina Subscriptions (Sottoscrizioni) vengono visualizzate le sottoscrizioni.

Fase 6: Implementa il AWS IoT Greengrass gruppo

In questa fase, distribuirai la versione corrente della definizione del gruppo.

  1. Assicurati che il AWS IoT Greengrass core sia 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/1.11.6/bin/daemon, allora il daemon è in esecuzione.

      Nota

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

    2. Per avviare il demone:

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

    Nota

    La distribuzione non riesce se esegui la funzione Lambda senza containerizzazione e provi ad accedere alle risorse locali collegate.

  3. Se richiesto, nella scheda Funzione Lambda, in Funzioni System Lambda, seleziona Rilevatore IP, quindi Modifica, quindi Rileva automaticamente.

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

    Nota

    Se richiesto, concedete l'autorizzazione per creare il ruolo del servizio Greengrass e associarlo al vostro Account AWS ruolo attuale. Regione AWS Questo ruolo consente di accedere AWS IoT Greengrass alle risorse nei AWS servizi.

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

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

Test dell'accesso alle risorse locali

Ora puoi verificare se l'accesso alla risorsa locale è configurato correttamente. Per eseguire il test, devi abbonarti all'argomento LRA/test e pubblicare nell'argomento invoke/LRAFunction. Il test ha esito positivo se la funzione Lambda invia il payload previsto a. AWS IoT

  1. Dal menu di navigazione della AWS IoT console, in Test, scegli MQTT test client.

  2. In Sottoscrivi a un argomento, per Filtro argomento, inserisci. LRA/test

  3. In Informazioni aggiuntive, per la visualizzazione del payload MQTT, seleziona Visualizza i payload come stringhe.

  4. Scegli Abbonati. La tua funzione Lambda pubblica nell'argomento. LRA/test

    La pagina Subscriptions (Sottoscrizioni) con l'opzione Subscribe to topic (Sottoscrivi nell'argomento) evidenziata.
  5. In Pubblica su un argomento, inserisci il nome dell'argomentoinvoke/LRAFunction, quindi scegli Pubblica per richiamare la tua funzione Lambda. Il test ha esisto positivo se nella pagina vengono visualizzati tre payload del messaggio della funzione.

    La pagina Iscrizioni con l' invoke/LRAFunction argomento e Pubblica sull'argomento evidenziati e i risultati del test con i dati dei messaggi.

Il file di test creato dalla funzione Lambda si trova nella /src/LRAtest directory del dispositivo principale Greengrass. Sebbene la funzione Lambda scriva su un file nella /dest/LRAtest directory, tale file è visibile solo nello spazio dei nomi Lambda. Non è possibile visualizzarlo in un normale spazio dei nomi Linux. Le eventuali modifiche apportate al percorso di destinazione vengono applicate al percorso di origine nel file system.

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