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à.
Esegui AWS IoT Greengrass in un contenitore Docker con provisioning automatico delle risorse
Questo tutorial mostra come installare ed eseguire il software AWS IoT Greengrass Core in un contenitore Docker con AWS risorse assegnate automaticamente e strumenti di sviluppo locali. Puoi utilizzare questo ambiente di sviluppo per esplorare le AWS IoT Greengrass funzionalità di un contenitore Docker. Il software richiede AWS credenziali per fornire queste risorse e distribuire gli strumenti di sviluppo locali.
Se non è possibile fornire AWS le credenziali al contenitore, è possibile fornire le AWS risorse necessarie al funzionamento del dispositivo principale. Puoi anche distribuire gli strumenti di sviluppo su un dispositivo principale da utilizzare come dispositivo di sviluppo. Ciò consente di fornire meno autorizzazioni al dispositivo quando si esegue il contenitore. Per ulteriori informazioni, consulta Esegui AWS IoT Greengrass in un contenitore Docker con provisioning manuale delle risorse.
Prerequisiti
Per completare questo tutorial, è necessario quanto segue.
-
Un Account AWS. Se non lo hai, consultare Configura un Account AWS.
-
Un AWS IAM utente con le autorizzazioni per fornire le IAM risorse AWS IoT e per un dispositivo principale Greengrass. Il programma di installazione del software AWS IoT Greengrass Core utilizza AWS le credenziali dell'utente per effettuare automaticamente il provisioning di queste risorse. Per informazioni sulla IAM politica minima per il provisioning automatico delle risorse, vedere. Policy IAM minima per l'installatore per il provisioning delle risorse
-
Un'immagine AWS IoT Greengrass Docker. Puoi creare un'immagine dal AWS IoT Greengrass Dockerfile.
-
Il computer host su cui si esegue il contenitore Docker deve soddisfare i seguenti requisiti:
-
Un sistema operativo basato su Linux con una connessione Internet.
-
Docker Engine
versione 18.09 o successiva. -
(Facoltativo) Docker Compose
versione 1.22 o successiva. Docker Compose è necessario solo se si desidera utilizzare Docker CLI Compose per eseguire le immagini Docker.
-
Configurazione delle credenziali AWS
In questo passaggio, crei un file di credenziali sul computer host che contiene le tue credenziali di sicurezza. AWS
Quando esegui l'immagine AWS IoT Greengrass Docker, devi montare la cartella che contiene questo file di credenziali /root/.aws/
nel contenitore Docker. Il AWS IoT Greengrass programma di installazione utilizza queste credenziali per fornire risorse nel tuo. Account AWS Per informazioni sulla IAM politica minima richiesta dal programma di installazione per il provisioning automatico delle risorse, vedere. Policy IAM minima per l'installatore per il provisioning delle risorse
-
Recuperate uno dei seguenti elementi.
-
Credenziali a lungo termine per un IAM utente. Per informazioni su come recuperare le credenziali a lungo termine, consulta Gestione delle chiavi di accesso per IAM gli utenti nella Guida per l'IAMutente.
-
(Consigliato) Credenziali temporanee per un ruolo. IAM Per informazioni su come recuperare le credenziali temporanee, vedere Utilizzo delle credenziali di sicurezza temporanee con the AWS CLI nella Guida per l'utente. IAM
-
-
Crea una cartella in cui inserire il file delle credenziali.
mkdir ./greengrass-v2-credentials
-
Utilizzate un editor di testo per creare un file di configurazione denominato
credentials
nella./greengrass-v2-credentials
cartella.Ad esempio, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il
credentials
file.nano ./greengrass-v2-credentials/credentials
-
Aggiungi AWS le tue credenziali al
credentials
file nel seguente formato.[default] aws_access_key_id =
AKIAIOSFODNN7EXAMPLE
aws_secret_access_key =wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token =AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
Includi
aws_session_token
solo per le credenziali temporanee.
Importante
Rimuovi il file delle credenziali dal computer host dopo aver avviato il AWS IoT Greengrass contenitore. Se non rimuovi il file delle credenziali, le tue AWS credenziali rimarranno montate all'interno del contenitore. Per ulteriori informazioni, consulta Esegui il software AWS IoT Greengrass Core in un contenitore.
Crea un file di ambiente
Questo tutorial utilizza un file di ambiente per impostare le variabili di ambiente che verranno passate al programma di installazione del software AWS IoT Greengrass Core all'interno del contenitore Docker. Puoi anche usare l'--env
argomento -e
ordocker run
comando per impostare le variabili di ambiente nel contenitore Docker oppure puoi impostare le variabili in un environment
bloccodocker-compose.yml
-
Usa un editor di testo per creare un file di ambiente denominato
.env
.Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per crearlo
.env
nella directory corrente.nano .env
-
Copia il seguente contenuto nel file.
GGC_ROOT_PATH=
AWS_REGION=/greengrass/v2
region
PROVISION=true THING_NAME=MyGreengrassCore
THING_GROUP_NAME=MyGreengrassCoreGroup
TES_ROLE_NAME=GreengrassV2TokenExchangeRole
TES_ROLE_ALIAS_NAME=GreengrassCoreTokenExchangeRoleAlias
COMPONENT_DEFAULT_USER=ggc_user:ggc_groupQuindi, sostituisci i seguenti valori.
-
. La cartella principale di Greengrass che si desidera utilizzare per l'installazione. Utilizzate la variabile di/greengrass/v2
GGC_ROOT
ambiente per impostare questo valore. -
region
. Il Regione AWS luogo in cui hai creato le risorse. -
MyGreengrassCore
. Il nome della AWS IoT cosa. Se l'oggetto non esiste, il programma di installazione lo crea. Il programma di installazione scarica i certificati per autenticarsi come oggetto. AWS IoT -
MyGreengrassCoreGroup
. Il nome del gruppo di AWS IoT cose. Se il gruppo di oggetti non esiste, il programma di installazione lo crea e vi aggiunge l'oggetto. Se il gruppo di oggetti esiste e dispone di una distribuzione attiva, il dispositivo principale scarica ed esegue il software specificato dalla distribuzione. -
GreengrassV2TokenExchangeRole
. Sostituisci con il nome del ruolo di scambio di IAM token che consente al dispositivo principale Greengrass di ottenere credenziali temporanee AWS . Se il ruolo non esiste, l'installatore lo crea e crea e allega una policy denominataGreengrassV2TokenExchangeRole
Accesso. Per ulteriori informazioni, consulta Autorizza i dispositivi principali a interagire con i servizi AWS. -
GreengrassCoreTokenExchangeRoleAlias
. L'alias del ruolo di scambio di token. Se l'alias del ruolo non esiste, il programma di installazione lo crea e lo indirizza al ruolo di scambio di IAM token specificato. Per ulteriori informazioni, consulta la pagina
Nota
Puoi impostare la variabile di
DEPLOY_DEV_TOOLS
ambiente sutrue
per distribuire il componente CLIGreengrass, che ti consente di sviluppare componenti personalizzati all'interno del contenitore Docker. Si consiglia di utilizzare questo componente solo in ambienti di sviluppo, non in ambienti di produzione. Questo componente fornisce l'accesso a informazioni e operazioni che in genere non sono necessarie in un ambiente di produzione. Segui il principio del privilegio minimo distribuendo questo componente solo sui dispositivi principali dove ne hai bisogno. -
Esegui il software AWS IoT Greengrass Core in un contenitore
Questo tutorial mostra come avviare l'immagine Docker che hai creato in un contenitore Docker. Puoi usare Docker CLI o Docker Compose CLI per eseguire l'immagine del software AWS IoT Greengrass Core in un contenitore Docker.
Passaggi successivi
AWS IoT Greengrass Il software principale è ora in esecuzione in un contenitore Docker. Esegui il comando seguente per recuperare l'ID del contenitore attualmente in esecuzione.
docker ps
È quindi possibile eseguire il comando seguente per accedere al contenitore ed esplorare il software AWS IoT Greengrass Core in esecuzione all'interno del contenitore.
docker exec -it
container-id
/bin/bash
Per informazioni sulla creazione di un componente semplice, consulta Fase 4: Sviluppa e testa un componente sul tuo dispositivo in Tutorial: Nozioni di base su AWS IoT Greengrass V2
Nota
Quando esegui comandi all'interno del contenitore Docker, tali comandi non vengono registrati nei log Docker. docker exec
Per registrare i comandi nei log Docker, collega una shell interattiva al contenitore Docker. Per ulteriori informazioni, consulta Collega una shell interattiva al contenitore Docker.
Il file di registro AWS IoT Greengrass Core viene chiamato greengrass.log
e si trova in.
Nella stessa directory si trovano anche i file di registro dei componenti. Per copiare i log di Greengrass in una directory temporanea sull'host, esegui il seguente comando:
/logs/greengrass/v2
docker cp
container-id
:/greengrass/v2/logs/tmp/logs
Se desideri mantenere i log dopo l'uscita o la rimozione di un contenitore, ti consigliamo di collegare solo la
directory alla directory dei log temporanei sull'host invece di montare l'intera directory Greengrass. Per ulteriori informazioni, consulta Mantieni i log Greengrass all'esterno del contenitore Docker.
/logs/greengrass/v2
Per fermare un contenitore Docker in esecuzione, esegui o. AWS IoT Greengrass docker
stop
docker-compose -f docker-compose.yml stop
Questa azione invia SIGTERM
al processo Greengrass e chiude tutti i processi associati che sono stati avviati nel contenitore. Il contenitore Docker viene inizializzato con l'docker-init
eseguibile come processo PID 1, il che aiuta a rimuovere eventuali processi zombie rimanenti. Per ulteriori informazioni, consulta Specificare un processo di inizializzazione nella documentazione di Docker
Per informazioni sulla risoluzione dei problemi relativi all'esecuzione AWS IoT Greengrass in un contenitore Docker, consulta. Risoluzione dei problemi di AWS IoT Greengrass in un container Docker