Domande frequenti su AWS IoT Greengrass

Domande generali

AWS IoT Greengrass è un servizio cloud e runtime edge open source Internet of Things (IoT) che consente di generare, distribuire e gestire il software dei dispositivi. I clienti utilizzano AWS IoT Greengrass per le loro applicazioni IoT su milioni di dispositivi in case, fabbriche, veicoli e aziende. Puoi programmare i tuoi dispositivi in modo che agiscano in locale sui dati che generano, eseguano previsioni basate su modelli di machine learning, filtrino e aggreghino i dati dei dispositivi e trasmettano solo le informazioni necessarie al cloud.

AWS IoT Greengrass consente di creare rapidamente e facilmente software per dispositivi intelligenti. AWS IoT Greengrass abilita l'elaborazione locale, la messaggistica, la gestione dei dati e l'inferenza ML e offre componenti predefiniti per accelerare lo sviluppo dell'applicazione. AWS IoT Greengrass fornisce anche un modo sicuro per connettere senza problemi i tuoi dispositivi edge a qualsiasi servizio AWS e a servizi di terze parti.

Una volta completato lo sviluppo del software, AWS IoT Greengrass ti consente di gestire e utilizzare in remoto il software sui tuoi dispositivi sul campo senza bisogno di un aggiornamento del firmware. AWS IoT Greengrass aiuta a mantenere i tuoi dispositivi aggiornati e li rende più intelligenti nel tempo.

Fai clic qui per consultare la Guida alle operazioni di base di AWS IoT Greengrass. Puoi visualizzare l’elenco di dispositivi idonei nell'AWS IoT Partner Device Catalog.

Consulta la Tabella delle regioni AWS per le informazioni aggiornate relative alla disponibilità regionale di AWS IoT Greengrass.

AWS IoT Greengrass è un costituito da un servizio cloud e due distribuzioni software per dispositivi IoT: AWS IoT Greengrass Core, il Device SDK di AWS IoT e l'SDK AWS IoT Greengrass. Una volta installata la distribuzione del software sul tuo dispositivo, puoi aggiungere o rimuovere altri componenti e funzionalità e gestire le applicazioni del tuo dispositivo IoT utilizzando AWS IoT Greengrass.

Il grafico di seguito descrive i componenti principali. AWS IoT Greengrass funziona anche con FreeRTOS. Per ulteriori informazioni su AWS IoT Greengrass e FreeRTOS, consulta la sezione delle domande frequenti Collegamento di FreeRTOS e altri dispositivi ad AWS IoT Greengrass.
 

  Scopo Luogo di esecuzione
 
AWS IoT Greengrass Core Fornisce servizi locali (calcolo, messaggistica, stato, sicurezza) e comunica a livello locale con dispositivi che eseguono il Device SDK di AWS IoT Dispositivi a 64 bit basati su CPU (x86 o Arm) che eseguono un sistema operativo a uso generico, come Linux.
 
Kit Device SDK di AWS IoT Consente ai dispositivi di interagire a livello locale con AWS IoT Greengrass Core Quasi tutti i dispositivi che supportano C++, Node.js, Java o Python 2.7, 3.7 e 3.8.
SDK AWS IoT Greengrass* Consente l'interazione delle funzioni Lambda con i servizi locali all'interno di un AWS IoT Greengrass Core All'interno di una funzione Lambda distribuita in AWS IoT Greengrass Core

*Richiesto solo per AWS IoT Greengrass versione 1

Il software AWS IoT Greengrass Core funziona su un dispositivo IoT, un hub o un gateway per sincronizzarsi e interagire automaticamente con il cloud. AWS IoT Greengrass Core è progettato per funzionare su dispositivi con processori general purpose abbastanza potenti da eseguire un sistema operativo general purpose, come Linux. AWS IoT Greengrass richiede almeno 1 GHz di calcolo (Arm o x86), 96 MB* di RAM (runtime edge v2.1 o superiore), oltre a risorse aggiuntive per utilizzare il sistema operativo desiderato, la velocità effettiva dei messaggi e l’esecuzione di AWS Lambda, a seconda del caso d'uso. AWS IoT Greengrass Core può essere eseguito sui dispositivi che spaziano da un Raspberry Pi a un appliance a livello di server.

