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 creare una risorsa segreta (console)
Questa funzionalità è disponibile per AWS IoT Greengrass Core v1.7 e versioni successive.
Questo tutorial mostra come utilizzare per Console di gestione AWS aggiungere una risorsa segreta a un gruppo Greengrass. Una risorsa segreta è un riferimento a un modulo segreto. AWS Secrets Manager Per ulteriori informazioni, consulta Distribuisci i segreti al AWS IoT Greengrass core.
Sul dispositivo AWS IoT Greengrass principale, i connettori e le funzioni Lambda possono utilizzare la risorsa segreta per autenticarsi con servizi e applicazioni, senza dover codificare password, token o altre credenziali.
In questo tutorial, inizierai creando un segreto nella console. AWS Secrets Manager Quindi, nella AWS IoT Greengrass console, aggiungi una risorsa segreta a un gruppo Greengrass dalla pagina Risorse del gruppo. Questa risorsa segreta fa riferimento al segreto di Secrets Manager. Successivamente, si collega la risorsa segreta a una funzione Lambda, che consente alla funzione di ottenere il valore del segreto locale.
Nota
In alternativa, la console consente di creare una risorsa segreta e segreta quando si configura un connettore o una funzione Lambda. Puoi farlo dalla pagina Configura i parametri del connettore o dalla pagina Risorse della funzione Lambda.
Solo i connettori contenenti parametri per i segreti possono accedere ai segreti. Per un tutorial che mostra come il connettore Twilio Notifications utilizza un token di autenticazione memorizzato localmente, vedi. Nozioni di base sui connettori Greengrass (console)
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.7 o successivo). Per informazioni su come creare un gruppo e un core Greengrass, consulta Nozioni di base su AWS IoT Greengrass. Il tutorial Getting Started include anche i passaggi per l'installazione del AWS IoT Greengrass software Core.
-
AWS IoT Greengrass deve essere configurato per supportare i segreti locali. Per ulteriori informazioni, consulta Requisiti dei segreti.
Nota
Questo requisito include l'autorizzazione all'accesso ai tuoi segreti di Secrets Manager. Se utilizzate il ruolo di servizio predefinito di Greengrass, Greengrass è autorizzato a ottenere i valori dei segreti i cui nomi iniziano con greengrass-.
-
Per ottenere i valori dei segreti locali, le funzioni Lambda definite dall'utente devono utilizzare AWS IoT Greengrass Core SDK v1.3.0 o successivo.
Fase 1: Creare un segreto per Secrets Manager
In questo passaggio, usi la AWS Secrets Manager console per creare un segreto.
-
Accedere alla AWS Secrets Manager console
. Nota
Per ulteriori informazioni su questo processo, consulta la Fase 1: Creare e archiviare il tuo account segreto AWS Secrets Manager nella Guida per l'AWS Secrets Manager utente.
-
Scegli Archivia un nuovo segreto.
-
In Scegli il tipo di segreto, scegli Altro tipo di segreto.
-
In Specify the key-value pairs to be stored for this secret (Specifica le coppie chiave-valore da archiviare per questo segreto):
-
In Chiave, inserire
test. -
In Valore, specifica
abcdefghi.
-
-
Mantieni aws/secretsmanager selezionata la chiave di crittografia, quindi scegli Avanti.
Nota
AWS KMS Se utilizzi la chiave AWS gestita predefinita creata da Secrets Manager nel tuo account, non ti verrà addebitato alcun costo.
-
In Secret name (Nome segreto), immetti
greengrass-TestSecret, quindi seleziona Next (Avanti).Nota
Per impostazione predefinita, il ruolo del servizio Greengrass consente di AWS IoT Greengrass ottenere il valore dei segreti i cui nomi iniziano con greengrass-. Per ulteriori informazioni, consulta Requisiti dei segreti.
-
Questo tutorial non richiede la rotazione, quindi scegli Disabilita la rotazione automatica, quindi scegli Avanti.
-
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 questo passaggio, configuri una risorsa di gruppo che fa riferimento al segreto di Secrets Manager.
Nel pannello di navigazione della AWS IoT console, in Gestisci, espandi i dispositivi Greengrass, quindi scegli Gruppi (V1).
-
Scegli il gruppo a cui aggiungere la risorsa segreta.
-
Nella pagina di configurazione del gruppo, scegli la scheda Risorse, quindi scorri verso il basso fino alla sezione Segreti. La sezione Segreti mostra le risorse segrete che appartengono al gruppo. Puoi aggiungere, modificare e rimuovere 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 dalla pagina Configura i parametri del connettore o dalla pagina Risorse della funzione Lambda.
-
Scegli Aggiungi nella sezione Segreti.
-
Nella pagina Aggiungi una risorsa segreta, inserisci
MyTestSecretil nome della risorsa. -
In Segreto, scegli greengrass-. TestSecret
-
Nella sezione Seleziona etichette (opzionale), l'etichetta di staging AWSCURRENT rappresenta l'ultima versione del segreto. Questa etichetta è sempre inclusa in una risorsa segreta.
Nota
Questo tutorial richiede solo l'etichetta AWSCURRENT. È possibile includere facoltativamente le etichette richieste dalla funzione o dal connettore Lambda.
-
Scegliere Add resource (Aggiungi risorsa).
Passaggio 3: creare un pacchetto di distribuzione della funzione Lambda
Per creare una funzione Lambda, devi prima creare un pacchetto di distribuzione della funzione Lambda che contenga il codice della funzione e le dipendenze. Le funzioni Lambda di Greengrass richiedono il AWS IoT Greengrass Core SDK per attività come la comunicazione con i messaggi MQTT nell'ambiente principale e l'accesso ai segreti locali. Questo tutorial crea una funzione Python, quindi utilizzi la versione Python dell'SDK nel pacchetto di distribuzione.
Nota
Per ottenere i valori dei segreti locali, le funzioni Lambda definite dall'utente devono utilizzare AWS IoT Greengrass Core SDK v1.3.0 o successivo.
-
Dalla pagina di download del AWS IoT Greengrass Core SDK, scarica il AWS IoT Greengrass Core SDK for Python sul tuo computer.
-
Decomprimere il pacchetto scaricato per ottenere l'SDK. Il kit SDK è la cartella
greengrasssdk. -
Salvare la seguente funzione del codice Python nel file locale
secret_test.py.import greengrasssdk secrets_client = greengrasssdk.client("secretsmanager") iot_client = greengrasssdk.client("iot-data") secret_name = "greengrass-TestSecret" send_topic = "secrets/output" def function_handler(event, context): """ Gets a secret and publishes a message to indicate whether the secret was successfully retrieved. """ response = secrets_client.get_secret_value(SecretId=secret_name) secret_value = response.get("SecretString") message = ( f"Failed to retrieve secret {secret_name}." if secret_value is None else f"Successfully retrieved secret {secret_name}." ) iot_client.publish(topic=send_topic, payload=message) print("Published: " + message)La
get_secret_valuefunzione supporta il nome o l'ARN del segreto di Secrets Manager per il valore.SecretIdQuesto esempio utilizza il nome segreto. Per questo esempio secret, AWS IoT Greengrass restituisce la coppia chiave-valore:.{"test":"abcdefghi"}Importante
Assicurati che le tue funzioni Lambda definite dall'utente gestiscano i segreti in modo sicuro e non registrino alcun dato sensibile archiviato nel segreto. Per ulteriori informazioni, consulta Mitigare i rischi della registrazione e del debug della funzione Lambda nella Guida per l'utente. AWS Secrets Manager Sebbene questa documentazione si riferisca specificamente alle funzioni di rotazione, la raccomandazione si applica anche alle funzioni Lambda di Greengrass.
-
Comprimere le voci seguenti nel file
secret_test_python.zip. Durante la creazione del file ZIP, includi solo il codice e le dipendenze e non la cartella che li contiene.-
secret_test.py. La logica dell'app.
-
greengrasssdk. Libreria richiesta per tutte le funzioni Python Greengrass Lambda.
Questo è il pacchetto di distribuzione delle funzioni Lambda.
-
Fase 4: Creazione di 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.
-
In Console di gestione AWS, scegli Servizi e apri la AWS Lambda console.
-
Scegli la funzione Crea, quindi scegli Autore da zero.
-
Nella sezione Basic information (Informazioni di base), specifica i seguenti valori:
-
Nel campo Function name (Nome funzione), immettere
SecretTest. -
In Runtime, scegliere Python 3.7.
-
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
-
-
Nella parte inferiore della pagina, scegli Crea funzione.
-
-
Quindi, registra il gestore e carica il pacchetto di distribuzione della funzione Lambda.
-
Nella scheda Codice, in Codice sorgente, scegli Carica da. Dal menu a discesa, scegli il file .zip.
-
Scegli Carica, quindi scegli il pacchetto di
secret_test_python.zipdistribuzione. Poi, scegli Salva. -
Nella scheda Codice della funzione, in Impostazioni di runtime, scegli Modifica, quindi inserisci i seguenti valori.
-
In Runtime, scegliere Python 3.7.
-
In Handler (Gestore), immetti
secret_test.function_handler
-
-
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 esempio
greengrass_common) vengono forniti alle funzioni dopo essere stati distribuiti nel core di Greengrass.
-
-
Ora pubblica la prima versione della tua funzione Lambda e crea un alias per la versione.
Nota
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.
-
Nella pagina di configurazione SecretTest: 1, dal menu Azioni, scegli Crea alias.
-
Nella pagina Create a new alias (Crea un nuovo alias), utilizza i seguenti valori:
-
In Nome, inserisci
GG_SecretTest. -
In Version (Versione), selezionare 1.
Nota
AWS IoT Greengrass non supporta gli alias Lambda per le versioni $LATEST.
-
-
Scegli Crea.
-
Ora sei pronto per aggiungere la funzione Lambda al tuo gruppo Greengrass e allegare la risorsa segreta.
Passaggio 5: aggiungi la funzione Lambda al gruppo Greengrass
In questo passaggio, aggiungi la funzione Lambda al gruppo Greengrass nella console. AWS IoT
-
Nella pagina di configurazione del gruppo, scegli la scheda Funzioni Lambda.
-
Nella sezione Le mie funzioni Lambda, scegli Aggiungi.
-
Per la funzione Lambda, scegli. SecretTest
-
Per la versione della funzione Lambda, scegli l'alias della versione che hai pubblicato.
Quindi, configura il ciclo di vita della funzione Lambda.
-
Nella sezione di configurazione della funzione Lambda, apporta i seguenti aggiornamenti.
Nota
Ti consigliamo di eseguire la funzione Lambda senza containerizzazione, a meno che il tuo business case non lo richieda. Ciò consente di abilitare l'accesso alla GPU e alla fotocamera del dispositivo senza configurare le risorse del dispositivo. Se esegui l'esecuzione senza containerizzazione, devi anche concedere l'accesso root alle tue funzioni Lambda. AWS IoT Greengrass
-
Per eseguire senza containerizzazione:
-
Per utente e gruppo di sistema, scegli.
Another user ID/group IDPer ID utente di sistema, inserisci0. Per ID del gruppo di sistema, immettere0.Ciò consente alla funzione Lambda di essere eseguita come root. Per ulteriori informazioni sull'esecuzione come root, consultaImpostazione dell'identità di accesso predefinita per le funzioni Lambda in un gruppo.
Suggerimento
È inoltre necessario aggiornare il
config.jsonfile per concedere l'accesso root alla funzione Lambda. Per la procedura, consultaEsecuzione di una funzione Lambda come utente root. -
Per la containerizzazione della funzione Lambda, scegli Nessun contenitore.
Per ulteriori informazioni sull'esecuzione senza containerizzazione, consulta. Considerazioni sulla scelta della containerizzazione delle funzioni Lambda
-
Per Timeout, immettere
10 seconds. -
Per Pinned, scegli True.
Per ulteriori informazioni, consulta Configurazione del ciclo di vita per le funzioni Greengrass Lambda.
-
In Parametro aggiuntivo, per l'accesso in lettura alla directory /sys, scegli Abilitato.
-
-
Per eseguire invece in modalità containerizzata:
Nota
Si sconsiglia l'esecuzione in modalità containerizzata a meno che il business case non lo richieda.
-
Per Utente e gruppo di sistema, scegli Usa l'impostazione predefinita del gruppo.
-
Per la containerizzazione delle funzioni Lambda, scegli Usa default di gruppo.
-
Per Memory limit (Limite memoria), immettere
1024 MB. -
Per Timeout, immettere
10 seconds. -
Per Pinned, scegli True.
Per ulteriori informazioni, consulta Configurazione del ciclo di vita per le funzioni Greengrass Lambda.
-
In Parametri aggiuntivi, per l'accesso in lettura alla directory /sys, scegli Abilitato.
-
-
-
Scegli Aggiungi funzione Lambda.
Quindi, associa la risorsa segreta alla funzione.
Passaggio 6: collega la risorsa segreta alla funzione Lambda
In questo passaggio, associ la risorsa segreta alla funzione Lambda nel tuo gruppo Greengrass. Questo associa la risorsa alla funzione, che consente alla funzione di ottenere il valore del segreto locale.
-
Nella pagina di configurazione del gruppo, scegli la scheda Funzioni Lambda.
-
Scegli la SecretTest funzione.
-
Nella pagina dei dettagli della funzione, scegli Risorse.
-
Scorri fino alla sezione Segreti e scegli Associa.
-
Scegli MyTestSecret, quindi scegli Associa.
Fase 7: aggiunta di sottoscrizioni al gruppo Greengrass
In questo passaggio, aggiungi gli abbonamenti che consentono AWS IoT e la funzione Lambda di scambiare messaggi. Un abbonamento consente di AWS IoT richiamare la funzione e uno consente alla funzione di inviare dati di output a. AWS IoT
-
Crea un abbonamento che AWS IoT consenta di pubblicare messaggi nella funzione.
Nella pagina di configurazione del gruppo, scegli la scheda Abbonamenti, quindi scegli Aggiungi abbonamento.
-
Nella pagina Crea un abbonamento, configura l'origine e la destinazione, come segue:
-
In Tipo di sorgente, scegli la funzione Lambda, quindi scegli IoT Cloud.
-
In Tipo di destinazione, scegli Servizio, quindi scegli SecretTest.
-
Nel filtro Argomento
secrets/input, inserisci, quindi scegli Crea abbonamento.
-
-
Aggiungere un secondo abbonamento. Scegli la scheda Abbonamenti, scegli Aggiungi abbonamento e configura l'origine e la destinazione, come segue:
-
In Tipo di origine, scegli Servizi, quindi scegli SecretTest.
-
In Tipo di destinazione, scegli la funzione Lambda, quindi scegli IoT Cloud.
-
Nel filtro Argomento, inserisci
secrets/output, quindi scegli Crea abbonamento.
-
Fase 8: distribuzione del gruppo Greengrass
Distribuire il gruppo al nuovo dispositivo core. Durante la distribuzione, AWS IoT Greengrass recupera il valore del segreto da Secrets Manager e crea una copia locale crittografata sul core.
Test della funzione Lambda
-
Nella home page AWS IoT della console, scegli Test.
-
Per Sottoscrivi all'argomento, utilizza i seguenti valori, quindi scegli Iscriviti.
Proprietà
Valore
Argomento sottoscrizione
secrets/output
Visualizzazione payload MQTT
Visualizza i payload come stringhe
-
Per Pubblica su argomento, utilizza i seguenti valori, quindi scegli Pubblica per richiamare la funzione.
Proprietà
Valore
Topic
secrets/input
Messaggio
Mantenere il messaggio predefinito. La pubblicazione di un messaggio richiama la funzione Lambda, ma la funzione in questo tutorial non elabora il corpo del messaggio.
In caso di esito positivo, la funzione pubblica il messaggio "Success" ("Successo").