Configurazione di AWS IoT Greengrass Core - 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à.

Configurazione di AWS IoT Greengrass Core

Un AWS IoT Greengrass core è un AWS IoT oggetto (dispositivo) che funge da hub o gateway in ambienti edge. Come altri dispositivi AWS IoT, un core è incluso nel registro, ha una shadow del dispositivo e utilizza un certificato del dispositivo per l'autenticazione su AWS IoT Core e AWS IoT Greengrass. Il dispositivo core esegue il software AWS IoT Greengrass Core, che consente di gestire i processi locali per i gruppi Greengrass, come la comunicazione, la sincronizzazione shadow e lo scambio di token.

Il software AWS IoT Greengrass Core offre le seguenti funzionalità:

  • Distribuzione ed esecuzione locale di connettori e funzioni Lambda.

  • Elabora i flussi di dati localmente con esportazioni automatiche verso. Cloud AWS

  • Messaggistica MQTT sulla rete locale tra dispositivi, connettori e funzioni Lambda utilizzando abbonamenti gestiti.

  • Messaggistica MQTT tra AWS IoT dispositivi, connettori e funzioni Lambda utilizzando abbonamenti gestiti.

  • Connessioni sicure tra dispositivi e Cloud AWS utilizzo dell'autenticazione e dell'autorizzazione dei dispositivi.

  • Sincronizzazione shadow locale dei dispositivi. Le ombre possono essere configurate per la sincronizzazione con. Cloud AWS

  • Accesso controllato alle risorse volume e dispositivo locali.

  • Distribuzione di modelli di machine learning formati nel cloud per l'esecuzione di un'inferenza locale.

  • Rilevamento automatico dell'indirizzo IP che permette ai dispositivi di scoprire il dispositivo Greengrass core.

  • Distribuzione centralizzata di una configurazione del gruppo, nuova o aggiornata. Dopo il download dei dati di configurazione, il dispositivo core viene riavviato automaticamente.

  • Aggiornamenti software sicuri over-the-air (OTA) delle funzioni Lambda definite dall'utente.

  • Archiviazione sicura e crittografata dei segreti locali e accesso controllato tramite connettori e funzioni Lambda.

File di configurazione di AWS IoT Greengrass Core

Il file di configurazione per il software AWS IoT Greengrass Core è config.json. Si trova nella directory /greengrass-root/config.

Nota

greengrass-root rappresenta il percorso dove è installato il software AWS IoT Greengrass Core sul dispositivo. In genere, questa è la directory /greengrass.

Se si utilizza l'opzione di creazione del gruppo predefinito dalla AWS IoT Greengrass console, il config.json file viene distribuito sul dispositivo principale in uno stato funzionante.

È possibile rivedere i contenuti di questo file eseguendo il seguente comando:

cat /greengrass-root/config/config.json

Di seguito è riportato un esempio del file config.json. Questa è la versione generata quando crei il core dalla AWS IoT Greengrass console.

GGC v1.11
{ "coreThing": { "caPath": "root.ca.pem", "certPath": "hash.cert.pem", "keyPath": "hash.private.key", "thingArn": "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix-ats.iot.region.amazonaws.com", "ggHost": "greengrass-ats.iot.region.amazonaws.com", "keepAlive": 600, "ggDaemonPort": 8000, "systemComponentAuthTimeout": 5000 }, "runtime": { "maxWorkItemCount": 1024, "maxConcurrentLimit": 25, "lruSize": 25, "mountAllBlockDevices": "no", "cgroup": { "useSystemd": "yes" } }, "managedRespawn": false, "crypto": { "principals": { "SecretsManager": { "privateKeyPath": "file:///greengrass/certs/hash.private.key" }, "IoTCertificate": { "privateKeyPath": "file:///greengrass/certs/hash.private.key", "certificatePath": "file:///greengrass/certs/hash.cert.pem" } }, "caPath": "file:///greengrass/certs/root.ca.pem" }, "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory", "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory" }

Il file config.json supporta le seguenti proprietà:

coreThing

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto

certPath

Il percorso del certificato del dispositivo core relativo alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
keyPath Il percorso della chiave privata core relativa alla directory /greengrass-root/certs. Per la compatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il dispositivo AWS IoT Greengrass principale. Trova l'ARN per il tuo core nella AWS IoT Greengrass console sotto Cores o eseguendo il comando aws greengrass get-core-definition-versionCLI.
iotHost L'endpoint AWS IoT.

Trova l'endpoint nella AWS IoT console in Impostazioni o eseguendo il comando aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Questo comando restituisce l'endpoint Amazon Trust Services (ATS). Per ulteriori informazioni, consulta la documentazione Autenticazione del server.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato.

Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

ggHost L'endpoint AWS IoT Greengrass.

Questo è l'endpoint iotHost con il prefisso host sostituito da greengrass (ad esempio, greengrass-ats.iot.region.amazonaws.com). Usa lo stesso Regione AWS diiotHost.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato.

Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

iotMqttPort Facoltativo. Il numero di porta da utilizzare per le comunicazioni MQTT con AWS IoT. I valori validi sono 8883 e 443. Il valore predefinito è 8883. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
iotHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS a AWS IoT. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
ggMqttPort Facoltativo. Il numero di porta da utilizzare per la comunicazione MQTT sulla rete locale. I valori validi sono compresi tra 1024 e 65535. Il valore predefinito è 8883. Per ulteriori informazioni, consulta Configurazione della porta MQTT per la messaggistica locale.
ggHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS al servizio AWS IoT Greengrass. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
keepAlive Facoltativo. Il periodo MQTT KeepAlive in secondi. L'intervallo valido è 30-1200 secondi. Il valore predefinito è 600.
networkProxy Facoltativo. Un oggetto che definisce un server proxy a cui connettersi. Il server proxy può essere HTTP o HTTPS. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
mqttOperationTimeout Facoltativo. La quantità di tempo (in secondi) per consentire al core Greengrass di completare un'operazione di pubblicazione, sottoscrizione o annullamento dell'iscrizione nelle connessioni MQTT a AWS IoT Core. Il valore predefinito è 5. Il valore minimo è 5.
ggDaemonPort Facoltativo. Il numero di porta IPC principale di Greengrass.

Questa proprietà è disponibile nella versione AWS IoT Greengrass 1.11.0 o successiva.

I valori validi sono compresi tra 1024 e 65535. Il valore predefinito è 8000.

systemComponentAuthTimeout Facoltativo. Il tempo (in millisecondi) necessario per consentire all'IPC principale di Greengrass di completare l'autenticazione.

Questa proprietà è disponibile nella versione 1.11.0 o successiva. AWS IoT Greengrass

I valori validi sono compresi tra 500 e 5000. Il valore predefinito è 5000.

runtime

Campo Descrizione Note
maxWorkItemConta

Facoltativo. Il numero massimo di elementi di lavoro che il daemon Greengrass può elaborare alla volta. Gli elementi di lavoro che superano questo limite vengono ignorati.

La coda degli elementi di lavoro è condivisa dai componenti di sistema, dalle funzioni Lambda definite dall'utente e dai connettori.

Il valore predefinito è 1024. Il valore massimo è limitato dall'hardware del dispositivo.

Aumentando questo valore aumenta la memoria utilizzata da AWS IoT Greengrass. È possibile aumentare questo valore se si prevede che il core riceverà un intenso traffico di messaggi MQTT.

maxConcurrentLimit

Facoltativo. Il numero massimo di worker Lambda non bloccati simultaneamente che il demone Greengrass può avere. È possibile specificare un numero intero diverso per sovrascrivere questo parametro.

Il valore predefinito è 25. Il valore minimo è definito dalruSize.

lruSize Optional. Defines the minimum value for maxConcurrentLimit. The default value is 25.
mountAllBlockDispositivi Optional. Enables AWS IoT Greengrass to use bind mounts to mount all block devices into a container after setting up the OverlayFS.

Questa proprietà è disponibile nella versione AWS IoT Greengrass 1.11.0 o successiva.

I valori validi sono yes e no. Il valore predefinito è no.

Imposta questo valore su yes se la tua /usr directory non è sotto la gerarchia. /

postStartHealthCheckTimeout Optional. The time (in milliseconds) after starting that the Greengrass daemon waits for the health check to finish. The default timeout is 30 seconds (30000 ms).
cgroup
Usa SystemD Indicates whether your device uses systemd. Valid values are or no. Run the check_ggc_dependencies script in Modulo 1 to see if your device uses systemd.

crypto

crypto contiene proprietà che supportano lo storage di chiavi private in un modulo di sicurezza hardware (HSM) tramite PKCS#11 e storage segreti locali. Per ulteriori informazioni, consulta AWS IoT Greengrass principi di sicurezza fondamentali, Integrazione della sicurezza hardware e Distribuzione dei segreti nel core AWS IoT Greengrass. Sono supportate le configurazioni per lo storage di chiavi private negli HSM o nel file system.

Campo Descrizione Note
CapAth

Il percorso assoluto alla CA root AWS IoT.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

PKCS11
OpenSSLEngine

Facoltativo. Il percorso assoluto del file .so del motore OpenSSL per abilitare il supporto PKCS#11 su OpenSSL.

Deve essere un percorso di un file nel file system.

Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta Configurare il supporto per over-the-air aggiornamenti.

Provider P11

Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS#11.

Deve essere un percorso di un file nel file system.

Etichetta Slot

L'etichetta dello slot utilizzata per identificare il modulo hardware.

Deve essere conforme alle specifiche dell'etichetta PKCS#11.

slotUserPin

Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.

Deve disporre delle autorizzazioni sufficienti a eseguire C_Sign con le chiavi private configurate.

principals
Certificato IoT The certificate and private key that the core uses to make requests to AWS IoT.
Certificato IoT. privateKeyPath

Il percorso della chiave privata del core.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Certificato IoT. Percorso del certificato

Il percorso assoluto al certificato del dispositivo core.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

MQTT ServerCertificate

Facoltativo. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.

MQTTServerCertificate . privateKeyPath

Il percorso della chiave privata del server MQTT locale.

Utilizza questo valore per specificare la tua chiave privata del server MQTT locale.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.

SecretsManager The private key that secures the data key used for encryption. For more information, see Distribuzione dei segreti nel core AWS IoT Greengrass.
SecretsManager  .privateKeyPath

Il percorso della chiave privata del Secrets Manager locale.

Solo una chiave RSA è supportata.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding PKCS#1 v1.5.

Sono supportate anche le seguenti proprietà di configurazione:

Campo Descrizione Note
mqttMaxConnectionRetryInterval

Facoltativo. L'intervallo massimo (in secondi) tra tentativi di connessione MQTT se la connessione viene interrotta.

Specifica questo valore come numero intero senza segno. Il valore predefinito è 60.

managedRespawn

Facoltativo. Indica che l'agente OTA deve eseguire il codice personalizzato prima di un aggiornamento.

I valori validi sono true e false. Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

writeDirectory

Facoltativo. La directory di scrittura in cui vengono AWS IoT Greengrass create tutte le risorse di lettura/scrittura.

Per ulteriori informazioni, consulta Configurazione di una directory di scrittura per AWS IoT Greengrass.

pidFileDirectory

Facoltativo. AWS IoT Greengrassmemorizza il relativo ID di processo (PID) in questa directory.

Il valore predefinito è /var/run.

Extended life versions

Le seguenti versioni del software AWS IoT Greengrass Core sono in fase di estensione della vita utile. Queste informazioni sono incluse solo per riferimento.

