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 manuale delle risorse
Questo tutorial mostra come installare ed eseguire il software AWS IoT Greengrass Core in un contenitore Docker con risorse assegnate manualmente. AWS
Argomenti
- Prerequisiti
- AWS IoTRecupera gli endpoint
- Crea qualsiasi cosa AWS IoT
- Crea il certificato dell'oggetto
- Configura il certificato del oggetto
- Crea un ruolo di scambio di token
- Scarica i certificati sul dispositivo
- Crea un file di configurazione
- Crea un file di ambiente
- Esegui il software AWS IoT Greengrass Core in un contenitore
- Passaggi successivi
Prerequisiti
Per completare questo tutorial, è necessario quanto segue:
-
Un Account AWS. Se non lo hai, consultare Configura un Account AWS.
-
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 la CLI Docker Compose per eseguire le immagini Docker.
-
AWS IoTRecupera gli endpoint
Ottieni gli AWS IoT endpoint per te e salvali per Account AWS utilizzarli in un secondo momento. Il tuo dispositivo utilizza questi endpoint per connettersi a. AWS IoT Esegui questa operazione:
-
Ottieni l'endpoint di AWS IoT dati per il tuo. Account AWS
aws iot describe-endpoint --endpoint-type iot:Data-ATS
La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "endpointAddress": "
device-data-prefix
-ats.iot.us-west-2.amazonaws.com" } -
Ottieni l'endpoint delle AWS IoT credenziali per il tuo. Account AWS
aws iot describe-endpoint --endpoint-type iot:CredentialProvider
La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "endpointAddress": "
device-credentials-prefix
.credentials.iot.us-west-2.amazonaws.com" }
Crea qualsiasi cosa AWS IoT
AWS IoTle cose rappresentano dispositivi ed entità logiche a cui si connettonoAWS IoT. I dispositivi core Greengrass sono AWS IoT cose. Quando registri un dispositivo come AWS IoT oggetto, quel dispositivo può utilizzare un certificato digitale con cui autenticarsi. AWS
In questa sezione, crei AWS IoT qualcosa che rappresenta il tuo dispositivo.
Per creare qualsiasi AWS IoT cosa
-
Crea AWS IoT qualcosa per il tuo dispositivo. Sul tuo computer di sviluppo, esegui il seguente comando.
-
Sostituisci
MyGreengrassCore
con il nome dell'oggetto da usare. Questo nome è anche il nome del dispositivo principale Greengrass.Nota
Il nome dell'oggetto non può contenere i due punti (
:
).
aws iot create-thing --thing-name
MyGreengrassCore
La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "thingName": "MyGreengrassCore", "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42" }
-
-
(Facoltativo) Aggiungere l'AWS IoToggetto a un gruppo di oggetti nuovo o esistente. Utilizzi i gruppi di cose per gestire flotte di dispositivi core Greengrass. Quando distribuisci componenti software sui tuoi dispositivi, puoi scegliere come target singoli dispositivi o gruppi di dispositivi. È possibile aggiungere un dispositivo a un gruppo di cose con una distribuzione Greengrass attiva per distribuire i componenti software di quel gruppo di cose sul dispositivo. Esegui questa operazione:
-
(Facoltativo) Crea un gruppo di AWS IoT cose.
-
Sostituire
MyGreengrassCoreGroup
con il nome del gruppo di oggetti da creare.Nota
Il nome del gruppo di cose non può contenere i due punti (
:
).
aws iot create-thing-group --thing-group-name
MyGreengrassCoreGroup
La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
-
-
Aggiungere l'AWS IoToggetto a un gruppo di oggetti.
-
Sostituiscilo
MyGreengrassCore
con il nome del tuo AWS IoT oggetto. -
Sostituisci
MyGreengrassCoreGroup
con il nome del gruppo di oggetti.
aws iot add-thing-to-thing-group --thing-name
MyGreengrassCore
--thing-group-nameMyGreengrassCoreGroup
Il comando non produce alcun output se la richiesta ha esito positivo.
-
-
Crea il certificato dell'oggetto
Quando si registra un dispositivo come AWS IoT oggetto, quel dispositivo può utilizzare un certificato digitale con AWS cui autenticarsi. Questo certificato consente al dispositivo di comunicare con AWS IoT eAWS IoT Greengrass.
In questa sezione, crei e scarichi certificati a cui il tuo dispositivo può connettersiAWS.
Per creare il certificato dell'oggetto
-
Crea una cartella in cui scaricare i certificati relativi all'AWS IoToggetto.
mkdir greengrass-v2-certs
-
Crea e scarica i certificati relativi all'AWS IoToggetto.
aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\ MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\ MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\ 59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\ hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\ FQIDAQAB\ -----END PUBLIC KEY-----\ ", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\ key omitted for security reasons\ -----END RSA PRIVATE KEY-----\ " } }
Salva l'Amazon Resource Name (ARN) del certificato da utilizzare per configurare il certificato in un secondo momento.
Configura il certificato del oggetto
Allega il thing certificate all'AWS IoToggetto che hai creato in precedenza e aggiungi una AWS IoT policy al certificato per definire le AWS IoT autorizzazioni per il dispositivo principale.
Per configurare il certificato dell'oggetto
-
Allega il certificato all'AWS IoToggetto.
-
Sostituiscilo
MyGreengrassCore
con il nome del tuo AWS IoT oggetto. -
Sostituisci il certificato Amazon Resource Name (ARN) con l'ARN del certificato che hai creato nel passaggio precedente.
aws iot attach-thing-principal --thing-name
MyGreengrassCore
--principalarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
Il comando non produce alcun output se la richiesta ha esito positivo.
-
-
Crea e allega una AWS IoT policy che definisca le AWS IoT autorizzazioni per il tuo dispositivo principale Greengrass. La seguente politica consente l'accesso a tutti gli argomenti MQTT e alle operazioni di Greengrass, in modo che il dispositivo funzioni con applicazioni personalizzate e modifiche future che richiedono nuove operazioni Greengrass. È possibile limitare questa politica in base al proprio caso d'uso. Per ulteriori informazioni, consulta AWS IoTPolitica minima per i dispositivi AWS IoT Greengrass V2 principali.
Se hai già configurato un dispositivo Greengrass core, puoi allegare la AWS IoT relativa policy invece di crearne una nuova.
Esegui questa operazione:
-
Crea un file che contenga il documento di AWS IoT policy richiesto dai dispositivi core Greengrass.
Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.
nano greengrass-v2-iot-policy.json
Copiate il seguente codice JSON nel file.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] } ] }
-
Crea una AWS IoT politica dal documento di policy.
-
Sostituisci
GreenGrassV2IoT ThingPolicy
con il nome della policy da creare.
aws iot create-policy --policy-name
GreengrassV2IoTThingPolicy
--policy-document file://greengrass-v2-iot-policy.jsonLa risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{ \\"Version\\": \\"2012-10-17\\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": [ \\"iot:Publish\\", \\"iot:Subscribe\\", \\"iot:Receive\\", \\"iot:Connect\\", \\"greengrass:*\\" ], \\"Resource\\": [ \\"*\\" ] } ] }", "policyVersionId": "1" }
-
-
Allega la AWS IoT policy al certificato dell'AWS IoToggetto.
-
Sostituisci
GreenGrassV2IoT ThingPolicy
con il nome della policy da allegare. -
Sostituisci l'ARN di destinazione con l'ARN del certificato per il tuo oggetto. AWS IoT
aws iot attach-policy --policy-name
GreengrassV2IoTThingPolicy
--targetarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
Il comando non ha alcun output se la richiesta ha esito positivo.
-
-
Crea un ruolo di scambio di token
I dispositivi core Greengrass utilizzano un ruolo di servizio IAM, chiamato token exchange role, per autorizzare le chiamate ai servizi. AWS Il dispositivo utilizza il provider di AWS IoT credenziali per ottenere AWS credenziali temporanee per questo ruolo, che consente al dispositivo di interagireAWS IoT, inviare log ad Amazon CloudWatch Logs e scaricare elementi dei componenti personalizzati da Amazon S3. Per ulteriori informazioni, consulta Autorizza i dispositivi principali a interagire con i servizi AWS.
Si utilizza un alias di AWS IoT ruolo per configurare il ruolo di scambio di token per i dispositivi principali Greengrass. Gli alias di ruolo consentono di modificare il ruolo di scambio di token per un dispositivo ma mantengono invariata la configurazione del dispositivo. Per ulteriori informazioni, consulta Autorizzazione delle chiamate dirette ai AWS servizi nella Guida per gli AWS IoT Coresviluppatori.
In questa sezione, crei un ruolo IAM per lo scambio di token e un alias di AWS IoT ruolo che rimanda al ruolo. Se hai già configurato un dispositivo principale Greengrass, puoi utilizzare il ruolo di scambio di token e l'alias del ruolo invece di crearne di nuovi. Quindi, configuri il dispositivo in modo che utilizzi quel ruolo e quell'alias. AWS IoT
Per creare un ruolo IAM per lo scambio di token
-
Crea un ruolo IAM che il tuo dispositivo possa utilizzare come ruolo di scambio di token. Esegui questa operazione:
-
Crea un file che contenga il documento sulla politica di fiducia richiesto dal ruolo di scambio di token.
Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.
nano device-role-trust-policy.json
Copia il seguente codice JSON nel file.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Crea il ruolo di scambio di token con il documento sulla politica di fiducia.
-
Sostituisci
greengrassV2 TokenExchangeRole
con il nome del ruolo IAM da creare.
aws iam create-role --role-name
GreengrassV2TokenExchangeRole
--assume-role-policy-document file://device-role-trust-policy.jsonLa risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }
-
-
Crea un file che contenga il documento sulla politica di accesso richiesto dal ruolo di scambio di token.
Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.
nano device-role-access-policy.json
Copia il seguente codice JSON nel file.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
Nota
Questa politica di accesso non consente l'accesso agli artefatti dei componenti nei bucket S3. Per distribuire componenti personalizzati che definiscono gli artefatti in Amazon S3, devi aggiungere autorizzazioni al ruolo per consentire al dispositivo principale di recuperare gli artefatti dei componenti. Per ulteriori informazioni, consulta Consenti l'accesso ai bucket S3 per gli artefatti dei componenti.
Se non disponi ancora di un bucket S3 per gli artefatti dei componenti, puoi aggiungere queste autorizzazioni in un secondo momento dopo aver creato un bucket.
-
Crea la policy IAM dal documento di policy.
-
Sostituisci
GreenGrassV2 TokenExchangeRoleAccess
con il nome della policy IAM da creare.
aws iam create-policy --policy-name
GreengrassV2TokenExchangeRoleAccess
--policy-document file://device-role-access-policy.jsonLa risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } }
-
-
Allega la policy IAM al ruolo di scambio di token.
-
Sostituisci
greengrassV2 TokenExchangeRole
con il nome del ruolo IAM. -
Sostituisci l'ARN della policy con l'ARN della policy IAM che hai creato nel passaggio precedente.
aws iam attach-role-policy --role-name
GreengrassV2TokenExchangeRole
--policy-arnarn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
Il comando non ha alcun output se la richiesta ha esito positivo.
-
-
-
Crea un alias di AWS IoT ruolo che punti al ruolo di scambio di token.
-
Sostituiscilo
GreengrassCoreTokenExchangeRoleAlias
con il nome dell'alias del ruolo da creare. -
Sostituisci il ruolo ARN con l'ARN del ruolo IAM creato nel passaggio precedente.
aws iot create-role-alias --role-alias
GreengrassCoreTokenExchangeRoleAlias
--role-arnarn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
La risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
Nota
Per creare un alias di ruolo, devi disporre dell'autorizzazione a passare il ruolo IAM per lo scambio di token a. AWS IoT Se ricevi un messaggio di errore quando tenti di creare un alias di ruolo, verifica che AWS l'utente disponga di questa autorizzazione. Per ulteriori informazioni, consulta Concessione a un utente delle autorizzazioni per il trasferimento di un ruolo a un AWS servizio nella Guida per l'AWS Identity and Access Managementutente.
-
-
Crea e allega una AWS IoT policy che consenta al tuo dispositivo principale Greengrass di utilizzare l'alias del ruolo per assumere il ruolo di scambio di token. Se hai già configurato un dispositivo principale Greengrass, puoi allegare la sua AWS IoT politica di alias di ruolo invece di crearne uno nuovo. Esegui questa operazione:
-
(Facoltativo) Create un file che contenga il documento di AWS IoT policy richiesto dall'alias di ruolo.
Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.
nano greengrass-v2-iot-role-alias-policy.json
Copia il seguente codice JSON nel file.
-
Sostituisci l'ARN della risorsa con l'ARN del tuo alias di ruolo.
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "
arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias
" } ] } -
-
Crea una AWS IoT politica dal documento di policy.
-
Sostituisci
GreengrassCoreTokenExchangeRoleAliasPolicy
con il nome della AWS IoT politica da creare.
aws iot create-policy --policy-name
GreengrassCoreTokenExchangeRoleAliasPolicy
--policy-document file://greengrass-v2-iot-role-alias-policy.jsonLa risposta è simile all'esempio seguente, se la richiesta ha esito positivo.
{ "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy", "policyDocument": "{ \\"Version\\":\\"2012-10-17\\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": \\"iot:AssumeRoleWithCertificate\\", \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\" } ] }", "policyVersionId": "1" }
-
-
Allega la AWS IoT policy al certificato dell'AWS IoToggetto.
-
Sostituisci
GreengrassCoreTokenExchangeRoleAliasPolicy
con il nome della AWS IoT politica relativa agli alias del ruolo. -
Sostituisci l'ARN di destinazione con l'ARN del certificato per il tuo oggetto. AWS IoT
aws iot attach-policy --policy-name
GreengrassCoreTokenExchangeRoleAliasPolicy
--targetarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
Il comando non ha alcun output se la richiesta ha esito positivo.
-
-
Scarica i certificati sul dispositivo
In precedenza, avevi scaricato il certificato del dispositivo sul computer di sviluppo. In questa sezione, scarichi il certificato Amazon Root Certificate Authority (CA). Quindi, se prevedi di eseguire il software AWS IoT Greengrass Core in Docker su un computer diverso da quello di sviluppo, copi i certificati su quel computer host. Il software AWS IoT Greengrass Core utilizza questi certificati per connettersi al servizio AWS IoT cloud.
Per scaricare i certificati sul dispositivo
-
Sul tuo computer di sviluppo, scarica il certificato Amazon Root Certificate Authority (CA). AWS IoTper impostazione predefinita, i certificati sono associati al certificato CA root di Amazon.
-
Se prevedi di eseguire il software AWS IoT Greengrass Core in Docker su un dispositivo diverso dal computer di sviluppo, copia i certificati sul computer host. Se SSH e SCP sono abilitati sul computer di sviluppo e sul computer host, puoi usare il
scp
comando sul tuo computer di sviluppo per trasferire i certificati.device-ip-address
Sostituiscilo con l'indirizzo IP del tuo computer host.scp -r greengrass-v2-certs/
device-ip-address
:~
Crea un file di configurazione
-
Sul computer host, crea una cartella in cui inserire il file di configurazione.
mkdir ./greengrass-v2-config
-
Utilizzate un editor di testo per creare un file di configurazione denominato
config.yaml
nella./greengrass-v2-config
cartella.Ad esempio, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il
config.yaml
.nano ./greengrass-v2-config/config.yaml
-
Copiate il seguente contenuto YAML nel file. Questo file di configurazione parziale specifica i parametri di sistema e i parametri del nucleo di Greengrass.
--- system: certificateFilePath: "
/tmp/certs
/device.pem.crt" privateKeyPath: "/tmp/certs
/private.pem.key" rootCaPath: "/tmp/certs
/AmazonRootCA1.pem" rootpath: "
" thingName: "/greengrass/v2
MyGreengrassCore
" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "nucleus-version
" configuration: awsRegion: "region
" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias
" iotDataEndpoint: "device-data-prefix
-ats.iot.region
.amazonaws.com" iotCredEndpoint: "device-credentials-prefix
.credentials.region
.amazonaws.com"Quindi, sostituite i seguenti valori:
-
/tmp/certs
. La directory nel contenitore Docker in cui vengono montati i certificati scaricati all'avvio del contenitore. -
. 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. -
MyGreengrassCore
. Nome del nuovo oggetto AWS IoT. -
versione nucleus
. La versione del software AWS IoT Greengrass Core da installare. Questo valore deve corrispondere alla versione dell'immagine Docker o del Dockerfile che hai scaricato. Se hai scaricato l'immagine Greengrass Docker con illatest
tag, usaladocker inspect
per vedere la versione dell'immagine.image-id
-
regione.
Il Regione AWS luogo in cui hai creato AWS IoT le tue risorse. È inoltre necessario specificare lo stesso valore per la variabile diAWS_REGION
ambiente nel file di ambiente. -
GreengrassCoreTokenExchangeRoleAlias
. L'alias del ruolo di scambio di token. -
device-data-prefix
. Il prefisso per il tuo endpoint di AWS IoT dati. -
device-credentials-prefix
. Il prefisso per l'endpoint AWS IoT delle credenziali.
-
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, puoi eseguire il seguente comando per usare GNU nano per crearlo
.env
nella directory corrente.nano .env
-
Copiate il seguente contenuto nel file.
GGC_ROOT_PATH=
AWS_REGION=/greengrass/v2
region
PROVISION=false COMPONENT_DEFAULT_USER=ggc_user:ggc_group INIT_CONFIG=/tmp/config/
config.yamlQuindi, sostituisci i seguenti valori.
-
. Il percorso della cartella principale da utilizzare per installare il software AWS IoT Greengrass Core./greengrass/v2
-
regione
. Il Regione AWS luogo in cui hai creato AWS IoT le tue risorse. È necessario specificare lo stesso valore per il parametroawsRegion
di configurazione nel file di configurazione. -
/tmp/config/
. La cartella in cui monti il file di configurazione all'avvio del contenitore Docker.
Nota
È possibile impostare la variabile di
DEPLOY_DEV_TOOLS
ambiente sutrue
per distribuire il componente Greengrass CLI, che 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 utilizzare la CLI Docker o la CLI Docker Compose per AWS IoT Greengrass eseguire l'immagine del software Core in un contenitore Docker.
Passaggi successivi
AWS IoT GreengrassIl 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