Distribuzione di gruppi AWS IoT Greengrass in un 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à.

Distribuzione di gruppi AWS IoT Greengrass in un AWS IoT Greengrass Core

Usa AWS IoT Greengrass i gruppi per organizzare le entità nel tuo ambiente edge. I gruppi vengono utilizzati anche per controllare il modo in cui le entità del gruppo interagiscono tra loro e conCloud AWS. Ad esempio, solo le funzioni Lambda del gruppo vengono distribuite per l'esecuzione locale e solo i dispositivi del gruppo possono comunicare utilizzando il server MQTT locale.

Un gruppo deve includere un core, ovvero un dispositivo AWS IoT che esegue il software AWS IoT Greengrass Core. Il core funge da gateway edge e fornisce funzionalità AWS IoT Core nell'ambiente edge. A seconda delle esigenze aziendali, puoi anche aggiungere le seguenti entità a un gruppo:

  • Dispositivi client. Rappresentati come oggetti nel registro AWS IoT. Questi dispositivi devono eseguire FreerTOS o utilizzare AWS IoTDevice SDK AWS IoT Greengrasso Discovery API per ottenere informazioni di connessione per il core. Solo i dispositivi client che fanno parte del gruppo possono connettersi al core.

  • Funzioni Lambda. Applicazioni serverless definite dall'utente che eseguono codice sul core. Le funzioni Lambda sono create AWS Lambda e referenziate da un gruppo Greengrass. Per ulteriori informazioni, consulta Esegui le funzioni Lambda sul core AWS IoT Greengrass.

  • Connettori. Applicazioni serverless predefinite che eseguono codice sul core. I connettori possono fornire un'integrazione integrata con l'infrastruttura locale, i protocolli dei dispositivi e altri servizi cloud. AWS Per ulteriori informazioni, consulta Integrazione con servizi e protocolli tramite i connettori Greengrass.

  • Abbonamenti. Definiscono gli autori, i sottoscrittori e gli argomenti MQTT (o gli argomenti) autorizzati per la comunicazione MQTT.

  • Risorse. Riferimenti a dispositivi e volumi locali, modelli di apprendimento automatico e segreti, utilizzati per il controllo degli accessi tramite funzioni e connettori Greengrass Lambda.

  • Registri. Configurazioni di registrazione per i componenti di AWS IoT Greengrass sistema e le funzioni Lambda. Per ulteriori informazioni, consulta Monitoraggio con i log AWS IoT Greengrass.

Gestisci il tuo gruppo Greengrass in Cloud AWS e poi lo distribuisci su un core. La distribuzione copia la configurazione del gruppo nel file group.json sul dispositivo core. Questo file si trova in greengrass-root/ggc/deployments/group.

Definizione cloud del gruppo Greengrass distribuito su un dispositivo core.
Nota

Durante una distribuzione, il processo daemon Greengrass sul dispositivo core si arresta e quindi si riavvia.

Distribuzione dei gruppi dalla console AWS IoT

È possibile distribuire un gruppo e gestirne le distribuzioni dalla pagina di configurazione del gruppo nella console. AWS IoT

Nota

Per aprire questa pagina nella console, scegli Dispositivi Greengrass, quindi Gruppi (V1), quindi in Gruppi Greengrass, scegli il tuo gruppo.

Per distribuire la versione corrente del gruppo
  • Dalla pagina di configurazione del gruppo, scegli Distribuisci.

Per visualizzare la cronologia della distribuzione del gruppo

La cronologia della distribuzione di un gruppo include la data e l'ora, la versione del gruppo e lo stato di ogni tentativo di distribuzione.

  1. Dalla pagina di configurazione del gruppo, scegli la scheda Distribuzioni.

  2. Per visualizzare ulteriori informazioni su una distribuzione, inclusi i messaggi di errore, scegli Distribuzioni dalla AWS IoT console, in Dispositivi Greengrass.

Per ripetere la distribuzione di un gruppo

Potresti voler ripetere una distribuzione se la distribuzione corrente ha esito negativo o ripristinare una versione di gruppo diversa.

  1. Dalla AWS IoT console, scegli Dispositivi Greengrass, quindi scegli Gruppi (V1).

  2. Seleziona la scheda Distribuzioni.

  3. Scegli la distribuzione che desideri ridistribuire e scegli Redeploy.

Per reimpostare le distribuzioni di gruppo