GGC v1.10
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600, "systemComponentAuthTimeout": 5000 }, "runtime" : { "maxWorkItemCount" : 1024, "maxConcurrentLimit" : 25, "lruSize": 25, "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Il file config.json supporta le seguenti proprietà:

coreThing

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto

certPath

Il percorso del certificato del dispositivo core relativo alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
keyPath Il percorso della chiave privata core relativa alla directory /greengrass-root/certs. Per la compatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il dispositivo AWS IoT Greengrass principale. Trova l'ARN per il tuo core nella AWS IoT Greengrass console sotto Cores o eseguendo il comando aws greengrass get-core-definition-versionCLI.
iotHost L'endpoint AWS IoT.

Trova l'endpoint nella AWS IoT console in Impostazioni o eseguendo il comando aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Questo comando restituisce l'endpoint Amazon Trust Services (ATS). Per ulteriori informazioni, consulta la documentazione Autenticazione del server.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato.

Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

ggHost L'endpoint AWS IoT Greengrass.

Questo è l'endpoint iotHost con il prefisso host sostituito da greengrass (ad esempio, greengrass-ats.iot.region.amazonaws.com). Usa lo stesso Regione AWS diiotHost.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato.

Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

iotMqttPort Facoltativo. Il numero di porta da utilizzare per le comunicazioni MQTT con AWS IoT. I valori validi sono 8883 e 443. Il valore predefinito è 8883. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
iotHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS a AWS IoT. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
ggMqttPort Facoltativo. Il numero di porta da utilizzare per la comunicazione MQTT sulla rete locale. I valori validi sono compresi tra 1024 e 65535. Il valore predefinito è 8883. Per ulteriori informazioni, consulta Configurazione della porta MQTT per la messaggistica locale.
ggHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS al servizio AWS IoT Greengrass. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
keepAlive Facoltativo. Il periodo MQTT KeepAlive in secondi. L'intervallo valido è 30-1200 secondi. Il valore predefinito è 600.
networkProxy Facoltativo. Un oggetto che definisce un server proxy a cui connettersi. Il server proxy può essere HTTP o HTTPS. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
mqttOperationTimeout Facoltativo. La quantità di tempo (in secondi) per consentire al core Greengrass di completare un'operazione di pubblicazione, sottoscrizione o annullamento dell'iscrizione nelle connessioni MQTT a AWS IoT Core.

Questa proprietà è disponibile a partire da AWS IoT Greengrass v1.10.2.

Il valore predefinito è 5. Il valore minimo è 5.

runtime

Campo Descrizione Note
maxWorkItemConta

Facoltativo. Il numero massimo di elementi di lavoro che il daemon Greengrass può elaborare alla volta. Gli elementi di lavoro che superano questo limite vengono ignorati.

La coda degli elementi di lavoro è condivisa dai componenti di sistema, dalle funzioni Lambda definite dall'utente e dai connettori.

Il valore predefinito è 1024. Il valore massimo è limitato dall'hardware del dispositivo.

Aumentando questo valore aumenta la memoria utilizzata da AWS IoT Greengrass. È possibile aumentare questo valore se si prevede che il core riceverà un intenso traffico di messaggi MQTT.

maxConcurrentLimit

Facoltativo. Il numero massimo di worker Lambda non bloccati simultaneamente che il demone Greengrass può avere. È possibile specificare un numero intero diverso per sovrascrivere questo parametro.

Il valore predefinito è 25. Il valore minimo è definito dalruSize.

lruSize Optional. Defines the minimum value for maxConcurrentLimit. The default value is 25.
postStartHealthCheckTimeout Optional. The time (in milliseconds) after starting that the Greengrass daemon waits for the health check to finish. The default timeout is 30 seconds (30000 ms).
cgroup
Usa SystemD Indicates whether your device uses systemd. Valid values are or no. Run the check_ggc_dependencies script in Modulo 1 to see if your device uses systemd.

crypto

crypto contiene proprietà che supportano lo storage di chiavi private in un modulo di sicurezza hardware (HSM) tramite PKCS#11 e storage segreti locali. Per ulteriori informazioni, consulta AWS IoT Greengrass principi di sicurezza fondamentali, Integrazione della sicurezza hardware e Distribuzione dei segreti nel core AWS IoT Greengrass. Sono supportate le configurazioni per lo storage di chiavi private negli HSM o nel file system.

Campo Descrizione Note
CapAth

Il percorso assoluto alla CA root AWS IoT.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

PKCS11
OpenSSLEngine

Facoltativo. Il percorso assoluto del file .so del motore OpenSSL per abilitare il supporto PKCS#11 su OpenSSL.

Deve essere un percorso di un file nel file system.

Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta Configurare il supporto per over-the-air aggiornamenti.

Provider P11

Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS#11.

Deve essere un percorso di un file nel file system.

Etichetta Slot

L'etichetta dello slot utilizzata per identificare il modulo hardware.

Deve essere conforme alle specifiche dell'etichetta PKCS#11.

slotUserPin

Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.

Deve disporre delle autorizzazioni sufficienti a eseguire C_Sign con le chiavi private configurate.

principals
Certificato IoT The certificate and private key that the core uses to make requests to AWS IoT.
Certificato IoT. privateKeyPath

Il percorso della chiave privata del core.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Certificato IoT. Percorso del certificato

Il percorso assoluto al certificato del dispositivo core.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

MQTT ServerCertificate

Facoltativo. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.

MQTTServerCertificate . privateKeyPath

Il percorso della chiave privata del server MQTT locale.

Utilizza questo valore per specificare la tua chiave privata del server MQTT locale.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.

SecretsManager The private key that secures the data key used for encryption. For more information, see Distribuzione dei segreti nel core AWS IoT Greengrass.
SecretsManager  .privateKeyPath

Il percorso della chiave privata del Secrets Manager locale.

Solo una chiave RSA è supportata.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding PKCS#1 v1.5.

Sono supportate anche le seguenti proprietà di configurazione:

Campo Descrizione Note
mqttMaxConnectionRetryInterval

Facoltativo. L'intervallo massimo (in secondi) tra tentativi di connessione MQTT se la connessione viene interrotta.

Specifica questo valore come numero intero senza segno. Il valore predefinito è 60.

managedRespawn

Facoltativo. Indica che l'agente OTA deve eseguire il codice personalizzato prima di un aggiornamento.

I valori validi sono true e false. Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

writeDirectory

Facoltativo. La directory di scrittura in cui vengono AWS IoT Greengrass create tutte le risorse di lettura/scrittura.

Per ulteriori informazioni, consulta Configurazione di una directory di scrittura per AWS IoT Greengrass.

GGC v1.9
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600 }, "runtime" : { "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Il file config.json supporta le seguenti proprietà:

coreThing

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto

certPath

Il percorso del certificato del dispositivo core relativo alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
keyPath Il percorso della chiave privata core relativa alla directory /greengrass-root/certs. Per la compatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il dispositivo AWS IoT Greengrass principale. Trova l'ARN per il tuo core nella AWS IoT Greengrass console sotto Cores o eseguendo il comando aws greengrass get-core-definition-versionCLI.
iotHost L'endpoint AWS IoT.

Trova l'endpoint nella AWS IoT console in Impostazioni o eseguendo il comando aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Questo comando restituisce l'endpoint Amazon Trust Services (ATS). Per ulteriori informazioni, consulta la documentazione Autenticazione del server.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato.

Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

ggHost L'endpoint AWS IoT Greengrass.

Questo è l'endpoint iotHost con il prefisso host sostituito da greengrass (ad esempio, greengrass-ats.iot.region.amazonaws.com). Usa lo stesso Regione AWS diiotHost.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato.

Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

iotMqttPort Facoltativo. Il numero di porta da utilizzare per le comunicazioni MQTT con AWS IoT. I valori validi sono 8883 e 443. Il valore predefinito è 8883. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
iotHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS a AWS IoT. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
ggHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS al servizio AWS IoT Greengrass. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
keepAlive Facoltativo. Il periodo MQTT KeepAlive in secondi. L'intervallo valido è 30-1200 secondi. Il valore predefinito è 600.
networkProxy Facoltativo. Un oggetto che definisce un server proxy a cui connettersi. Il server proxy può essere HTTP o HTTPS. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.

runtime

Campo Descrizione Note
maxConcurrentLimit

Facoltativo. Il numero massimo di worker Lambda non bloccati simultaneamente che il demone Greengrass può avere. È possibile specificare un numero intero diverso per sovrascrivere questo parametro.

Il valore predefinito è 25. Il valore minimo è definito dalruSize.

lruSize Optional. Defines the minimum value for maxConcurrentLimit. The default value is 25.
postStartHealthCheckTimeout Optional. The time (in milliseconds) after starting that the Greengrass daemon waits for the health check to finish. The default timeout is 30 seconds (30000 ms).
cgroup
Usa SystemD Indicates whether your device uses systemd. Valid values are or no. Run the check_ggc_dependencies script in Modulo 1 to see if your device uses systemd.

crypto

L'oggetto crypto è aggiunto nella v1.7.0. Introduce proprietà che supportano lo storage di chiavi private in un modulo di sicurezza hardware (HSM) tramite PKCS#11 e storage segreti locali. Per ulteriori informazioni, consulta AWS IoT Greengrass principi di sicurezza fondamentali, Integrazione della sicurezza hardware e Distribuzione dei segreti nel core AWS IoT Greengrass. Sono supportate le configurazioni per lo storage di chiavi private negli HSM o nel file system.

Campo Descrizione Note
CapAth

Il percorso assoluto alla CA root AWS IoT.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

PKCS11
OpenSSLEngine

Facoltativo. Il percorso assoluto del file .so del motore OpenSSL per abilitare il supporto PKCS#11 su OpenSSL.

Deve essere un percorso di un file nel file system.

Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta Configurare il supporto per over-the-air aggiornamenti.

Provider P11

Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS#11.

Deve essere un percorso di un file nel file system.

Etichetta Slot

L'etichetta dello slot utilizzata per identificare il modulo hardware.

Deve essere conforme alle specifiche dell'etichetta PKCS#11.

slotUserPin

Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.

Deve disporre delle autorizzazioni sufficienti a eseguire C_Sign con le chiavi private configurate.

principals
Certificato IoT The certificate and private key that the core uses to make requests to AWS IoT.
Certificato IoT. privateKeyPath

Il percorso della chiave privata del core.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Certificato IoT. Percorso del certificato

Il percorso assoluto al certificato del dispositivo core.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

MQTT ServerCertificate

Facoltativo. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.

MQTTServerCertificate . privateKeyPath

Il percorso della chiave privata del server MQTT locale.

Utilizza questo valore per specificare la tua chiave privata del server MQTT locale.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.

SecretsManager The private key that secures the data key used for encryption. For more information, see Distribuzione dei segreti nel core AWS IoT Greengrass.
SecretsManager  .privateKeyPath

Il percorso della chiave privata del Secrets Manager locale.

Solo una chiave RSA è supportata.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding PKCS#1 v1.5.

Sono supportate anche le seguenti proprietà di configurazione.

Campo Descrizione Note
mqttMaxConnectionRetryInterval

Facoltativo. L'intervallo massimo (in secondi) tra tentativi di connessione MQTT se la connessione viene interrotta.

Specifica questo valore come numero intero senza segno. Il valore predefinito è 60.

managedRespawn

Facoltativo. Indica che l'agente OTA deve eseguire il codice personalizzato prima di un aggiornamento.

I valori validi sono true e false. Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

writeDirectory

Facoltativo. La directory di scrittura in cui vengono AWS IoT Greengrass create tutte le risorse di lettura/scrittura.

Per ulteriori informazioni, consulta Configurazione di una directory di scrittura per AWS IoT Greengrass.

GGC v1.8
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600 }, "runtime" : { "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Il config.json file supporta le seguenti proprietà.

coreThing

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla directory /greengrass-root/certs.

Per la compatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto

certPath

Il percorso del certificato del dispositivo core relativo alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
keyPath Il percorso della chiave privata core relativa alla directory /greengrass-root/certs. Per la compatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il dispositivo AWS IoT Greengrass principale. Trova l'ARN per il tuo core nella AWS IoT Greengrass console sotto Cores o eseguendo il comando aws greengrass get-core-definition-versionCLI.
iotHost L'endpoint AWS IoT.

Trova l'endpoint nella AWS IoT console in Impostazioni o eseguendo il comando aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Questo comando restituisce l'endpoint Amazon Trust Services (ATS). Per ulteriori informazioni, consulta la documentazione Autenticazione del server.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato. Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

ggHost L'endpoint AWS IoT Greengrass.

Questo è l'endpoint iotHost con il prefisso host sostituito da greengrass (ad esempio, greengrass-ats.iot.region.amazonaws.com). Usa lo stesso Regione AWS di. iotHost

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato. Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

iotMqttPort Facoltativo. Il numero di porta da utilizzare per le comunicazioni MQTT con AWS IoT. I valori validi sono 8883 e 443. Il valore predefinito è 8883. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
iotHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS a AWS IoT. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
ggHttpPort Facoltativo. Il numero di porta utilizzato per creare le connessioni HTTPS al servizio AWS IoT Greengrass. I valori validi sono 8443 e 443. Il valore predefinito è 8443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
keepAlive Facoltativo. Il periodo MQTT KeepAlive in secondi. L'intervallo valido è 30-1200 secondi. Il valore predefinito è 600.
networkProxy Facoltativo. Un oggetto che definisce un server proxy a cui connettersi. Il server proxy può essere HTTP o HTTPS. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.

runtime

Campo Descrizione Note
cgroup
Usa SystemD Indicates whether your device uses systemd. Valid values are or no. Run the check_ggc_dependencies script in Modulo 1 to see if your device uses systemd.

crypto

L'oggetto crypto è aggiunto nella v1.7.0. Introduce proprietà che supportano lo storage di chiavi private in un modulo di sicurezza hardware (HSM) tramite PKCS#11 e storage segreti locali. Per ulteriori informazioni, consulta AWS IoT Greengrass principi di sicurezza fondamentali, Integrazione della sicurezza hardware e Distribuzione dei segreti nel core AWS IoT Greengrass. Sono supportate le configurazioni per lo storage di chiavi private negli HSM o nel file system.

Campo Descrizione Note
CapAth

Il percorso assoluto alla CA root AWS IoT.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

PKCS11
OpenSSLEngine

Facoltativo. Il percorso assoluto del file .so del motore OpenSSL per abilitare il supporto PKCS#11 su OpenSSL.

Deve essere un percorso di un file nel file system.

Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta Configurare il supporto per over-the-air aggiornamenti.

Provider P11

Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS#11.

Deve essere un percorso di un file nel file system.

Etichetta Slot

L'etichetta dello slot utilizzata per identificare il modulo hardware.

Deve essere conforme alle specifiche dell'etichetta PKCS#11.

slotUserPin

Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.

Deve disporre delle autorizzazioni sufficienti a eseguire C_Sign con le chiavi private configurate.

principals
Certificato IoT The certificate and private key that the core uses to make requests to AWS IoT.
Certificato IoT. privateKeyPath

Il percorso della chiave privata del core.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Certificato IoT. Percorso del certificato

Il percorso assoluto al certificato del dispositivo core.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

MQTT ServerCertificate

Facoltativo. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.

MQTTServerCertificate . privateKeyPath

Il percorso della chiave privata del server MQTT locale.

Utilizza questo valore per specificare la tua chiave privata del server MQTT locale.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.

SecretsManager The private key that secures the data key used for encryption. For more information, see Distribuzione dei segreti nel core AWS IoT Greengrass.
SecretsManager  .privateKeyPath

Il percorso della chiave privata del Secrets Manager locale.

Solo una chiave RSA è supportata.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding PKCS#1 v1.5.

Sono supportate anche le seguenti proprietà di configurazione:

Campo Descrizione Note
mqttMaxConnectionRetryInterval

Facoltativo. L'intervallo massimo (in secondi) tra tentativi di connessione MQTT se la connessione viene interrotta.

Specifica questo valore come numero intero senza segno. Il valore predefinito è 60.

managedRespawn

Facoltativo. Indica che l'agente OTA deve eseguire il codice personalizzato prima di un aggiornamento.

I valori validi sono true e false. Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

writeDirectory

Facoltativo. La directory di scrittura in cui vengono AWS IoT Greengrass create tutte le risorse di lettura/scrittura.

Per ulteriori informazioni, consulta Configurazione di una directory di scrittura per AWS IoT Greengrass.

GGC v1.7
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "hash.cert.pem", "keyPath" : "hash.private.key", "thingArn" : "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost" : "host-prefix-ats.iot.region.amazonaws.com", "ggHost" : "greengrass-ats.iot.region.amazonaws.com", "keepAlive" : 600 }, "runtime" : { "cgroup" : { "useSystemd" : "yes" } }, "managedRespawn" : false, "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///greengrass/certs/hash.private.key", "certificatePath" : "file:///greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///greengrass/certs/root.ca.pem" } }