*Basato su uno studio AWS che ha utilizzato il seguente JDK: versione JDK utilizzata per i test: openjdk versione "1.8.0_275", OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01) e OpenJDK 64 bit Server VM (build 25.275-b01, modalità mista). L'utilizzo della memoria potrebbe essere maggiore utilizzando input diversi.

AWS IoT Greengrass supporta le funzioni Lambda scritte nei seguenti linguaggi:

  • Python 2.7, 3.7 e 3.8
  • Node v8.10 e v12.x
  • Java 8 o superiore
  • C
  • C++
  • Qualsiasi linguaggio supporti l'importazione delle librerie C 

È possibile distribuire in AWS IoT Greengrass Core qualsiasi funzione Lambda che utilizzi runtime Lambda Python 2.7, 3.7 o 3.8, Node v8.10 o v12.x o Java 8. Le funzioni Lambda distribuite in AWS IoT Greengrass devono essere raccolte in pacchetti con il kit SDK AWS IoT Greengrass Core. Inoltre, è possibile decidere di aggiungere il kit SDK AWS al pacchetto Lambda per facilitare l'interazione con i servizi AWS, ad esempio con Amazon DynamoDB.

Nota: alcuni servizi cloud su cui si basa Lambda (ad es. DynamoDB) non saranno disponibili per le funzioni Lambda quando AWS IoT Greengrass Core è in modalità offline; le chiamate API a questi servizi in tale modalità non andranno a buon fine. Inoltre, le funzioni Lambda dovranno utilizzare il corretto namespace per ciascun kit SDK AWS IoT Greengrass Core e kit SDK AWS, se vengono inclusi entrambi in uno stesso pacchetto.

Sì, è possibile eseguire un container Docker su un dispositivo AWS IoT Greengrass o eseguire AWS IoT Greengrass nell'ambiente di un container Docker.

Puoi distribuire, eseguire e gestire i container Docker con AWS IoT Greengrass. Puoi utilizzare qualsiasi strumento di terze parti per creare immagini Docker/Open Container Initiative (OCI) e le immagini Docker possono essere archiviate in registri del container Docker, come Amazon Elastic Container Registry (Amazon ECR), Docker Hub o Docker Trusted Registry (DTR) privati.

Puoi eseguire AWS IoT Greengrass in un container Docker configurando un gruppo AWS IoT Greengrass da eseguire senza containerizzazione Lambda. Per iniziare, puoi accedere al file Docker di AWS IoT Greengrass qui e trovare la documentazione relativa a come spostare l'immagine Docker di AWS IoT Greengrass qui da Amazon ECR. È inoltre possibile distribuire AWS IoT Greengrass come snap, ovvero un pacchetto software in container eseguibile su una varietà di distribuzioni Linux. Per iniziare, è possibile accedere allo snap di AWS IoT Greengrass qui e iniziare a usarlo qui.

Sì, eseguendo AWS IoT Greengrass senza alcuna containerizzazione Lambda a livello di gruppo in un container Docker, sarà possibile eseguire AWS IoT Greengrass su Mac o Windows. Ulteriori informazioni su questa funzionalità sono disponibili nella nostra documentazione.

Lo SLA di AWS IoT Greengrass per la gestione del cloud stabilisce che se AWS IoT Greengrass non riesce a raggiungere la percentuale di tempo di attività mensile di almeno il 99,9% per il servizio cloud di AWS IoT Greengrass, puoi avere diritto a un credito su una parte delle tariffe di servizio mensili.

Per dettagli completi sui termini e le condizioni del contratto sul livello di servizio (SLA) e per indicazioni sulla presentazione di una richiesta, consulta la pagina dei dettagli relativa allo SLA di AWS IoT Greengrass.

