Opzionale: Configurazione del container Docker per IDT perAWS IoT 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à.

Opzionale: Configurazione del container Docker per IDT perAWS IoT Greengrass

AWS IoT Greengrass fornisce un'immagine Docker e Dockerfile che semplificano l'esecuzione del software AWS IoT Greengrass Core in un contenitore Docker. Dopo aver configurato il contenitore AWS IoT Greengrass, è possibile eseguire test IDT. Attualmente, solo le architetture Docker x86_64 sono supportate per l'esecuzione di IDT per AWS IoT Greengrass.

Questa funzionalità richiede IDT v2.3.0 o versione successiva.

Il processo di configurazione del contenitore Docker per eseguire test IDT dipende dal fatto che si utilizza l'immagine Docker o Dockerfile fornita da AWS IoT Greengrass.

  • Usare l'immagine Docker. Immagine Docker con il software AWS IoT Greengrass Core e le dipendenze installate.

  • Usa il Dockerfile. Dockerfile contiene il codice sorgente che è possibile utilizzare per creare immagini AWS IoT Greengrass contenitore personalizzate. L'immagine può essere modificata per essere eseguita su diverse architetture di piattaforma o per ridurne le dimensioni.

    Nota

    AWS IoT Greengrassnon fornisce immagini Dockerfiles o Docker perAWS IoT GreengrassSoftware core versione 1.11.1. Per eseguire test IDT sulle proprie immagini contenitore personalizzate, l'immagine deve includere le dipendenze definite nel Dockerfile fornito da AWS IoT Greengrass.

Le seguenti funzionalità non sono supportate quando si esegue AWS IoT Greengrass in un container Docker:

  • Connettori eseguiti in modalità container Greengrass. Per eseguire un connettore in un container Docker, il connettore deve essere eseguito in modalità Nessun container. Per trovare i connettori che supportano la modalità Nessun container consulta AWS-connettori Greengrass forniti. Alcuni di questi connettori dispongono di un parametro della modalità di isolamento che devi impostare su No container (Nessun contenitore).

  • Risorse volume e dispositivo locale. Le funzioni Lambda definite dall'utente in esecuzione nel container Docker devono accedere direttamente ai dispositivi e ai volumi nel core.

Configurazione dell'immagine Docker fornita da AWS IoT Greengrass

Attenersi alla seguente procedura per configurare l'immagine AWS IoT Greengrass Docker per eseguire test IDT.

Prerequisiti

Prima di iniziare il tutorial, eseguire le seguenti operazioni.

  • Per il computer host, le seguenti versioni e software, è necessario installare i seguenti software e versioni seguenti:AWS Command Line Interface(AWS CLI) versione che scegli.

    AWS CLI version 2
    • dockerVersione 18.09 o successiva. Le versioni precedenti potrebbero funzionare, ma consigliamo 18.09 o versioni successive.

    • AWS CLIVersione 2.0.0 o successiva.

      Nota

      Per eseguire l'aggiornamento a una versione successivaAWS CLIVersione 2 su un computer Windows, è necessario ripetere l'Installazione MSIprocesso.

    AWS CLI version 1
    • dockerVersione 18.09 o successiva. Le versioni precedenti potrebbero funzionare, ma consigliamo 18.09 o versioni successive.

    • PitoneVersione 3.6 o successiva.

    • pip versione 18.1 o successiva.

    • AWS CLI1.17.10 o versioni successive

      Nota

      Se utilizzi il pluginInstallazione MSIdelAWS CLIVersione 1 su Windows, tieni presente quanto segue:

      • Se il fileAWS CLIL'installazione di botocore non riesce, prova a utilizzare ilInstallazione Python e pip.

      • Per eseguire l'aggiornamento a una versione successivaAWS CLIVersione 1, è necessario ripetere il processo di installazione MSI.

  • Per accedere alle risorse Amazon Elastic Container Registry (Amazon ECR), è necessario concedere le seguenti autorizzazioni.

    • Amazon ECR richiede agli utenti di concedereecr:GetAuthorizationTokenautorizzazione attraverso unAWS Identity and Access Management(IAM) policy prima che possano autenticarsi in un registro ed eseguire l'invio o l'estrazione delle immagini da un repository Amazon ECR. Per ulteriori informazioni, consultaEsempi di policy Amazon ECReAccesso a un repository Amazon ECRnellaAmazon Elastic Container Registry Guida per.

 

  1. Scaricare l'immagine Docker e configurare il contenitore. Puoi scaricare l'immagine predefinita daDocker HuboAmazon Elastic Container Registry(Amazon ECR) ed eseguilo su piattaforme Windows, macOS e Linux (x86_64).

    Per scaricare l'immagine Docker da Amazon ECR, completare tutti i passaggi inPassaggio 1: ottieni l'immagine delAWS IoT Greengrass container da Amazon ECR. Quindi, tornare a questo argomento per continuare la configurazione.

  2. Solo utenti Linux: Assicurarsi che l'utente che esegue IDT disponga dell'autorizzazione per eseguire comandi Docker. Per ulteriori informazioni, vedere Gestisci finestra mobile come utente non root nella documentazione Docker.

  3. Per eseguire il contenitore AWS IoT Greengrass, utilizzare il comando per il sistema operativo in uso:

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • Sostituire <host-path-to-kernel-config-file> con il percorso del file di configurazione del kernel sull'host e <container-path> con il percorso in cui il volume è montato nel contenitore.

      Il file di configurazione del kernel sull'host di solito si trova in /proc/config.gz o /boot/config-<kernel-release-date>. È possibile eseguire uname -r per trovare il valore <kernel-release-date>.

      Esempio: Per montare il file di configurazione da/boot/config-<kernel-release-date>

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      Esempio: Per montare il file di configurazione daproc/config.gz

      -v /proc/config.gz:/proc/config.gz \
    • Sostituisci <image-repository>:<tag> nel comando con il nome del repository e il tag dell'immagine di destinazione.

      Esempio: Per puntare all'ultima versione dell'AWS IoT GreengrassSoftware Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Per ottenere l'elenco delle immagini AWS IoT Greengrass Docker, eseguire il comando seguente.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Sostituisci <image-repository>:<tag> nel comando con il nome del repository e il tag dell'immagine di destinazione.

      Esempio: Per puntare all'ultima versione dell'AWS IoT GreengrassSoftware Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Per ottenere l'elenco delle immagini AWS IoT Greengrass Docker, eseguire il comando seguente:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Sostituisci <image-repository>:<tag> nel comando con il nome del repository e il tag dell'immagine di destinazione.

      Esempio: Per puntare all'ultima versione dell'AWS IoT GreengrassSoftware Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Per ottenere l'elenco delle immagini AWS IoT Greengrass Docker, eseguire il comando seguente:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Importante

    Durante il test con IDT, non includere l'argomento --entrypoint /greengrass-entrypoint.sh \ utilizzato per eseguire l'immagine per uso generale AWS IoT Greengrass.

  4. Fase successiva: Configurazione delAWSCredenziali edevice.jsondocumento.