Il file config.json supporta le seguenti proprietà:

coreThing

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto

certPath

Il percorso del certificato del dispositivo core relativo alla directory /greengrass-root/certs.

Per la retrocompatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
keyPath Il percorso della chiave privata core relativa alla directory /greengrass-root/certs. Per la compatibilità con le versioni precedenti alla 1.7.0. Questa proprietà viene ignorata quando l'oggetto è presente. crypto
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il dispositivo AWS IoT Greengrass principale. Trova l'ARN per il tuo core nella AWS IoT Greengrass console sotto Cores o eseguendo il comando aws greengrass get-core-definition-versionCLI.
iotHost L'endpoint AWS IoT.

Trova l'endpoint nella AWS IoT console in Impostazioni o eseguendo il comando aws iot describe-endpoint --endpoint-type iot:Data-ATSCLI.

Questo comando restituisce l'endpoint Amazon Trust Services (ATS). Per ulteriori informazioni, consulta la documentazione Autenticazione del server.

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato. Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

ggHost L'endpoint AWS IoT Greengrass.

Questo è l'endpoint iotHost con il prefisso host sostituito da greengrass (ad esempio, greengrass-ats.iot.region.amazonaws.com). Usa lo stesso Regione AWS di. iotHost

Nota

Assicurati che gli endpoint corrispondano al tipo di certificato. Assicurati che i tuoi endpoint corrispondano ai tuoi. Regione AWS

iotMqttPort Facoltativo. Il numero di porta da utilizzare per le comunicazioni MQTT con AWS IoT. I valori validi sono 8883 e 443. Il valore predefinito è 8883. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.
keepAlive Facoltativo. Il periodo MQTT KeepAlive in secondi. L'intervallo valido è 30-1200 secondi. Il valore predefinito è 600.
networkProxy Facoltativo. Un oggetto che definisce un server proxy a cui connettersi. Il server proxy può essere HTTP o HTTPS. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.

runtime

Campo Descrizione Note
cgroup
Usa SystemD Indicates whether your device uses systemd. Valid values are or no. Run the check_ggc_dependencies script in Modulo 1 to see if your device uses systemd.

crypto

L'oggetto crypto aggiunto nella versione v1.7.0, introduce proprietà che supportano lo storage di chiavi private in un modulo di sicurezza hardware (HSM) tramite PKCS#11 e storage di segreti locali. Per ulteriori informazioni, consultare Integrazione della sicurezza hardware e Distribuzione dei segreti nel core AWS IoT Greengrass. Sono supportate le configurazioni per lo storage di chiavi private negli HSM o nel file system.

Campo Descrizione Note
CapAth

Il percorso assoluto alla CA root AWS IoT.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

PKCS11
OpenSSLEngine

Facoltativo. Il percorso assoluto del file .so del motore OpenSSL per abilitare il supporto PKCS#11 su OpenSSL.

Deve essere un percorso di un file nel file system.

Questa proprietà è obbligatoria se si utilizza l'agente di aggiornamento OTA Greengrass con sicurezza hardware. Per ulteriori informazioni, consulta Configurare il supporto per over-the-air aggiornamenti.

Provider P11

Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS#11.

Deve essere un percorso di un file nel file system.

Etichetta Slot

L'etichetta dello slot utilizzata per identificare il modulo hardware.

Deve essere conforme alle specifiche dell'etichetta PKCS#11.

slotUserPin

Il PIN utente utilizzato per autenticare il core Greengrass nel modulo.

Deve disporre delle autorizzazioni sufficienti a eseguire C_Sign con le chiavi private configurate.

principals
Certificato IoT The certificate and private key that the core uses to make requests to AWS IoT.
Certificato IoT. privateKeyPath

Il percorso della chiave privata del core.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Certificato IoT. Percorso del certificato

Il percorso assoluto al certificato del dispositivo core.

Deve essere un URI di file nel formato: file:///absolute/path/to/file.

MQTT ServerCertificate

Facoltativo. La chiave privata che il core utilizza insieme al certificato per fungere da gateway o server MQTT.

MQTTServerCertificate . privateKeyPath

Il percorso della chiave privata del server MQTT locale.

Utilizza questo valore per specificare la tua chiave privata del server MQTT locale.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto.

Se questa proprietà viene omessa, AWS IoT Greengrass ruota la chiave in base alle impostazioni di rotazione. Se viene specificata, il cliente sarà responsabile della rotazione della chiave.

SecretsManager The private key that secures the data key used for encryption. For more information, see Distribuzione dei segreti nel core AWS IoT Greengrass.
SecretsManager  .privateKeyPath

Il percorso della chiave privata del Secrets Manager locale.

Solo una chiave RSA è supportata.

Per lo storage di file system, deve essere un URI di file nel formato: file:///absolute/path/to/file.

Per lo storage HSM, deve essere un percorso PKCS#11 RFC 7512 che specifica l'etichetta dell'oggetto. La chiave privata deve essere generata utilizzando il meccanismo di padding PKCS#1 v1.5.

Sono supportate anche le seguenti proprietà di configurazione:

Campo Descrizione Note
mqttMaxConnectionRetryInterval

Facoltativo. L'intervallo massimo (in secondi) tra tentativi di connessione MQTT se la connessione viene interrotta.

Specifica questo valore come numero intero senza segno. Il valore predefinito è 60.

managedRespawn

Facoltativo. Indica che l'agente OTA deve eseguire il codice personalizzato prima di un aggiornamento.

I valori validi sono true e false. Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

writeDirectory

Facoltativo. La directory di scrittura in cui vengono AWS IoT Greengrass create tutte le risorse di lettura/scrittura.

Per ulteriori informazioni, consulta Configurazione di una directory di scrittura per AWS IoT Greengrass.

GGC v1.6
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600, "mqttMaxConnectionRetryInterval": 60 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } }, "managedRespawn": true, "writeDirectory": "/write-directory" }
Nota

Se si utilizza l'opzione di creazione del gruppo predefinito dalla AWS IoT Greengrass console, il config.json file viene distribuito sul dispositivo principale in uno stato funzionante che specifica la configurazione predefinita.

Il file config.json supporta le seguenti proprietà:

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla directory /greengrass-root/certs.

Salva il file in /greengrass-root/certs.

certPath

Il percorso del certificato di AWS IoT Greengrass base relativo alla /greengrass-root/certs directory.

Salva il file in /greengrass-root/certs.
keyPath Il percorso della AWS IoT Greengrass chiave privata principale relativa alla /greengrass-root/certs directory. Salva il file in /greengrass-root/certs.
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il dispositivo AWS IoT Greengrass principale. Trova l'ARN per il tuo core nella AWS IoT Greengrass console sotto Cores o eseguendo il comando aws greengrass get-core-definition-versionCLI.
iotHost L'endpoint AWS IoT. Trovalo nella AWS IoT console in Impostazioni o eseguendo il comando aws iot describe-endpointCLI.
ggHost L'endpoint AWS IoT Greengrass. Questo valore usa il formato greengrass.iot.region.amazonaws.com. Usa la stessa regione di iotHost.
keepAlive Il periodo MQTT KeepAlive in secondi. Questo valore è opzionale. Il valore predefinito è 600.
mqttMaxConnectionRetryInterval

L'intervallo massimo (in secondi) tra tentativi di connessione MQTT se la connessione viene interrotta.

Specifica questo valore come numero intero senza segno. Questo valore è opzionale. Il valore predefinito è 60.

useSystemd Indica se il dispositivo utilizza systemd. I valori validi sono yes e no. Esegui lo script check_ggc_dependencies nel Modulo 1 per visualizzare se il dispositivo usa systemd.
managedRespawn

Una funzionalità di aggiornamento opzionale over-the-air (OTA), indica che l'agente OTA deve eseguire codice personalizzato prima di un aggiornamento.

I valori validi sono true e false. Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

writeDirectory

La directory di scrittura in cui vengono AWS IoT Greengrass create tutte le risorse di lettura/scrittura.

Questo valore è opzionale. Per ulteriori informazioni, consulta Configurazione di una directory di scrittura per AWS IoT Greengrass.