A cominciare da AWS IoT Greengrass 2.0, il runtime edge e diversi altri componenti sono open source e sono pubblicati in GitHub. Per maggiori dettagli, fai riferimento all’elenco di componenti open source.

Sì. Il runtime edge open source di AWS IoT Greengrass è distribuito con licenza Apache 2.0 e che pertanto può essere modificato per soddisfare le esigenze specifiche di ogni applicazione o progetto senza doverne richiedere il permesso ad AWS.

No. Non vi è alcuna differenza di prezzo tra versioni. Per maggiori informazioni, fai riferimento alla pagina dei prezzi.

Accesso alle risorse locali

Per "risorsa locale" si intendono bus e periferiche fisicamente presenti nell'host AWS IoT Greengrass o un volume di sistema di file nel sistema operativo dell'host AWS IoT Greengrass. Ad esempio, per comunicare con i dispositivi connessi tramite Modbus / CANbus, una funzione Lambda di AWS IoT Greengrass dovrebbe avere accesso alla porta seriale sul dispositivo. Una risorsa locale è definita a livello di ambito del gruppo AWS IoT Greengrass, e tutte le funzioni Lambda nel gruppo AWS IoT Greengrass possono utilizzare le risorse locali definite.

La risorsa locale AWS IoT Greengrass consente l'interazione delle tue funzioni Lambda con l'hardware, quali sensori e attuatori, in modo sicuro. Ad esempio, la tua funzione Lambda può leggere flussi video dalla videocamera sul dispositivo, oppure inviare un comando e controllo a GPIO.

Sicurezza

Una radice di attendibilità hardware fornisce un ambiente di esecuzione affidabile, protetto da manomissioni, in cui un generatore di numeri casuali può produrre chiavi private utilizzate per funzioni di crittografia. Questi elementi di sicurezza hardware sono immuni ad attacchi malware e sono fisicamente legati ad un dato dispositivo IoT, stabilendo cosi una forte radice di attendibilità su cui il software può essere distribuito in modo sicuro.

Innanzitutto bisogna eseguire il software AWS IoT Greengrass Core su un dispositivo edge con un elemento di sicurezza. Seguire le indicazioni del fornitore del software, generare una chiave privata sull’elemento di sicurezza. Quindi segui la nostra documentazione per aggiornare le impostazioni del file config.json per utilizzare la chiave privata dell'elemento di sicurezza.

Per l'elenco corrente di hardware integrati, consulta il Catalogo dei dispositivi dei Partner AWS.

I fornitori di elementi di sicurezza hanno configurato i propri elementi di sicurezza per utilizzare un insieme di API standard PKCS#11 per integrarsi con AWS IoT Greengrass. I fornitori utilizzano un insieme di strumenti di verifica per controllare che gli hardware siano configurati correttamente.

ML Inference

Puoi eseguire interferenze di machine learning sui dati generati a livello locale su un dispositivo AWS IoT Greengrass utilizzando modelli ottimizzati con Amazon SageMaker Neo. Per preparare il tuo dispositivo all'interferenza, segui le istruzioni sull'installazione del runtime di Neo DLR sul tuo dispositivo. Per maggiori informazioni, consulta Installazione di DLR.

Puoi compilare un modello in Amazon SageMaker Neo per la tua piattaforma hardware di destinazione e archiviarlo in un bucket di Amazon Simple Storage Service (Amazon S3). Poi puoi configurare AWS IoT Greengrass per utilizzare il bucket di S3 per distribuire il modello Neo ottimizzato per l'interferenza locale sul dispositivo.

È possibile importare un modello di apprendimento automatico addestrato separatamente e caricarlo in Amazon S3 nei formati .tar.gz e .zip. Quindi dovrai indicare ad AWS IoT Greengrass il relativo URI di S3, per consentire al servizio di eseguire la distribuzione sui dispositivi di destinazione.

ML Inference per AWS IoT Greengrass è attualmente disponibile in tutte le regioni nelle quali è disponibile AWS IoT Greengrass. Consulta la Tabella delle regioni AWS per le informazioni aggiornate relative alla disponibilità regionale di AWS IoT Greengrass.