È possibile reimpostare le distribuzioni di gruppo per spostare o eliminare un gruppo o rimuovere le informazioni sulla distribuzione. Per ulteriori informazioni, consulta Reimpostazione delle distribuzioni.

  1. Dalla AWS IoT console, scegli Dispositivi Greengrass, quindi scegli Gruppi (V1).

  2. Seleziona la scheda Distribuzioni.

  3. Scegli la distribuzione che desideri ripristinare e scegli Ripristina distribuzioni.

Distribuzione di gruppi con l'API AWS IoT Greengrass

L'API AWS IoT Greengrass fornisce le seguenti operazioni per distribuire i gruppi AWS IoT Greengrass e gestire le distribuzioni dei gruppi. Puoi chiamare queste operazioni dalla AWS CLI, dall'AWS IoT Greengrass API o dall'SDK AWS.

Azione Descrizione

CreateDeployment

Creare una distribuzione NewDeployment o Redeployment.

Potresti voler ridistribuire una distribuzione se la distribuzione corrente ha esito negativo. In alternativa, potresti voler ridistribuire per ripristinare una versione di gruppo diversa.

GetDeploymentStatus

Restituisce lo stato di una distribuzione: Building, InProgress, Success o Failure.

Puoi configurare Amazon EventBridge Events per ricevere notifiche di distribuzione. Per ulteriori informazioni, consulta Ottenere le notifiche di distribuzione.

ListDeployments

Restituisce la cronologia della distribuzione per il gruppo.

ResetDeployments

Reimposta le distribuzioni per il gruppo.

È possibile reimpostare le distribuzioni di gruppo per spostare o eliminare un gruppo o rimuovere le informazioni sulla distribuzione. Per ulteriori informazioni, consulta Reimpostazione delle distribuzioni.

Nota

Per informazioni sulle operazioni di distribuzione in blocco, consulta Creazione di distribuzioni in blocco per i gruppi.

Ottenere l'ID del gruppo

L'ID del gruppo viene comunemente utilizzato nelle operazioni API. Puoi utilizzare l'ListGroupsazione per trovare l'ID del gruppo target dal tuo elenco di gruppi. Ad esempio, nell’AWS CLI, utilizzare il comando list-groups.

aws greengrass list-groups

È inoltre possibile includere l'opzione query per filtrare i risultati. Per esempio:

  • Per ottenere il gruppo creato più di recente:

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  • Per ottenere un gruppo in base al nome:

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

    I nomi dei gruppi non devono essere univoci, pertanto potrebbero essere restituiti più gruppi.

Di seguito è riportata una risposta list-groups di esempio: Le informazioni relative a ciascun gruppo includono l'ID del gruppo (nella proprietà Id) e l'ID della versione più recente del gruppo (nella proprietà LatestVersion). Per ottenere altri ID di versione per un gruppo, usa l'ID del gruppo con ListGroupVersions.

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.