GGC v1.5
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } }, "managedRespawn": true }

Il file config.json esiste in /greengrass-root/config e contiene i parametri seguenti:

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla cartella /greengrass-root/certs.

Salvare il file nella cartella /greengrass-root/certs.

certPath

Il percorso del certificato di AWS IoT Greengrass base relativo alla /greengrass-root/certs cartella.

Salvare il file nella cartella /greengrass-root/certs.
keyPath Il percorso della AWS IoT Greengrass chiave privata principale relativa alla /greengrass-root/certs cartella. Salvare il file nella cartella /greengrass-root/certs.
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il dispositivo AWS IoT Greengrass principale. Trova l'ARN per il tuo core nella AWS IoT Greengrass console sotto Cores o eseguendo il comando aws greengrass get-core-definition-versionCLI.
iotHost L'endpoint AWS IoT. Trovalo nella AWS IoT console in Impostazioni o eseguendo il comando. aws iot describe-endpoint
ggHost L'endpoint AWS IoT Greengrass. Questo valore usa il formato greengrass.iot.region.amazonaws.com. Usa la stessa regione di iotHost.
keepAlive Il periodo MQTT KeepAlive in secondi. Questo valore è opzionale. Il valore predefinito è 600 secondi.
useSystemd Indica se il dispositivo utilizza systemd. I valori validi sono yes e no. Esegui lo script check_ggc_dependencies nel Modulo 1 per visualizzare se il dispositivo usa systemd.
managedRespawn

Una funzionalità di aggiornamento opzionale over-the-air (OTA), indica che l'agente OTA deve eseguire codice personalizzato prima di un aggiornamento.

Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

GGC v1.3
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } }, "managedRespawn": true }

Il file config.json esiste in /greengrass-root/config e contiene i parametri seguenti:

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla cartella /greengrass-root/certs.

Salvare il file nella cartella /greengrass-root/certs.

certPath

Il percorso del certificato AWS IoT Greengrass principale relativo alla /greengrass-root/certs cartella.

Salvare il file nella cartella /greengrass-root/certs.
keyPath Il percorso della AWS IoT Greengrass chiave privata principale relativa alla /greengrass-root/certs cartella. Salvare il file nella cartella /greengrass-root/certs.
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il AWS IoT Greengrass core. Puoi trovare questo valore nella AWS IoT Greengrass console sotto la definizione del tuo programmaAWS IoT.
iotHost L'endpoint AWS IoT. Puoi trovare questo valore nella AWS IoT console in Impostazioni.
ggHost L'endpoint AWS IoT Greengrass. Puoi trovare questo valore nella AWS IoT console sotto Impostazioni con greengrass. prefisso.
keepAlive Il periodo MQTT KeepAlive in secondi. Questo valore è opzionale. Il valore predefinito è 600 secondi.
useSystemd Un flag binario, se il dispositivo utilizza systemd. I valori sono yes o no. Usa lo script di dipendenza nel Modulo 1 per visualizzare se il dispositivo usa systemd.
managedRespawn

Una funzionalità di aggiornamento opzionale over-the-air (OTA), indica che l'agente OTA deve eseguire codice personalizzato prima di un aggiornamento.

Per ulteriori informazioni, consulta Aggiornamenti OTA del software AWS IoT Greengrass Core.

GGC v1.1
{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } } }

Il file config.json esiste in /greengrass-root/config e contiene i parametri seguenti:

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla cartella /greengrass-root/certs.

Salvare il file nella cartella /greengrass-root/certs.

certPath

Il percorso del certificato AWS IoT Greengrass principale relativo alla /greengrass-root/certs cartella.

Salvare il file nella cartella /greengrass-root/certs.
keyPath Il percorso della AWS IoT Greengrass chiave privata principale relativa alla /greengrass-root/certs cartella. Salvare il file nella cartella /greengrass-root/certs.
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il AWS IoT Greengrass core. Puoi trovare questo valore nella AWS IoT Greengrass console sotto la definizione del tuo programmaAWS IoT.
iotHost L'endpoint AWS IoT. Puoi trovare questo valore nella AWS IoT console in Impostazioni.
ggHost L'endpoint AWS IoT Greengrass. Puoi trovare questo valore nella AWS IoT console sotto Impostazioni con greengrass. prefisso.
keepAlive Il periodo MQTT KeepAlive in secondi. Questo valore è opzionale. Il valore predefinito è 600 secondi.
useSystemd Un flag binario, se il dispositivo utilizza systemd. I valori sono yes o no. Usa lo script di dipendenza nel Modulo 1 per visualizzare se il dispositivo usa systemd.
GGC 1.0

In AWS IoT Greengrass Core v1.0, config.json viene distribuito su greengrass-root/configuration.

{ "coreThing": { "caPath": "root-ca-pem", "certPath": "cloud-pem-crt", "keyPath": "cloud-pem-key", "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name", "iotHost": "host-prefix.iot.region.amazonaws.com", "ggHost": "greengrass.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes|no" } } }

Il file config.json esiste in /greengrass-root/configuration e contiene i parametri seguenti:

Campo Descrizione Note
caPath

Il percorso della CA root AWS IoT relativa alla cartella /greengrass-root/configuration/certs.

Salvare il file nella cartella /greengrass-root/configuration/certs.

certPath

Il percorso del certificato di AWS IoT Greengrass base relativo alla /greengrass-root/configuration/certs cartella.

Salvare il file nella cartella /greengrass-root/configuration/certs.
keyPath Il percorso della AWS IoT Greengrass chiave privata principale relativa alla /greengrass-root/configuration/certs cartella. Salvare il file nella cartella /greengrass-root/configuration/certs.
thingArn L'Amazon Resource Name (ARN) dell'AWS IoTelemento che rappresenta il AWS IoT Greengrass core. Puoi trovare questo valore nella AWS IoT Greengrass console sotto la definizione del tuo AWS IoT thing.
iotHost L'endpoint AWS IoT. Puoi trovare questo valore nella AWS IoT console in Impostazioni.
ggHost L'endpoint AWS IoT Greengrass.

Puoi trovare questo valore nella AWS IoT console sotto Impostazioni con greengrass. prefisso.

keepAlive Il periodo MQTT KeepAlive in secondi. Questo valore è opzionale. Il valore predefinito è 600 secondi.
useSystemd Un flag binario, se il dispositivo utilizza systemd. I valori sono yes o no. Usa lo script di dipendenza nel Modulo 1 per visualizzare se il dispositivo usa systemd.

Gli endpoint del servizio devono corrispondere al tipo di certificato CA principale

I tuoi endpoint AWS IoT Core e AWS IoT Greengrass devono corrispondere al tipo di certificato della CA root del dispositivo. Se gli endpoint e il tipo di certificato non corrispondono, i tentativi di autenticazione non riescono tra il dispositivo e AWS IoT Core o AWS IoT Greengrass. Per ulteriori informazioni, consulta Autenticazione del server nella Guida per gli sviluppatori di AWS IoT.

Se il tuo dispositivo utilizza un certificato CA root di Amazon Trust Services (ATS), che è il metodo preferito, deve utilizzare anche gli endpoint ATS per la gestione dei dispositivi e le operazioni del piano dati di rilevamento. Gli endpoint ATS includono il segmento ats, come illustrato nella seguente sintassi per l'endpoint AWS IoT Core.

prefix-ats.iot.region.amazonaws.com
Nota

Per motivi di compatibilità con le versioni precedenti, AWS IoT Greengrass attualmente supporta i certificati e gli endpoint CA VeriSign root legacy in alcuni casi. Regione AWS Se utilizzi un certificato CA VeriSign radice legacy, ti consigliamo di creare un endpoint ATS e utilizzare invece un certificato CA radice ATS. Altrimenti utilizza i corrispondenti endpoint legacy. Per ulteriori informazioni, consulta Endpoint legacy supportati nella Riferimenti generali di Amazon Web Services.

Endpoint in config.json

Su un dispositivo principale di Greengrass, gli endpoint sono specificati nell'oggetto coreThing nel config.json file. La proprietà iotHost rappresenta l'endpoint AWS IoT Core. La proprietà ggHost rappresenta l'endpoint AWS IoT Greengrass. In questo frammento di esempio, le proprietà specificano gli endpoint ATS.

{ "coreThing" : { ... "iotHost" : "abcde1234uwxyz-ats.iot.us-west-2.amazonaws.com", "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", ... },
Endpoint AWS IoT Core

Puoi ottenere l'endpoint AWS IoT Core eseguendo il comando CLI aws iot describe-endpoint con il parametro --endpoint-type appropriato.

  • Per restituire un endpoint firmato con ATS, esegui:

    aws iot describe-endpoint --endpoint-type iot:Data-ATS
  • Per restituire un endpoint VeriSign firmato legacy, esegui:

    aws iot describe-endpoint --endpoint-type iot:Data
Endpoint AWS IoT Greengrass

L'endpoint AWS IoT Greengrass corrisponde all'endpoint iotHost con il prefisso host sostituito da greengrass. Ad esempio, l'endpoint firmato con ATS è greengrass-ats.iot.region.amazonaws.com. Utilizza la stessa regione dell'endpoint AWS IoT Core.

Connessione alla porta 443 o tramite un proxy di rete

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

Il core Greengrass comunica con AWS IoT Core mediante il protocollo di messaggistica MQTT con l'autenticazione client TLS. Per convenzione, il protocollo MQTT su TLS utilizza la porta 8883. Tuttavia, come misura di sicurezza, gli ambienti restrittivi potrebbero limitare il traffico in entrata e in uscita a un numero ridotto di porte TCP. Ad esempio, un firewall aziendale potrebbe aprire la porta 443 per il traffico HTTPS, ma chiudere le altre porte utilizzate per i protocolli meno comuni, come la porta 8883 per il traffico MQTT. Altri ambienti restrittivi potrebbero richiedere l'indirizzamento di tutto il traffico a un proxy HTTP prima della connessione a Internet.

Per abilitare le comunicazioni in questi scenari, AWS IoT Greengrass consente di effettuare le seguenti configurazioni:

  • MQTT con autenticazione client TLS sulla porta 443. Se la rete in uso consente connessioni alla porta 443, è possibile configurare il core in modo da utilizzare la porta 443 anziché la porta predefinita 8883 per il traffico MQTT. Si può trattare di una connessione diretta alla porta 443 o di una connessione tramite un server proxy di rete.

    AWS IoT Greengrass utilizza l'estensione TLS Application Layer Protocol Network (ALPN) per abilitare questa connessione. Come per la configurazione predefinita, sulla porta 443 il protocollo MQTT su TLS utilizza l'autenticazione client basata sul certificato.

    Se configurato per utilizzare una connessione diretta alla porta 443, il core supporta gli aggiornamenti over-the-air (OTA) per AWS IoT Greengrass il software. Questo supporto richiede AWS IoT Greengrass Core v1.9.3 o versioni successive.

  • Comunicazione HTTPS sulla porta 443. AWS IoT Greengrass invia il traffico HTTPS sulla porta 8443 per impostazione predefinita, ma puoi configurarlo per utilizzare la porta 443.

  • Connessione tramite un proxy di rete. Puoi configurare un server proxy di rete in modo che funga da intermediario per la connessione al core Greengrass. Sono supportati solo l'autenticazione di base e i proxy HTTP e HTTPS.

    La configurazione del proxy viene passata alle funzioni Lambda definite dall'utente tramite http_proxy le variabili di https_proxy ambiente, no_proxy e. Le funzioni Lambda definite dall'utente devono utilizzare queste impostazioni passate per connettersi tramite il proxy. Le librerie comuni utilizzate dalle funzioni Lambda per effettuare connessioni (come boto3 o cURL e pacchetti requests python) in genere utilizzano queste variabili di ambiente per impostazione predefinita. Se una funzione Lambda specifica anche queste stesse variabili di ambiente, AWS IoT Greengrass non le sovrascrive.

    Importante

    I dispositivi Greengrass Core che sono configurati per utilizzare un proxy di rete non supportano aggiornamenti OTA.

Per configurare MQTT sulla porta 443

Questa funzionalità richiede AWS IoT Greengrass Core v1.7 o versione successiva.

Questa procedura consente al core Greengrass di utilizzare la porta 443 per la messaggistica MQTT con AWS IoT Core.

  1. Eseguite il seguente comando per arrestare il demone Greengrass:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Apri greengrass-root/config/config.json per la modifica come utente su.

  3. Nell'oggetto coreThing, aggiungere la proprietà iotMqttPort e impostare il valore su 443, come mostrato nel seguente esempio.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "iotMqttPort" : 443, "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "keepAlive" : 600 }, ... }
  4. Avvia il daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

 

Per configurare HTTPS sulla porta 443

Questa funzionalità richiede AWS IoT Greengrass Core v1.8 o versione successiva.

Questa procedura consente di configurare il core per utilizzare la porta 443 per la comunicazione HTTPS.

  1. Eseguite il seguente comando per arrestare il demone Greengrass:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Apri greengrass-root/config/config.json per la modifica come utente su.

  3. Nell'oggetto coreThing, aggiungere le proprietà iotHttpPort e ggHttpPort, come mostrato nel seguente esempio.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "iotHttpPort" : 443, "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "ggHttpPort" : 443, "keepAlive" : 600 }, ... }
  4. Avvia il daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

 

Per configurare un proxy di rete

Questa funzionalità richiede AWS IoT Greengrass Core v1.7 o versione successiva.

Questa procedura consente a AWS IoT Greengrass di connettersi a Internet tramite un proxy di rete HTTP o HTTPS.

  1. Eseguite il seguente comando per arrestare il demone Greengrass:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Apri greengrass-root/config/config.json per la modifica come utente su.

  3. Nell'oggetto coreThing, aggiungere l'oggetto networkProxy come mostrato nel seguente esempio.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "keepAlive" : 600, "networkProxy": { "noProxyAddresses" : "http://128.12.34.56,www.mywebsite.com", "proxy" : { "url" : "https://my-proxy-server:1100", "username" : "Mary_Major", "password" : "pass@word1357" } } }, ... }
  4. Avvia il daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