È possibile utilizzare ML Inference per AWS IoT Greengrass indipendentemente dalla posizione geografica, purché si abbia accesso a una di queste regioni AWS.

Componenti di AWS IoT Greengrass

I componenti di AWS IoT Greengrass sono blocchi che consentono la creazione facilitata di flussi di lavoro complessi come inferenza di machine learning, elaborazione locale, messaggistica ed elaborazione dei dati. AWS IoT Greengrass offre anche componenti predefiniti come Stream Manager che supporta l'esportazione dei dati su destinazioni locali e target cloud. Questi componenti aiutano ad accelerare lo sviluppo delle applicazioni in modo da non doverti preoccupare di comprendere i protocolli del dispositivo, gestire le credenziali o interagire con API esterne e puoi interagire con i servizi AWS e le applicazioni di terze parti senza scrivere codice. Inoltre, puoi anche creare i tuoi componenti su AWS IoT Greengrass. Tutti i componenti sono progettati per consentire la facilità d'uso, poiché possono essere configurati e gestiti tramite la console AWS Greengrass. Questi componenti ti consentono di riutilizzare la logica di business comune da un dispositivo AWS IoT Greengrass all'altro poiché puoi facilmente scoprire, importare, configurare e distribuire i componenti sull'edge.

I componenti di AWS IoT Greengrass possono essere aggiunti tramite la sezione "Componenti" a ciascun gruppo nella console di AWS IoT Greengrass. Una volta aggiunti, sarà possibile configurare i parametri dei componenti di AWS IoT Greengrass Connector e distribuire il gruppo per aggiungerli al dispositivo AWS IoT Greengrass Core.

I clienti di AWS IoT Greengrass possono utilizzare i componenti di AWS IoT Greengrass dalla console di AWS IoT Greengrass, accessibile tramite la Console di gestione AWS.

Per informazioni sui componenti di AWS IoT Greengrass disponibili, consulta la nostra documentazione.

Adattatori di protocollo

Dal momento che le funzioni Lambda in esecuzione in AWS IoT Greengrass Core hanno accesso alle risorse di rete, puoi utilizzare Lambda per implementare supporto per qualsiasi protocollo implementato su TCP-IP. Inoltre, puoi sfruttare l'accesso alle risorse locali AWS IoT Greengrass per implementare supporto per protocolli che necessitano di accesso ad adattatori/driver hardware.

AWS IoT Greengrass fornisce anche connettori Modbus-RTU, Modbus-TCP e EtherNet/IP Protocol Adapter che consentono di connettere i dispositivi edge. Per ulteriori informazioni, consulta la documentazione sul connettore qui.

Puoi utilizzare il connettore IoT SiteWise per acquisire i dati dei dispositivi dai server OPC UA, il connettore Modbus-TCP per acquisire i dati dei dispositivi dai server Modbus-TCP e il connettore EtherNet/IP per acquisire i dati dei dispositivi dai server EtherNet/IP. L'esportazione dei dati in AWS IoT SiteWise è abilitata per impostazione predefinita e puoi utilizzare flussi personalizzati per esportare i dati in AWS IoT Analytics, Amazon Kinesis e Amazon S3. Puoi utilizzare i flussi personalizzati anche per inviare dati alle funzioni Lambda e condurre un'elaborazione locale prima di esportare i dati. In alternativa, puoi creare un'implementazione personalizzata che utilizzi le funzioni Lambda distribuite in locale per acquisire ed elaborare i dati dei dispositivi e quindi fornire i dati a destinazioni locali o cloud.

Aggiornamenti Over the Air (OTA)

Occasionalmente, AWS pubblicherà versioni aggiornate del software AWS IoT Greengrass Core per fornire i seguenti vantaggi:

  • Introdurre funzionalità nuove o migliorate
  • Correzioni di bug
  • Miglioramenti della sicurezza

Con gli aggiornamenti Over the Air (OTA) AWS IoT Greengrass, i clienti possono ottenere tutti i vantaggi senza dover scaricare e reinstallare manualmente il software AWS IoT Greengrass Core.