{ "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }

Se non specifichi unRegione AWS, AWS CLI i comandi utilizzano la regione predefinita del tuo profilo. Per restituire gruppi in un'altra regione, includere l'opzione regione . Per esempio:

aws greengrass list-groups --region us-east-1

Panoramica del modello di oggetti del gruppo AWS IoT Greengrass

Durante la programmazione con l'API AWS IoT Greengrass, è utile comprendere il modello di oggetti del gruppo Greengrass.

Gruppi

Nell'API AWS IoT Greengrass, l'oggetto Group di primo livello è costituito da metadati e da un elenco di oggetti GroupVersion. Gli oggetti GroupVersion sono associati a un Group per ID.

Diagramma di un gruppo, costituito da metadati e da un elenco di versioni del gruppo.

Versioni del gruppo

Gli oggetti GroupVersion definiscono l'appartenenza al gruppo. Ogni GroupVersion fa riferimento a una CoreDefinitionVersion e ad altre versioni dei componenti per ARN. Questi riferimenti determinano quali entità includere nel gruppo.

Diagramma di una versione di gruppo che fa riferimento ad altri tipi di versione in base all'ARN.

Ad esempio, per includere tre funzioni Lambda, un dispositivo e due abbonamenti nel gruppo, i riferimenti: GroupVersion

  • Il CoreDefinitionVersion che contiene il core richiesto.

  • Il FunctionDefinitionVersion che contiene le tre funzioni.

  • Il DeviceDefinitionVersion che contiene il dispositivo client.

  • Il SubscriptionDefinitionVersion che contiene le due sottoscrizioni.

Il GroupVersion distribuito su un dispositivo core determina le entità disponibili nell'ambiente locale e il modo in cui possono interagire.

Componenti del gruppo

I componenti aggiunti ai gruppi hanno una gerarchia di tre livelli:

  • Una definizione che fa riferimento a un elenco di DefinitionVersionoggetti di un determinato tipo. Ad esempio, un DeviceDefinition fa riferimento a un elenco di oggetti DeviceDefinitionVersion.

  • Una DefinitionVersionche contiene un insieme di entità di un determinato tipo. Ad esempio, un DeviceDefinitionVersion contiene un elenco di oggetti Device.

  • Singole entità che definiscono le proprietà e il comportamento. Ad esempio, a Device definisce l'ARN del dispositivo client corrispondente nel AWS IoT registro, l'ARN del certificato del dispositivo e se la sua shadow locale si sincronizza automaticamente con il cloud.

    Puoi aggiungere i seguenti tipi di entità a un gruppo:

L'esempio seguente DeviceDefinition fa riferimento a tre oggetti DeviceDefinitionVersion che contengono ciascuno più oggetti Device. In un gruppo viene utilizzato solo un oggetto DeviceDefinitionVersion alla volta.

Un diagramma di una gerarchia di dispositivi, che consiste di DeviceDefinition, DeviceDefinitionVersion e oggetti Device.

Aggiornamento dei gruppi

Nell'API AWS IoT Greengrass, utilizzare le versioni per aggiornare la configurazione di un gruppo. Le versioni sono immutabili, quindi per aggiungere, rimuovere o modificare i componenti del gruppo, è necessario creare DefinitionVersionoggetti che contengano entità nuove o aggiornate.

È possibile associare nuovi DefinitionVersionsoggetti a oggetti Definition nuovi o esistenti. Ad esempio, puoi utilizzare l'operazione CreateFunctionDefinition per creare un FunctionDefinition che include FunctionDefinitionVersion come versione iniziale oppure puoi utilizzare l'operazione CreateFunctionDefinitionVersion e fare riferimento a un FunctionDefinition esistente.

Dopo aver creato i componenti del gruppo, ne create uno GroupVersion contenente tutti DefinitionVersiongli oggetti che desiderate includere nel gruppo. Puoi quindi distribuire GroupVersion.

Per distribuire un GroupVersion, deve fare riferimento a un CoreDefinitionVersion che contiene esattamente uno Core. Tutte le entità a cui si fa riferimento devono essere membri del gruppo. Inoltre, un ruolo di servizio Greengrass deve essere associato all'utente Account AWS nel luogo in Regione AWS cui si sta implementando il. GroupVersion

Nota

Le operazioni Update nell'API vengono utilizzate per modificare il nome di un Group o di un oggetto Definition del componente.

Aggiornamento di entità che fanno riferimento a risorse AWS

Le funzioni e le risorse segrete di Greengrass Lambda definiscono le proprietà specifiche di Greengrass e fanno anche riferimento alle risorse corrispondenti. AWS Per aggiornare queste entità, è possibile apportare modifiche alla AWS risorsa corrispondente anziché agli oggetti Greengrass. Ad esempio, le funzioni Lambda fanno riferimento a una funzione in AWS Lambda e definiscono anche il ciclo di vita e altre proprietà specifiche del gruppo Greengrass.

  • Per aggiornare il codice della funzione Lambda o le dipendenze pacchettizzate, apporta le modifiche. AWS Lambda Durante la successiva distribuzione del gruppo, queste modifiche vengono recuperate da AWS Lambda e copiate nell'ambiente locale.

  • Per aggiornare le proprietà specifiche di Greengrass, devi creare un FunctionDefinitionVersion che contiene le proprietà Function aggiornate.

Nota

Le funzioni Lambda di Greengrass possono fare riferimento a una funzione Lambda tramite alias ARN o versione ARN. Se si fa riferimento all'ARN alias (consigliato), non è necessario aggiornare FunctionDefinitionVersion (o SubscriptionDefinitionVersion) quando si pubblica una nuova versione della funzione in AWS Lambda. Per ulteriori informazioni, consulta Fai riferimento alle funzioni Lambda per alias o versione.

Consulta anche