oggetto networkProxy

Utilizza l'oggetto networkProxy per specificare le informazioni sul proxy di rete. Questo oggetto ha le proprietà seguenti.

Campo Descrizione
noProxyAddresses

Facoltativo. Un elenco separato da virgole di indirizzi IP o nomi host esenti dal proxy.

proxy

Il proxy a cui connettersi. Un proxy ha le seguenti proprietà.

  • url. L'URL del server proxy, nel formatoscheme://userinfo@host:port.

    • scheme. Lo schema. Deve essere http o https.

    • userinfo. Facoltativo. Le informazioni sul nome utente e la password. Se specificate, i campi password e username vengono ignorati.

    • host. Il nome host o l'indirizzo IP del server proxy.

    • port. Facoltativo. Il numero di porta. Se non è specificato, verranno utilizzati i seguenti valori predefiniti:

      • http: 80

      • https: 443

  • username. Facoltativo. Il nome utente da utilizzare per eseguire l'autenticazione nel server proxy.

  • password. Facoltativo. La password da utilizzare per eseguire l'autenticazione nel server proxy.

Consentire gli endpoint

La comunicazione tra dispositivi Greengrass e AWS IoT Core o AWS IoT Greengrass deve essere autenticata. Questa autenticazione si basa su certificati di dispositivo X.509 registrati e chiavi crittografiche. Per consentire alle richieste autenticate di passare attraverso i proxy senza crittografia aggiuntiva, consentire i seguenti endpoint.

Endpoint Porta Descrizione
greengrass.region.amazonaws.com 443

Utilizzato per controllare le operazioni del piano per la gestione dei gruppi.

prefix-ats.iot.region.amazonaws.com

oppure

prefix.iot.region.amazonaws.com

MQTT: 8883 o 443

HTTPS: 8443 o 443

Utilizzato per operazioni del piano dei dati per la gestione dei dispositivi, ad esempio la sincronizzazione shadow.

Consenti l'uso di uno o entrambi gli endpoint, a seconda che i dispositivi core e client utilizzino certificati CA root di Amazon Trust Services (preferiti), certificati CA root legacy o entrambi. Per ulteriori informazioni, consulta Gli endpoint del servizio devono corrispondere al tipo di certificato CA principale.

greengrass-ats.iot.region.amazonaws.com

oppure

greengrass.iot.region.amazonaws.com

8443 o 443

Utilizzato per operazioni di rilevamento dispositivo.

Consenti l'uso di uno o entrambi gli endpoint, a seconda che i dispositivi core e client utilizzino certificati CA root di Amazon Trust Services (preferiti), certificati CA root legacy o entrambi. Per ulteriori informazioni, consulta Gli endpoint del servizio devono corrispondere al tipo di certificato CA principale.

Nota

I client che si connettono alla porta 443 devono implementare l'estensione TLS Application Layer Protocol Negotiation (ALPN) e passare x-amzn-http-ca come in. ProtocolName ProtocolNameList Per ulteriori informazioni, consulta Protocols nella Developer Guide. AWS IoT

*.s3.amazonaws.com 443

Utilizzato per le operazioni di distribuzione e over-the-air gli aggiornamenti. Questo formato include il carattere * perché i prefissi endpoint vengono controllati internamente e potrebbero cambiare in qualsiasi momento.

logs.region.amazonaws.com 443

Richiesto se il gruppo Greengrass viene configurato per scrivere i log in CloudWatch.

Configurazione di una directory di scrittura per AWS IoT Greengrass

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

Per impostazione predefinita, il software AWS IoT Greengrass Core è distribuito in un'unica directory principale in cui AWS IoT Greengrass esegue tutte le operazioni di lettura e scrittura. Tuttavia, puoi configurare AWS IoT Greengrass per l'utilizzo di una directory separata per tutte le operazioni di scrittura, tra cui la creazione di directory e file. In questo caso, AWS IoT Greengrass usa due directory di primo livello:

  • La directory greengrass-root, che può essere lasciata in lettura/scrittura o essere resa, se necessario, di sola lettura. Questa contiene il software AWS IoT Greengrass Core e altri componenti critici che devono mantenere lo stato non modificabile durante il runtime, ad esempio i certificati e config.json.

  • La directory di scrittura specificata. Contiene contenuti scrivibili, come registri, informazioni sullo stato e funzioni Lambda definite dall'utente distribuite.

Questa configurazione determina la seguente struttura di directory.

Directory principale Greengrass
greengrass-root/ |-- certs/ | |-- root.ca.pem | |-- hash.cert.pem | |-- hash.private.key | |-- hash.public.key |-- config/ | |-- config.json |-- ggc/ | |-- packages/ | |-- package-version/ | |-- bin/ | |-- daemon | |-- greengrassd | |-- lambda/ | |-- LICENSE/ | |-- release_notes_package-version.html | |-- runtime/ | |-- java8/ | |-- nodejs8.10/ | |-- python3.8/ | |-- core/
Directory di scrittura
write-directory/ |-- packages/ | |-- package-version/ | |-- ggc_root/ | |-- rootfs_nosys/ | |-- rootfs_sys/ | |-- var/ |-- deployment/ | |-- group/ | |-- group.json | |-- lambda/ | |-- mlmodel/ |-- var/ | |-- log/ | |-- state/

 

Per configurare una directory di scrittura
  1. Esegui il comando seguente per arrestare il daemon AWS IoT Greengrass:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Apri greengrass-root/config/config.json per la modifica come utente su.

  3. Aggiungi writeDirectory come parametro e specifica il percorso della directory di destinazione, come mostrato nel seguente esempio.

    { "coreThing": { "caPath": "root-CA.pem", "certPath": "hash.pem.crt", ... }, ... "writeDirectory" : "/write-directory" }
    Nota

    Puoi aggiornare le impostazioni di writeDirectory in qualsiasi momento. Dopo che le impostazioni sono state aggiornate, AWS IoT Greengrass utilizza la nuova directory di scrittura specificata all'avvio successivo, ma non migra il contenuto dalla precedente directory di scrittura.

  4. Ora che la directory di scrittura è configurata, puoi rendere la directory greengrass-root di sola lettura. Per maggiori istruzioni, consulta Come rendere la directory principale Greengrass di sola lettura.

    Altrimenti, avvia il daemon AWS IoT Greengrass:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

 

Per rendere la directory principale di Greengrass di sola lettura

Seguire queste fasi solo se si desidera rendere la directory principale Greengrass di sola lettura. La directory di scrittura deve essere configurata prima di iniziare.

  1. Concedere le autorizzazioni di accesso alle directory richieste:

    1. Fornisci le autorizzazioni di lettura e scrittura al proprietario di config.json.

      sudo chmod 0600 /greengrass-root/config/config.json
    2. Rendi ggc_user il proprietario dei certificati e delle directory Lambda del sistema.

      sudo chown -R ggc_user:ggc_group /greengrass-root/certs/ sudo chown -R ggc_user:ggc_group /greengrass-root/ggc/packages/1.11.6/lambda/
      Nota

      Gli account ggc_user e ggc_group vengono utilizzati di default per eseguire le funzioni Lambda di sistema. Se hai configurato l'identità di accesso predefinita a livello di gruppo per utilizzare account differenti, è consigliabile concedere le autorizzazioni a tali utente (UID) e gruppo (GID).

  2. Rendi la directory greengrass-root di sola lettura utilizzando il tuo meccanismo preferito.

    Nota

    Un modo per rendere la directory greengrass-root di sola lettura è montare la directory come di sola lettura. Tuttavia, per applicare gli aggiornamenti over-the-air (OTA) al software AWS IoT Greengrass Core in una directory montata, la directory deve prima essere smontata e poi rimontata dopo l'aggiornamento. Puoi aggiungere queste operazioni umount e mount agli script ota_pre_update e ota_post_update. Per ulteriori informazioni sugli aggiornamenti OTA, consulta Agente di aggiornamento OTA di Greengrass e Rigenerazione gestita con aggiornamenti OTA.

  3. Avvia il daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start

    Se le autorizzazioni della fase 1 non sono state impostate correttamente, il daemon non verrà avviato.

Configurazione delle impostazioni MQTT

Nell'AWS IoT Greengrassambiente, i dispositivi client locali, le funzioni Lambda, i connettori e i componenti di sistema possono comunicare tra loro e con. AWS IoT Core Tutta la comunicazione passa attraverso il core, che gestisce le sottoscrizioni che autorizzano la comunicazione MQTT tra entità.

Per informazioni sulle impostazioni MQTT che puoi configurare per AWS IoT Greengrass, consulta le sezioni seguenti:

Nota

OPC-UA è uno standard di scambio di informazioni per la comunicazione industriale. Per implementare il supporto per OPC-UA sul core Greengrass, puoi utilizzare il connettore IoT. SiteWise Il connettore invia i dati dei dispositivi industriali dai server OPC-UA alle proprietà degli asset in AWS IoT SiteWise.

Messaggio di qualità del servizio

AWS IoT Greengrass supporta i livelli 0 e 1 della qualità del servizio (QoS), a seconda della configurazione e della destinazione e direzione della comunicazione. Il core Greengrass agisce come un client per la comunicazione con AWS IoT Core e come un broker di messaggi per la comunicazione sulla rete locale.

Il core come client e broker messaggi locale.

Per ulteriori informazioni su MQTT e QoS, vedere Guida introduttiva sul sito Web MQTT.