No. Puoi sempre scegliere di scaricare e installare gli aggiornamenti manualmente oppure seguendo una diversa procedura di distribuzione del software.

Quando sono disponibili nuove versioni di AWS IoT Greengrass Core, lo annunceremo nel forum degli sviluppatori software AWS IoT Greengrass. Un link al forum è disponibile qui.

AWS IoT Device Tester per AWS IoT Greengrass

AWS IoT Device Tester per AWS IoT Greengrass è uno strumento di automazione dei test che permette di eseguire una verifica automatica e di valutare AWS IoT Greengrass sui dispositivi basati su Linux. AWS IoT Device Tester fornisce una serie di test automatizzati che permettono di verificare se i dispositivi possono eseguire AWS IoT Greengrass ed essere autenticati da e interoperare con i servizi AWS IoT.

Puoi ottenere AWS IoT Device Tester per AWS IoT Greengrass qui.

AWS IoT Device Tester per AWS IoT Greengrass verifica che la combinazione tra l'architettura della CPU del dispositivo, la configurazione dei kernel di Linux e i driver funzioni con AWS IoT Greengrass, controllando quanto segue:

  • che i pacchetti software richiesti siano stati installati 
  • che i kernel di Linux contengano la configurazione di kernel AWS IoT Greengrass richiesta (es. kernel configurati per cgroup)
  • gli aggiornamenti over-the-air
  • il dispositivo possa connettersi con servizi IoT e sia in grado di eseguire funzioni di AWS Lambda
  • le funzionalità di accesso alle risorse locali
  • funzionalità shadow del dispositivo

È possibile richiedere assistenza tramite uno dei seguenti canali:

AWS Forum per AWS IoT Greengrass

Supporto Premium

Supporto clienti