Configurazione di Dockerfile fornito da AWS IoT Greengrass

Attenersi alla seguente procedura per configurare l'immagine Docker creata da AWS IoT Greengrass Dockerfile per eseguire test IDT.

  1. Da AWS IoT Greengrass Software Docker, scaricare il pacchetto Dockerfile sul computer host ed estrarlo.

  2. Aprire README.md. I tre passaggi successivi si riferiscono alle sezioni di questo file.

  3. Assicurarsi di soddisfare i requisiti nella sezione Prerequisiti .

  4. Solo utenti Linux: Completare ilAbilita la protezione Symlink e HardlinkeAbilita l'inoltro di rete IPv4passaggi.

  5. Per creare l'immagine Docker, completare tutti i passaggi inFase 1: CostruisciAWS IoT GreengrassImmagine Docker. Quindi, tornare a questo argomento per continuare la configurazione.

  6. Per eseguire il contenitore AWS IoT Greengrass, utilizzare il comando per il sistema operativo in uso:

    Linux
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v <host-path-to-kernel-config-file>:<container-path> \ <image-repository>:<tag>
    • Sostituire <host-path-to-kernel-config-file> con il percorso del file di configurazione del kernel sull'host e <container-path> con il percorso in cui il volume è montato nel contenitore.

      Il file di configurazione del kernel sull'host di solito si trova in /proc/config.gz o /boot/config-<kernel-release-date>. È possibile eseguire uname -r per trovare il valore <kernel-release-date>.

      Esempio: Per montare il file di configurazione da/boot/config-<kernel-release-date>

      -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \

      Esempio: Per montare il file di configurazione daproc/config.gz

      -v /proc/config.gz:/proc/config.gz \
    • Sostituisci <image-repository>:<tag> nel comando con il nome del repository e il tag dell'immagine di destinazione.

      Esempio: Per puntare all'ultima versione dell'AWS IoT GreengrassSoftware Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Per ottenere l'elenco delle immagini AWS IoT Greengrass Docker, eseguire il comando seguente.

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    macOS
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Sostituisci <image-repository>:<tag> nel comando con il nome del repository e il tag dell'immagine di destinazione.

      Esempio: Per puntare all'ultima versione dell'AWS IoT GreengrassSoftware Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Per ottenere l'elenco delle immagini AWS IoT Greengrass Docker, eseguire il comando seguente:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Windows
    docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ <image-repository>:<tag>
    • Sostituisci <image-repository>:<tag> nel comando con il nome del repository e il tag dell'immagine di destinazione.

      Esempio: Per puntare all'ultima versione dell'AWS IoT GreengrassSoftware Core

      216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest

      Per ottenere l'elenco delle immagini AWS IoT Greengrass Docker, eseguire il comando seguente:

      aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
    Importante

    Durante il test con IDT, non includere l'argomento --entrypoint /greengrass-entrypoint.sh \ utilizzato per eseguire l'immagine per uso generale AWS IoT Greengrass.

  7. Fase successiva: Configurazione delAWSCredenziali edevice.jsondocumento.

Risoluzione dei problemi relativi all'installazione del container Docker per IDT per AWS IoT Greengrass

Utilizzare le informazioni riportate di seguito per risolvere i problemi con l'esecuzione di AWS IoT Greengrass in un container Docker.

AVVERTIMENTO: Errore di caricamento del file di configurazione: /home/user/.docker/config.json - stat /home/ <user>/.docker/config.json: autorizzazione negata

Se viene visualizzato questo errore durante l'esecuzione di comandi docker su Linux, eseguire il seguente comando. Sostituire <user> nel seguente comando con l'utente che esegue IDT.

sudo chown <user>:<user> /home/<user>/.docker -R sudo chmod g+rwx /home/<user>/.docker -R