Comunicazione con Cloud AWS
  • I messaggi in uscita utilizzano QoS 1

    Il core invia messaggi destinati Cloud AWS agli obiettivi utilizzando QoS 1. AWS IoT Greengrassutilizza una coda di messaggi MQTT per elaborare questi messaggi. Se il recapito del messaggio non è confermato daAWS IoT, il messaggio viene spoolerato per essere riprovato in un secondo momento. Il messaggio non può essere riprovato se la coda è piena. La conferma del recapito del messaggio può aiutare a ridurre al minimo la perdita di dati dovuta alla connettività intermittente.

    Poiché i messaggi in uscita AWS IoT utilizzano QoS 1, la velocità massima con cui il core Greengrass può inviare messaggi dipende dalla latenza tra il core e. AWS IoT Ogni volta che il core invia un messaggio, attende che lo AWS IoT confermi prima di inviare il messaggio successivo. Ad esempio, se il tempo di andata e ritorno tra il core e il suo Regione AWS è di 50 millisecondi, il core può inviare fino a 20 messaggi al secondo. Considerate questo comportamento quando scegliete il punto di connessione del coreRegione AWS. Per importare dati IoT ad alto volume suCloud AWS, puoi utilizzare stream manager.

    Per ulteriori informazioni sulla coda di messaggi MQTT, incluso come configurare una cache di archiviazione locale in grado di rendere persistenti i messaggi destinati alle destinazioni, vedere. Cloud AWS Coda di messaggi MQTT per destinazioni sul cloud

  • I messaggi in entrata utilizzano QoS 0 (predefinito) o QoS 1

    Per impostazione predefinita, il core si iscrive con QoS 0 ai messaggi Cloud AWS provenienti dalle sorgenti. Se si abilitano sessioni persistenti, il core effettua la sottoscrizione con QoS 1. Ciò consente di ridurre al minimo la perdita di dati causata dall'instabilità della connessione. Per gestire il QoS per queste sottoscrizioni, configura le impostazioni di persistenza sul componente di sistema di spooler locale.

    Per ulteriori informazioni, incluso come consentire al core di stabilire una sessione persistente con Cloud AWS obiettivi, vedere. Sessioni persistenti MQTT con AWS IoT Core

Comunicazione con target locali

Tutte le comunicazioni locali utilizzano QoS 0. Il core tenta di inviare un messaggio a una destinazione locale, che può essere una funzione Greengrass Lambda, un connettore o un dispositivo client. Il core non archivia i messaggi né conferma la consegna. I messaggi possono essere rimossi ovunque tra i componenti.

Nota

Sebbene la comunicazione diretta tra le funzioni Lambda non utilizzi la messaggistica MQTT, il comportamento è lo stesso.

Coda di messaggi MQTT per destinazioni sul cloud

I messaggi MQTT destinati alle destinazioni vengono messi in coda in Cloud AWS attesa dell'elaborazione. I messaggi in coda vengono elaborati in ordine FIFO (first-in-first-out). Dopo che è stato elaborato e pubblicato in AWS IoT Core, il messaggio viene rimosso dalla coda.

Per impostazione predefinita, il core Greengrass archivia in memoria i messaggi non elaborati destinati alle destinazioni. Cloud AWS Puoi configurare il core per archiviare invece i messaggi non elaborati in una cache di storage locale. A differenza dello storage in memoria, la cache dello storage locale possiede capacità di persistenza anche in caso di riavvio core (ad esempio, dopo una distribuzione di gruppo o un riavvio del dispositivo), in modo che AWS IoT Greengrass possa continuare a elaborare i messaggi. È anche possibile configurare le dimensioni dello storage.

avvertimento

Il core Greengrass potrebbe mettere in coda messaggi MQTT duplicati quando perde la connessione, perché tenta nuovamente un'operazione di pubblicazione prima che il client MQTT rilevi che è offline. Per evitare la duplicazione dei messaggi MQTT per gli obiettivi cloud, configura il valore del core a meno della metà del suo keepAlive valore. mqttOperationTimeout Per ulteriori informazioni, consulta File di configurazione di AWS IoT Greengrass Core.

AWS IoT Greengrassutilizza il componente del sistema spooler (la funzione GGCloudSpooler Lambda) per gestire la coda dei messaggi. Puoi utilizzare le seguenti variabili di ambiente GGCloudSpooler per configurare le impostazioni di storage.

  • GG_CONFIG_STORAGE_TYPE. La posizione della coda di messaggi. I seguenti valori sono validi:

    • FileSystem. Archivia i messaggi non elaborati nella cache di archiviazione locale sul disco del dispositivo principale fisico. In caso di riavvio core, i messaggi in coda vengono conservati per l'elaborazione. I messaggi vengono rimossi dopo essere stati elaborati.

    • Memory (impostazione predefinita). Archivia i messaggi non elaborati in memoria. In caso di riavvio del core, i messaggi in coda vengono persi.

      Questa opzione è ottimizzata per dispositivi con funzionalità hardware limitate. Quando si utilizza questa configurazione, consigliamo di distribuire gruppi o riavviare il dispositivo nel momento in cui l'interruzione di servizio non crea particolari problemi.

  • GG_CONFIG_MAX_SIZE_BYTES. Le dimensioni dello storage, in byte. Questo valore può essere un qualsiasi numero intero non negativo maggiore o uguale a 262144 (256 KB); dimensioni minori impediscono l'avvio del software AWS IoT Greengrass Core. Le dimensioni predefinite sono di 2,5 MB. Quando viene raggiunto il limite di dimensioni, i messaggi in coda più vecchi vengono sostituiti da nuovi messaggi.

Nota

Questa funzionalità è disponibile per AWS IoT Greengrass Core v1.6 e versioni successive. Le versioni precedenti utilizzavano l'archiviazione in memoria con una dimensione della coda di 2,5 MB. Non è possibile configurare le impostazioni di storage per le versioni precedenti.

Come aggiungere i messaggi alla cache nello storage locale

Puoi configurare AWS IoT Greengrass affinché memorizzi i messaggi nella cache del file system in modo che vengano mantenuti tra i riavvii del core. A tale scopo, distribuisci una versione di definizione della funzione in cui la funzione GGCloudSpooler imposta il tipo di storage su FileSystem. È necessario utilizzare l'API AWS IoT Greengrass per configurare la cache di storage locale. Questa operazione può essere eseguita nella console.

La procedura seguente utilizza il comando create-function-definition-versionCLI per configurare lo spooler per salvare i messaggi in coda nel file system. Configura anche una coda di 2,6 MB.

  1. Ottieni gli ID del gruppo di destinazione Greengrass e la versione dei gruppi. Questa procedura presuppone che si tratti del gruppo e della versione del gruppo più recenti. La seguente query restituisce il gruppo creato più di recente.

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    In alternativa, puoi eseguire query in base al nome. I nomi dei gruppi non devono essere univoci, pertanto potrebbero essere restituiti più gruppi.

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    Nota

    Puoi trovare questi valori anche nella AWS IoT console. L'ID gruppo viene visualizzato nella pagina Settings (Impostazioni) del gruppo. Gli ID delle versioni del gruppo vengono visualizzati nella scheda Distribuzioni del gruppo.

  2. Copiare i valori Id e LatestVersion dal gruppo target nell'output.

  3. Ottieni la versione gruppo più recente.

    • Sostituisci group-id con l'Id copiato.

    • Sostituisci l’latest-group-version-id con l’LatestVersion copiato.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. Dall'oggetto Definition dell'output, copiare CoreDefinitionVersionArn e gli ARN di tutti gli altri componenti del gruppo tranne FunctionDefinitionVersionArn. Si usano questi valori quando si crea una nuova versione gruppo.

  5. Da FunctionDefinitionVersionArn nell'output, copia l'ID della definizione della funzione. L'ID è il GUID che segue il segmento functions nell'ARN, come mostrato nell'esempio seguente.

    arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/bcfc6b49-beb0-4396-b703-6dEXAMPLEcu5/versions/0f7337b4-922b-45c5-856f-1aEXAMPLEsf6
    Nota

    In alternativa, è possibile creare una definizione di funzione eseguendo il create-function-definitioncomando e quindi copiando l'ID dall'output.

  6. Aggiungi una versione di definizione della funzione alla definizione della funzione.

    • function-definition-idSostituiscilo con Id quello che hai copiato per la definizione della funzione.

    • Sostituire arbitrary-function-idcon un nome per la funzione, ad esempiospooler-function.

    • Aggiungi all'array tutte le funzioni Lambda che desideri includere in questa versione. functions È possibile utilizzare il get-function-definition-versioncomando per ottenere le funzioni Greengrass Lambda da una versione di definizione di funzione esistente.

    avvertimento

    Assicurati di specificare un valore per GG_CONFIG_MAX_SIZE_BYTES che sia maggiore o uguale a 262144. Una dimensione minore impedisce l'avvio del software AWS IoT Greengrass Core.

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[{"FunctionArn": "arn:aws:lambda:::function:GGCloudSpooler:1","FunctionConfiguration": {"Environment": {"Variables":{"GG_CONFIG_MAX_SIZE_BYTES":"2621440","GG_CONFIG_STORAGE_TYPE":"FileSystem"}},"Executable": "spooler","MemorySize": 32768,"Pinned": true,"Timeout": 3},"Id": "arbitrary-function-id"}]'
    Nota

    Se in precedenza hai impostato la variabile di ambiente GG_CONFIG_SUBSCRIPTION_QUALITY per supportare sessioni persistenti con AWS IoT Core, includila in questa istanza di funzione.

  7. Copia l'Arn della definizione di funzione dall'output.

  8. Crea una versione di gruppo che contenga la funzione Lambda del sistema.

    • Sostituisci group-id con l'Id per il gruppo.

    • Sostituiscila core-definition-version-arncon CoreDefinitionVersionArn quella che hai copiato dall'ultima versione del gruppo.

    • Sostituiscilo function-definition-version-arncon Arn quello che hai copiato per la nuova versione della definizione di funzione.

    • Sostituisci gli ARN per altri componenti del gruppo (ad esempio SubscriptionDefinitionVersionArn o DeviceDefinitionVersionArn) copiati dalla versione gruppo più recente.

    • Rimuovi eventuali parametri inutilizzati. Ad esempio, rimuovi --resource-definition-version-arn se la versione gruppo non contiene risorse.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --device-definition-version-arn device-definition-version-arn \ --logger-definition-version-arn logger-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  9. Copia il valore Version dall'output. Questo è l'ID della nuova versione gruppo.

  10. Distribuisci il gruppo con la nuova versione del gruppo.

    • Sostituisci group-id con l'Id copiato per il gruppo.

    • Sostituisci group-version-idcon Version quello che hai copiato per la nuova versione del gruppo.

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment

Per aggiornare le impostazioni di storage, puoi utilizzare l'API AWS IoT Greengrass per creare una nuova versione di definizione della funzione che contiene la funzione GGCloudSpooler con la configurazione aggiornata. Quindi aggiungi la versione della definizione della funzione a una nuova versione del gruppo (insieme agli altri componenti del gruppo) e distribuisci la versione del gruppo. Se desideri ripristinare la configurazione predefinita, puoi distribuire una versione di definizione della funzione che non include la funzione GGCloudSpooler.

Questa funzione Lambda di sistema non è visibile nella console. Tuttavia, dopo che la funzione è stata aggiunta all'ultima versione del gruppo, è inclusa nelle distribuzioni eseguite dalla console, a meno che non usi l'API per sostituirla o rimuoverla.

Sessioni persistenti MQTT con AWS IoT Core

Questa caratteristica è disponibile per AWS IoT Greengrass Core v1.10 e versioni successive.

Il core Greengrass può stabilire una sessione persistente con il broker messaggi AWS IoT. Una sessione persistente è una connessione continua che consente al core di ricevere messaggi inviati mentre è offline. Il core è il client nella connessione.

In una sessione persistente, il broker messaggi AWS IoT salva tutte le sottoscrizioni effettuate dal core durante la connessione. Se il core si disconnette, il broker di AWS IoT messaggi archivia i messaggi nuovi e non riconosciuti pubblicati come QoS 1 e destinati a destinazioni locali, come le funzioni Lambda e i dispositivi client. Quando il core si ricollega, la sessione persistente viene ripristinata e il broker di messaggi AWS IoT invia i messaggi archiviati al core a una velocità massima di 10 messaggi al secondo. Le sessioni persistenti hanno un periodo di scadenza predefinito di 1 ora, che inizia quando il broker messaggi rileva che il core si disconnette. Per ulteriori informazioni, consulta Sessioni persistenti MQTT nella Developer Guide. AWS IoT