Se sei un partner AWS, il Programma AWS per la qualifica dei dispositivi definisce il processo per inserire il tuo dispositivo nel catalogo. Avviene quindi, come descritto di seguito, una panoramica del processo ad alto livello:

  1. supera il test AWS IoT Device Tester per AWS IoT Greengrass
     
  2. Accedi al portale AWS Partner Network
     
  3. carica il report di AWS IoT Device Tester. Una volta che il report è stato verificato da AWS e gli altri artefatti relativi al dispositivo (come l'immagine del dispositivo, la scheda informativa, etc) sono stati inviati, il dispositivo viene elencato nel Catalogo dei dispositivi dei Partner AWS.

AWS IoT Device Tester per AWS IoT Greengrass è disponibile in tutte le regioni in cui è disponibile AWS IoT Greengrass.

AWS IoT Device Tester per AWS IoT Greengrass è gratuito. Tuttavia, sarai responsabile di tutti i costi associati all'utilizzo di AWS come parte dei test di qualifica. La singola esecuzione di AWS IoT Device Tester su un unico dispositivo AWS IoT Greengrass costerà meno di 20 centesimi.

I sistemi operativi e le architetture CPU supportati da AWS IoT Greengrass Core e testate per la compatibilità da AWS sono elencati qui. Anche altre varianti di Linux che non sono state convalidate dal team di AWS IoT Greengrass possono eseguire correttamente AWS IoT Greengrass. Puoi convalidare queste varianti per la compatibilità utilizzando il controllo delle dipendenze di IoT Greengrass su GitHub. In alternativa, puoi eseguire IoT Greengrass in "modalità elaborazione", che abbassa la soglia di compatibilità, ma rimuove il supporto per i container di Linux.

Puoi eseguire AWS IoT Greengrass Core su un dispositivo che rispetti i requisiti minimi di software e hardware. Puoi anche testare autonomamente i tuoi dispositivi per valutare se funzioneranno in modo ottimale con AWS IoT Greengrass e altri servizi AWS utilizzando AWS IoT Device Tester. Puoi anche scoprire e valutare i dispositivi compatibili con AWS IoT Greengrass nel Catalogo dei dispositivi dei Partner AWS.

Per assicurarti che i tuoi dispositivi funzionino con AWS IoT Greengrass Core, effettua test utilizzando AWS IoT Device Tester per AWS IoT Greengrass. Scarica lo strumento e leggi la documentazione.

Collegamento di FreeRTOS e altri dispositivi ad AWS IoT Greengrass

Puoi connettere i dispositivi ad AWS IoT Greengrass Core in locale utilizzando FreeRTOS o il Device SDK per AWS IoT. AWS IoT Greengrass Discovery è disponibile sull’SDK di AWS IoT Device via C++, Node.js, Java e Python 2.7, 3.7 e 3.8. Per ulteriori informazioni, fai riferimento alla Guida per sviluppatori di AWS IoT Greengrass. Puoi utilizzare la libreria AWS IoT Greengrass Discovery nel tuo codice sorgente FreeRTOS per individuare e connetterti a un dispositivo AWS IoT Greengrass Core.

AWS IoT Greengrass Discovery è disponibile sull’SDK di AWS IoT Device via C++, Node.js, Java e Python 2.7, 3.7 e 3.8. Per ulteriori informazioni, fai riferimento alla Guida per sviluppatori di AWS IoT Greengrass.

Sì. I dispositivi FreeRTOS si connettono direttamente al cloud o ad AWS IoT Greengrass. FreeRTOS funziona su endpoint IoT ed è spesso responsabile di "rilevamento" e "azione" in una topologia IoT.

AWS IoT Greengrass è un software che ti consente di eseguire localmente funzionalità di calcolo, messaggistica, caching dei dati, sincronizzazione e capacità di inferenza per machine learning per dispositivi connessi in tutta sicurezza. Con AWS IoT Greengrass, i dispositivi connessi possono eseguire funzioni AWS Lambda, container Docker o entrambi, mantenere sincronizzati i dati dei dispositivi e comunicare in maniera sicura con altri dispositivi, anche quando non connessi a Internet. Utilizzando AWS Lambda, AWS IoT Greengrass consente ai dispositivi IoT di rispondere rapidamente agli eventi locali, utilizzare funzioni Lambda in esecuzione su AWS IoT Greengrass Core per interagire con risorse locali, funzionare con connessioni intermittenti, rimanere aggiornati con aggiornamenti over-the-air e ridurre al minimo il costo di trasmissione dei dati IoT nel cloud.

FreeRTOS è un sistema operativo in tempo reale open source per microcontroller che opera sull'edge e non supporta generalmente chipset che potrebbero eseguire AWS IoT Greengrass. Questi dispositivi a microcontroller sono presenti in una varietà di endpoint IoT, come dispositivi di monitoraggio del fitness, pacemaker, contatori elettrici, trasmissioni automobilistiche e reti di sensori. I dispositivi FreeRTOS non eseguono AWS IoT Greengrass Core, ma possono connettersi e inviare e ricevere messaggi da e a un dispositivo AWS IoT Greengrass Core per l'elaborazione locale a livello di edge.

I requisiti hardware e i sistemi operativi sono diversi su entrambi i dispositivi.
 

  FreeRTOS AWS IoT Greengrass
Software Sistema operativo in tempo reale, funziona su un microcontroller Runtime per i dispositivi Linux e SDK per dispositivi sensibili a AWS IoT Greengrass
Requisiti hardware >64 KB di RAM

>96 MB* di RAM (runtime edge v2.0 o superiore)

>128 MB di RAM (runtime edge v1.11 o inferiore)

Categoria Sistemi integrati, endpoint IoT Dispositivi edge, gateway locali
Casi d'uso Dispositivi basati su microcontroller Sistemi di automazione industriali, router wireless, videocamere, gateway

*Basato su uno studio AWS che ha utilizzato il seguente JDK: versione JDK utilizzata per i test: openjdk versione "1.8.0_275", OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01) e OpenJDK 64 bit Server VM (build 25.275-b01, modalità mista). L'utilizzo della memoria potrebbe essere maggiore utilizzando input diversi.