AWS IoT Greengrassutilizza il componente del sistema spooler (la funzione GGCloudSpooler Lambda) per creare sottoscrizioni che hanno come origine. AWS IoT Puoi utilizzare la seguente variabile di ambiente GGCloudSpooler per configurare sessioni persistenti.

  • GG_CONFIG_SUBSCRIPTION_QUALITY. La qualità delle sottoscrizioni che hanno come origine AWS IoT. I seguenti valori sono validi:

    • AtMostOnce (impostazione predefinita). Disabilita sessioni persistenti. Le sottoscrizione utilizzano QoS 0.

    • AtLeastOncePersistent. Abilita sessioni persistenti. Imposta il flag cleanSession su 0 nei messaggi CONNECT ed effettua la sottoscrizione con QoS 1.

      I messaggi pubblicati con QoS 1 ricevuti dal core raggiungono sicuramente la coda di lavoro in memoria del daemon Greengrass. Il core riconosce il messaggio dopo che è stato aggiunto alla coda. La comunicazione successiva dalla coda alla destinazione locale (ad esempio, la funzione, il connettore o il dispositivo Greengrass Lambda) viene inviata come QoS 0. AWS IoT Greengrassnon garantisce la consegna a destinazioni locali.

      Nota

      È possibile utilizzare la proprietà di configurazione maxWorkItemCount per controllare la dimensione della coda degli elementi di lavoro. Ad esempio, puoi aumentare le dimensioni della coda se il carico di lavoro richiede un intenso traffico MQTT.

      Quando sono abilitate sessioni persistenti, il core apre almeno una connessione aggiuntiva per lo scambio di messaggi MQTT con AWS IoT. Per ulteriori informazioni, consulta ID client per connessioni MQTT con AWS IoT.

Per configurare sessioni persistenti MQTT

Puoi configurare AWS IoT Greengrass per utilizzare sessioni persistenti con AWS IoT Core. A tale scopo, distribuisci una versione di definizione della funzione in cui la funzione GGCloudSpooler imposta la qualità della sottoscrizione su AtLeastOncePersistent. Questa impostazione si applica a tutte le sottoscrizioni che hanno AWS IoT Core (cloud) come origine. Utilizza l'API di AWS IoT Greengrass per configurare sessioni persistenti. Questa operazione può essere eseguita nella console.

La procedura seguente utilizza il comando create-function-definition-versionCLI per configurare lo spooler per l'utilizzo di sessioni persistenti. In questa procedura si presuppone che si stia aggiornando la configurazione dell'ultima versione di un gruppo esistente.

  1. Ottieni gli ID del gruppo di destinazione Greengrass e la versione dei gruppi. Questa procedura presuppone che si tratti della versione più recente del gruppo e del gruppo. La seguente query restituisce il gruppo creato più di recente.

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    In alternativa, puoi eseguire query in base al nome. I nomi dei gruppi non devono essere univoci, pertanto potrebbero essere restituiti più gruppi.

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    Nota

    Puoi trovare questi valori anche nella AWS IoT console. L'ID gruppo viene visualizzato nella pagina Settings (Impostazioni) del gruppo. Gli ID delle versioni del gruppo vengono visualizzati nella scheda Distribuzioni del gruppo.

  2. Copiare i valori Id e LatestVersion dal gruppo target nell'output.

  3. Ottieni la versione gruppo più recente.

    • Sostituisci group-id con l'Id copiato.

    • Sostituisci l’latest-group-version-id con l’LatestVersion copiato.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. Dall'oggetto Definition dell'output, copiare CoreDefinitionVersionArn e gli ARN di tutti gli altri componenti del gruppo tranne FunctionDefinitionVersionArn. Si usano questi valori quando si crea una nuova versione gruppo.

  5. Da FunctionDefinitionVersionArn nell'output, copia l'ID della definizione della funzione. L'ID è il GUID che segue il segmento functions nell'ARN, come mostrato nell'esempio seguente.

    arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/bcfc6b49-beb0-4396-b703-6dEXAMPLEcu5/versions/0f7337b4-922b-45c5-856f-1aEXAMPLEsf6
    Nota

    In alternativa, è possibile creare una definizione di funzione eseguendo il create-function-definitioncomando e quindi copiando l'ID dall'output.

  6. Aggiungi una versione di definizione della funzione alla definizione della funzione.

    • function-definition-idSostituiscilo con Id quello che hai copiato per la definizione della funzione.

    • Sostituire arbitrary-function-idcon un nome per la funzione, ad esempiospooler-function.

    • Aggiungi all'array tutte le funzioni Lambda che desideri includere in questa versione. functions È possibile utilizzare il get-function-definition-versioncomando per ottenere le funzioni Greengrass Lambda da una versione di definizione di funzione esistente.

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[{"FunctionArn": "arn:aws:lambda:::function:GGCloudSpooler:1","FunctionConfiguration": {"Environment": {"Variables":{"GG_CONFIG_SUBSCRIPTION_QUALITY":"AtLeastOncePersistent"}},"Executable": "spooler","MemorySize": 32768,"Pinned": true,"Timeout": 3},"Id": "arbitrary-function-id"}]'
    Nota

    Se in precedenza hai impostano le variabili di ambiente GG_CONFIG_STORAGE_TYPE o GG_CONFIG_MAX_SIZE_BYTESper definire le impostazioni di storage, includerle in questa istanza di funzione.

  7. Copia l'Arn della definizione di funzione dall'output.

  8. Crea una versione di gruppo che contenga la funzione Lambda del sistema.

    • Sostituisci group-id con l'Id per il gruppo.

    • Sostituiscila core-definition-version-arncon CoreDefinitionVersionArn quella che hai copiato dall'ultima versione del gruppo.

    • Sostituiscilo function-definition-version-arncon Arn quello che hai copiato per la nuova versione della definizione di funzione.

    • Sostituisci gli ARN per altri componenti del gruppo (ad esempio SubscriptionDefinitionVersionArn o DeviceDefinitionVersionArn) copiati dalla versione gruppo più recente.

    • Rimuovi eventuali parametri inutilizzati. Ad esempio, rimuovi --resource-definition-version-arn se la versione gruppo non contiene risorse.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --device-definition-version-arn device-definition-version-arn \ --logger-definition-version-arn logger-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  9. Copia il valore Version dall'output. Questo è l'ID della nuova versione gruppo.

  10. Distribuisci il gruppo con la nuova versione del gruppo.

    • Sostituisci group-id con l'Id copiato per il gruppo.

    • Sostituisci group-version-idcon Version quello che hai copiato per la nuova versione del gruppo.

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment
  11. (Facoltativo) Aumentate la proprietà maxWorkItemCount nel file di configurazione principale. Questo consente al core di gestire l'aumento del traffico MQTT e la comunicazione con i target locali.

Per aggiornare il core con queste modifiche di configurazione, utilizza l'API di AWS IoT Greengrass per creare una nuova versione di definizione della funzione che contiene la funzione GGCloudSpooler con la configurazione aggiornata. Quindi aggiungi la versione della definizione della funzione a una nuova versione del gruppo (insieme agli altri componenti del gruppo) e distribuisci la versione del gruppo. Se desideri ripristinare la configurazione predefinita, puoi creare una versione di definizione della funzione che non include la funzione GGCloudSpooler.

Questa funzione Lambda di sistema non è visibile nella console. Tuttavia, dopo che la funzione è stata aggiunta all'ultima versione del gruppo, è inclusa nelle distribuzioni eseguite dalla console, a meno che non usi l'API per sostituirla o rimuoverla.

ID client per connessioni MQTT con AWS IoT

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

Il core Greengrass apre le connessioni MQTT con AWS IoT Core per operazioni quali la sincronizzazione e la gestione dei certificati shadow. Per queste connessioni, il core genera ID client prevedibili in base al nome. Gli ID client prevedibili possono essere utilizzati con funzionalità di monitoraggio, controllo e determinazione dei prezzi, inclusi AWS IoT Device Defender gli eventi del ciclo di vita. AWS IoT Puoi anche creare una logica intorno agli ID clienti prevedibili (ad esempio, modelli di policy di sottoscrizione basati su attributi dei certificati).

GGC v1.9 and later

Due componenti di sistema Greengrass aprono le connessioni MQTT con AWS IoT Core. Questi componenti utilizzano i seguenti modelli per generare l'ID client per le connessioni.

Operazione Modello ID client
Distribuzioni

core-thing-name

Esempio: MyCoreThing

Utilizza questo ID client per connetterti, scollegarti, sottoscrivere e annullare la sottoscrizione delle notifiche di eventi del ciclo di vita.

Sottoscrizioni

core-thing-name-cn

Esempio: MyCoreThing-c01

nè un numero intero che inizia da 00 e aumenta con ogni nuova connessione fino a un numero massimo di 250. Il numero di connessioni è determinato dal numero di dispositivi con cui sincronizzano il proprio stato ombra AWS IoT Core (massimo 2.500 per gruppo) e dal numero di abbonamenti che hanno cloud come origine nel gruppo (massimo 10.000 per gruppo).

Il componente del sistema spooler si connette AWS IoT Core per scambiare messaggi per abbonamenti con una sorgente o una destinazione cloud. Lo spooler, inoltre, agisce da proxy per lo scambio di messaggi tra AWS IoT Core e il servizio shadow locale e il gestore certificati del dispositivo.

Per calcolare il numero di connessioni MQTT per gruppo, utilizzate la seguente formula:

number of MQTT connections per group = number of connections for Deployment Agent + number of connections for Subscriptions

Dove,

  • numero di connessioni per Deployment Agent = 1.

  • numero di connessioni per gli abbonamenti =(2 subscriptions for supporting certificate generation + number of MQTT topics in AWS IoT Core + number of device shadows synced) / 50.

    • Dove, 50 = il numero massimo di abbonamenti che è AWS IoT Core possibile supportare per connessione.

Nota

Se abiliti sessioni persistenti per la sottoscrizione con AWS IoT Core, il core apre almeno una connessione aggiuntiva da utilizzare in una sessione persistente. I componenti di sistema non supportano sessioni persistenti, quindi non possono condividere tale connessione.

Per ridurre il numero di connessioni MQTT e contribuire a ridurre i costi, puoi utilizzare le funzioni Lambda locali per aggregare i dati sull'edge. Quindi invii i dati aggregati a. Cloud AWS Di conseguenza, si utilizzano meno argomenti MQTT in. AWS IoT Core Per ulteriori informazioni, consulta la sezione Prezzi di AWS IoT Greengrass.

GGC v1.8

Alcuni componenti di sistema Greengrass aprono le connessioni MQTT con AWS IoT Core. Questi componenti utilizzano i seguenti modelli per generare l'ID client per le connessioni.

Operazione Modello ID client
Distribuzioni

core-thing-name

Esempio: MyCoreThing

Utilizza questo ID client per connetterti, scollegarti, sottoscrivere e annullare la sottoscrizione delle notifiche di eventi del ciclo di vita.

Scambio di messaggio MQTT con AWS IoT Core

core-thing-name-spr

Esempio: MyCoreThing-spr

Sincronizzazione shadow

core-thing-name-snn

Esempio: MyCoreThing-s01

nn è un intero che inizia da 00 e incrementa a ogni nuova connessione fino a un massimo di 03. Il numero di connessioni dipende dal numero di dispositivi (massimo 200 dispositivi per gruppo) che sincronizzano lo stato shadow con AWS IoT Core (massimo 50 sottoscrizioni per connessione).

Gestione dei certificati del dispositivo

core-thing-name-dcm

Esempio: MyCoreThing-dcm

Nota

Gli ID client duplicati utilizzati nelle connessioni simultanee possono causare un ciclo infinito di disconnessione-connessione. Ciò può accadere se un altro dispositivo è hardcoded per utilizzare il nome del dispositivo core come ID client nelle connessioni. Per ulteriori informazioni, consulta questa fase della risoluzione dei problemi.

I dispositivi Greengrass sono anche completamente integrati con il servizio di indicizzazione del parco istanze di AWS IoT Device Management. In questo modo è possibile indicizzare e cercare dispositivi basati su attributi dei dispositivi, stato ombra e stato della connessione nel cloud. Ad esempio, i dispositivi Greengrass stabiliscono almeno una connessione che utilizza il nome dell'oggetto come ID del client, perciò è possibile utilizzare l'indicizzazione della connettività del dispositivo per rilevare quali dispositivi Greengrass sono attualmente collegati a AWS IoT Core o scollegati da esso. Per ulteriori informazioni, consulta il servizio di indicizzazione del parco veicoli nella Developer Guide. AWS IoT

Configurazione della porta MQTT per la messaggistica locale

Questa funzionalità richiede AWS IoT Greengrass Core v1.10 o versione successiva.

Il core Greengrass funge da broker di messaggi locale per la messaggistica MQTT tra funzioni Lambda locali, connettori e dispositivi client. Per impostazione predefinita, il core utilizza la porta 8883 per il traffico MQTT sulla rete locale. Potrebbe essere opportuno modificare la porta per evitare un conflitto con altro software in esecuzione sulla porta 8883.

Per configurare il numero di porta utilizzato dal core per il traffico MQTT locale
  1. Eseguite il seguente comando per arrestare il demone Greengrass:

    cd /greengrass-root/ggc/core/ sudo ./greengrassd stop
  2. Apri greengrass-root/config/config.json per la modifica come utente su.

  3. Nell'oggetto coreThing, aggiungere la proprietà ggMqttPort e impostare il valore sul numero di porta che si desidera utilizzare. I valori validi sono compresi tra 1024 e 65535. Nell'esempio seguente il numero di porta viene impostato su 9000.

    { "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "12345abcde.cert.pem", "keyPath" : "12345abcde.private.key", "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name", "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com", "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com", "ggMqttPort" : 9000, "keepAlive" : 600 }, ... }
  4. Avvia il daemon.

    cd /greengrass-root/ggc/core/ sudo ./greengrassd start
  5. Se il rilevamento IP automatico è abilitato per il core, la configurazione è completata.

    Se il rilevamento IP automatico non è abilitato, è necessario aggiornare le informazioni di connettività per il core. Ciò consente ai dispositivi client di ricevere il numero di porta corretto durante le operazioni di rilevamento per acquisire le informazioni di connettività di base. È possibile utilizzare la AWS IoT console o l'AWS IoT GreengrassAPI per aggiornare le informazioni di connettività di base. Per questa procedura, aggiornare solo il numero di porta. L'indirizzo IP locale per il core non cambia.

    Per aggiornare le informazioni di connettività per il core (console)
    1. Nella pagina di configurazione del gruppo, scegli il core Greengrass.

    2. Nella pagina dei dettagli principali, scegli la scheda Endpoints del broker MQTT.

    3. Scegli Gestisci endpoint, quindi scegli Aggiungi endpoint

    4. Inserisci il tuo attuale indirizzo IP locale e il nuovo numero di porta. Nell'esempio seguente il numero di porta viene impostato su 9000 per l'indirizzo IP 192.168.1.8.

    5. Rimuovere l'endpoint obsoleto e quindi scegliere Update (Aggiorna)

    Per aggiornare le informazioni di connettività per il core (API)
    • Usa l'azione UpdateConnectivityInfo. Nell'esempio seguente viene utilizzato update-connectivity-info nella AWS CLI per impostare il numero di porta 9000 per l'indirizzo IP 192.168.1.8.

      aws greengrass update-connectivity-info \ --thing-name "MyGroup_Core" \ --connectivity-info "[{\"Metadata\":\"\",\"PortNumber\":9000,\"HostAddress\":\"192.168.1.8\",\"Id\":\"localIP_192.168.1.8\"},{\"Metadata\":\"\",\"PortNumber\":8883,\"HostAddress\":\"127.0.0.1\",\"Id\":\"localhost_127.0.0.1_0\"}]"
    Nota

    Puoi inoltre configurare la porta utilizzata dal core per la messaggistica MQTT con AWS IoT Core. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.

Timeout per le operazioni di pubblicazione, sottoscrizione e annullamento dell'iscrizione nelle connessioni MQTT con Cloud AWS

Questa caratteristica è disponibile in AWS IoT Greengrass versione 1.10.2 o successiva.

È possibile configurare la quantità di tempo (in secondi) per consentire al core Greengrass di completare un'operazione di pubblicazione, sottoscrizione o annullamento della sottoscrizione nelle connessioni MQTT a AWS IoT Core. È possibile modificare questa impostazione se le operazioni vanno in timeout a causa di vincoli di larghezza di banda o latenza elevata. Per configurare questa impostazione nel file config.json aggiungere o modificare la proprietà mqttOperationTimeout nell'oggetto coreThing. Per esempio:

{ "coreThing": { "mqttOperationTimeout": 10, "caPath": "root-ca.pem", "certPath": "hash.cert.pem", "keyPath": "hash.private.key", ... }, ... }

Il timeout predefinito è 5 secondi. Il timeout minimo è di 5 secondi.

Attivazione del rilevamento automatico dell'IP

È possibile configurare AWS IoT Greengrass per consentire ai dispositivi client di un gruppo Greengrass di scoprire automaticamente il core Greengrass. Se abilitato, il core controlla le modifiche ai suoi indirizzi IP. Se un indirizzo cambia, il core pubblica un elenco aggiornato di indirizzi. Questi indirizzi sono resi disponibili ai dispositivi client che fanno parte dello stesso gruppo Greengrass del core.

Nota

La AWS IoT politica per i dispositivi client deve concedere l'greengrass:Discoverautorizzazione per consentire ai dispositivi di recuperare le informazioni di connettività per il core. Per ulteriori informazioni sull’istruzione di policy, consulta Rilevamento.

Per abilitare questa funzionalità dalla AWS IoT Greengrass console, scegli Rilevamento automatico quando distribuisci il tuo gruppo Greengrass per la prima volta. Puoi anche abilitare o disabilitare questa funzionalità nella pagina di configurazione del gruppo scegliendo la scheda Funzioni Lambda e selezionando il rilevatore IP. Il rilevamento automatico degli IP è abilitato se è selezionata l'opzione Rileva automaticamente e sostituisci gli endpoint del broker MQTT.

Per gestire il rilevamento automatico con l'AWS IoT GreengrassAPI, è necessario configurare la funzione Lambda IPDetector del sistema. La procedura seguente mostra come utilizzare il comando create-function-definition-versionCLI per configurare il rilevamento automatico del core Greengrass.

  1. Ottieni gli ID del gruppo di destinazione Greengrass e la versione dei gruppi. Questa procedura presuppone che si tratti della versione più recente del gruppo e del gruppo. La seguente query restituisce il gruppo creato più di recente.

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    In alternativa, puoi eseguire query in base al nome. I nomi dei gruppi non devono essere univoci, pertanto potrebbero essere restituiti più gruppi.

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    Nota

    Puoi trovare questi valori anche nella AWS IoT console. L'ID gruppo viene visualizzato nella pagina Settings (Impostazioni) del gruppo. Gli ID delle versioni del gruppo vengono visualizzati nella scheda Distribuzioni del gruppo.

  2. Copiare i valori Id e LatestVersion dal gruppo target nell'output.

  3. Ottieni la versione gruppo più recente.

    • Sostituisci group-id con l'Id copiato.

    • Sostituisci l’latest-group-version-id con l’LatestVersion copiato.

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. Dall'oggetto Definition dell'output, copiare CoreDefinitionVersionArn e gli ARN di tutti gli altri componenti del gruppo tranne FunctionDefinitionVersionArn. Si usano questi valori quando si crea una nuova versione gruppo.

  5. Da FunctionDefinitionVersionArn nell'output, copia l'ID della definizione della funzione e la versione della definizione della funzione:

    arn:aws:greengrass:region:account-id:/greengrass/groups/function-definition-id/versions/function-definition-version-id
    Nota

    È anche possibile creare una definizione di funzione eseguendo il comando create-function-definition e quindi copiare l'ID dall'output.

  6. Usa il comando get-function-definition-version per ottenere lo stato della definizione corrente. Usa quelli function-definition-idche hai copiato per la definizione della funzione. Ad esempio, 4d941bc7-92a1-4f45-8d64-EXAMPLEf76c3.

    aws greengrass get-function-definition-version --function-definition-id function-definition-id --function-definition-version-id function-definition-version-id

    Prendi nota delle configurazioni della funzione elencate. Dovrai includerle al momento della creazione di una nuova versione della definizione della funzione per evitare di perdere le impostazioni della definizione corrente.

  7. Aggiungi una versione di definizione della funzione alla definizione della funzione.

    • Sostituisci function-definition-idcon quello Id che hai copiato per la definizione della funzione. Ad esempio, 4d941bc7-92a1-4f45-8d64-EXAMPLEf76c3.

    • Sostituire arbitrary-function-idcon un nome per la funzione, ad esempioauto-detection-function.

    • Aggiungi all'functionsarray tutte le funzioni Lambda che desideri includere in questa versione, come quelle elencate nel passaggio precedente.

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[{"FunctionArn":"arn:aws:lambda:::function:GGIPDetector:1","Id":"arbitrary-function-id","FunctionConfiguration":{"Pinned":true,"MemorySize":32768,"Timeout":3}}]'\ --region us-west-2
  8. Copia l'Arn della definizione di funzione dall'output.

  9. Crea una versione di gruppo che contenga la funzione Lambda del sistema.

    • Sostituisci group-id con l'Id per il gruppo.

    • Sostituiscila core-definition-version-arncon CoreDefinitionVersionArn quella che hai copiato dall'ultima versione del gruppo.

    • Sostituiscilo function-definition-version-arncon Arn quello che hai copiato per la nuova versione della definizione di funzione.

    • Sostituisci gli ARN per altri componenti del gruppo (ad esempio SubscriptionDefinitionVersionArn o DeviceDefinitionVersionArn) copiati dalla versione gruppo più recente.

    • Rimuovi eventuali parametri inutilizzati. Ad esempio, rimuovi --resource-definition-version-arn se la versione gruppo non contiene risorse.

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --device-definition-version-arn device-definition-version-arn \ --logger-definition-version-arn logger-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  10. Copia il valore Version dall'output. Questo è l'ID della nuova versione gruppo.

  11. Distribuisci il gruppo con la nuova versione del gruppo.

    • Sostituisci group-id con l'Id copiato per il gruppo.

    • Sostituisci group-version-idcon Version quello che hai copiato per la nuova versione del gruppo.

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment

Se vuoi immettere manualmente l'indirizzo IP del core Greengrass, puoi completare questo tutorial con un'altra definizione della funzione che non includa la funzione IPDetector. Ciò impedirà alla funzione di rilevamento di localizzare e inserire automaticamente l'indirizzo IP principale di Greengrass.

Questa funzione Lambda di sistema non è visibile nella console Lambda. Una volta aggiunta all'ultima versione del gruppo, la funzione viene inclusa nelle distribuzioni eseguite dalla console, a meno che non usi l'API per sostituirla o rimuoverla.

Configurazione del sistema di inizializzazione per avviare il daemon Greengrass

È buona norma impostare il sistema di inizializzazione in modo tale che il lancio del daemon Greengrass avvenga all'avvio, soprattutto in caso di gestione di grandi gruppi di dispositivi.

Nota

Se è stato utilizzato apt per installare il software AWS IoT Greengrass Core, è possibile utilizzare gli script systemd per abilitare l'avvio all'avvio. Per ulteriori informazioni, consulta Utilizzare gli script systemd per gestire il ciclo di vita del daemon Greengrass.

Esistono diversi tipi di sistema di inizializzazione, ad esempio initd, systemd e SystemV, i quali utilizzano parametri di configurazione simili. L'esempio seguente è un file di servizio per systemd. Il parametro Type è impostato su forking perché greengrassd (che viene utilizzato per avviare Greengrass) biforca il processo del daemon Greengrass, mentre il parametro Restart è impostato su on-failure per indirizzare systemd in modo tale da riavviare Greengrass se Greengrass presenta uno stato di errore.

Nota

Per vedere se il dispositivo utilizza systemd, eseguire lo script check_ggc_dependencies come descritto nel Modulo 1. Quindi, per utilizzare systemd fai in modo che il parametro useSystemd in config.json sia impostato su yes.

[Unit] Description=Greengrass Daemon [Service] Type=forking PIDFile=/var/run/greengrassd.pid Restart=on-failure ExecStart=/greengrass/ggc/core/greengrassd start ExecReload=/greengrass/ggc/core/greengrassd restart ExecStop=/greengrass/ggc/core/greengrassd stop [Install] WantedBy=multi-user.target

Consulta anche