Implementazione AWS IoT Greengrass dei componenti sui dispositivi - AWS IoT Greengrass

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à.

Implementazione AWS IoT Greengrass dei componenti sui dispositivi

Puoi utilizzarli AWS IoT Greengrass per distribuire componenti su dispositivi o gruppi di dispositivi. Le distribuzioni vengono utilizzate per definire i componenti e le configurazioni che vengono inviati ai dispositivi. AWS IoT Greengrasssi distribuisce su obiettivi, AWS IoT oggetti o gruppi di oggetti che rappresentano i dispositivi principali di Greengrass. AWS IoT Greengrassutilizza i AWS IoT Corejob per l'implementazione sui dispositivi principali. Puoi configurare la modalità di distribuzione del lavoro sui tuoi dispositivi.

Implementazioni principali dei dispositivi

Ogni dispositivo principale esegue i componenti delle distribuzioni per quel dispositivo. Una nuova distribuzione sulla stessa destinazione sovrascrive la distribuzione precedente sulla destinazione. Quando si crea una distribuzione, si definiscono i componenti e le configurazioni da applicare al software esistente del dispositivo principale.

Quando si modifica una distribuzione per una destinazione, si sostituiscono i componenti della revisione precedente con i componenti della nuova revisione. Ad esempio, si distribuiscono i Gestore segreto componenti Gestore dei registri and nel gruppo di oggetti. TestGroup Quindi si crea un'altra distribuzione TestGroup che specifica solo il componente secret manager. Di conseguenza, i dispositivi principali di quel gruppo non eseguono più il gestore dei registri.

Risoluzione delle dipendenze dalla piattaforma

Quando un dispositivo principale riceve un'implementazione, verifica che i componenti siano compatibili con il dispositivo principale. Ad esempio, se si distribuisce il Firehose su una destinazione Windows, la distribuzione avrà esito negativo.

Risoluzione delle dipendenze dei componenti

Il dispositivo principale verifica inoltre se le dipendenze di ciascun componente sono compatibili con i vincoli di versione per le distribuzioni di altri componenti in questo gruppo di oggetti. Laddove i vincoli di versione per un componente si sovrappongono, Greengrass utilizza la versione più alta applicabile del componente. Per esempio:

  • Il componente A viene distribuito su. TestGroup Il componente A dipende dalle com.example.PythonRuntime versioni del componente 3.5 - 3.10.

  • Quindi si distribuisce il componente B su. TestGroup Il componente B dipende dalle com.example.PythonRuntime versioni del componente da 3.7 a 3.8.

Di conseguenza, i dispositivi principali TestGroup stabiliscono di poter implementare la versione 3.8 del com.example.PythonRuntime componente, poiché questa è la versione più applicabile in cui i vincoli di versione si sovrappongono.

Dipendenze tra componenti, ad esempio componenti.

Quindi si distribuisce il componente C su. TestGroup Il componente C dipende dalle com.example.PythonRuntime versioni del componente 2.6 - 2.7. Questa distribuzione non riesce perché non esiste una versione del componente che soddisfi i vincoli 2.6 - 2.7 e 3.7 - 3.8.

Dipendenze tra i componenti che determinano una distribuzione non riuscita.

Rimozione di un dispositivo da un gruppo di oggetti

Quando si rimuove un dispositivo principale da un gruppo di oggetti, il comportamento di distribuzione dei componenti dipende dalla versione del nucleo Greengrass utilizzata dal dispositivo principale.

2.5.1 and later

Quando si rimuove un dispositivo principale da un gruppo di oggetti, il comportamento dipende dal fatto che la AWS IoT policy conceda o meno l'autorizzazione. greengrass:ListThingGroupsForCoreDevice Per ulteriori informazioni su questa autorizzazione e sulle AWS IoT politiche per i dispositivi principali, consultaAutenticazione e autorizzazione del dispositivo per AWS IoT Greengrass.

  • Se la AWS IoT politica concede questa autorizzazione

    Quando rimuovi un dispositivo principale da un gruppo di oggetti, AWS IoT Greengrass rimuove i componenti del gruppo di oggetti la prossima volta che viene effettuata una distribuzione sul dispositivo. Se un componente del dispositivo è incluso nella distribuzione successiva, tale componente non viene rimosso dal dispositivo.

  • Se la AWS IoT politica non concede questa autorizzazione

    Quando rimuovi un dispositivo principale da un gruppo di oggetti, AWS IoT Greengrass non elimina i componenti di quel gruppo di oggetti dal dispositivo.

    Per rimuovere un componente da un dispositivo, utilizzate il comando deployment create della CLI di Greengrass. Specificate il componente da rimuovere con l'--removeargomento e specificate il gruppo di cose con l'--groupIdargomento.

2.5.0

Quando rimuovete un dispositivo principale da un gruppo di oggetti, AWS IoT Greengrass rimuove i componenti del gruppo di oggetti la prossima volta che viene effettuata una distribuzione sul dispositivo. Se un componente del dispositivo è incluso nella distribuzione successiva, tale componente non viene rimosso dal dispositivo.

Questo comportamento richiede che la AWS IoT politica del dispositivo principale conceda l'greengrass:ListThingGroupsForCoreDeviceautorizzazione. Se un dispositivo principale non dispone di questa autorizzazione, il dispositivo principale non riesce ad applicare le distribuzioni. Per ulteriori informazioni, consulta Autenticazione e autorizzazione del dispositivo per AWS IoT Greengrass.

2.0.x - 2.4.x

Quando rimuovi un dispositivo principale da un gruppo di oggetti, AWS IoT Greengrass non elimina i componenti di quel gruppo di oggetti dal dispositivo.

Per rimuovere un componente da un dispositivo, utilizzate il comando deployment create della CLI di Greengrass. Specificate il componente da rimuovere con l'--removeargomento e specificate il gruppo di cose con l'--groupIdargomento.

Distribuzioni

Le distribuzioni sono continue. Quando crei una distribuzione, AWS IoT Greengrass distribuisci la distribuzione sui dispositivi di destinazione che sono online. Se un dispositivo di destinazione non è online, riceve la distribuzione la volta successiva a cui si connetteAWS IoT Greengrass. Quando aggiungi un dispositivo principale a un gruppo di oggetti di destinazione, AWS IoT Greengrass invia al dispositivo la distribuzione più recente per quel gruppo di oggetti.

Prima che un dispositivo principale distribuisca un componente, per impostazione predefinita invia una notifica a ciascun componente del dispositivo. I componenti Greengrass possono rispondere alla notifica per posticipare l'implementazione. Potresti voler posticipare l'installazione se il dispositivo ha un livello di batteria basso o sta eseguendo un processo che non può essere interrotto. Per ulteriori informazioni, consulta Tutorial: Sviluppa un componente Greengrass che rinvii gli aggiornamenti dei componenti. Quando si crea una distribuzione, è possibile configurarla per la distribuzione senza notificare i componenti.

Ogni oggetto o gruppo di oggetti di destinazione può avere una distribuzione alla volta. Ciò significa che quando si crea una distribuzione per una destinazione, AWS IoT Greengrass non viene più distribuita la revisione precedente della distribuzione di quella destinazione.

Opzioni di implementazione

Le distribuzioni offrono diverse opzioni che consentono di controllare quali dispositivi ricevono un aggiornamento e come viene distribuito l'aggiornamento. Quando si crea una distribuzione, è possibile configurare le seguenti opzioni:

  • AWS IoT Greengrasscomponenti

    Definire i componenti da installare ed eseguire sui dispositivi di destinazione. AWS IoT Greengrassi componenti sono moduli software che vengono distribuiti ed eseguiti sui dispositivi core Greengrass. I dispositivi ricevono componenti solo se il componente supporta la piattaforma del dispositivo. Ciò consente di eseguire la distribuzione su gruppi di dispositivi anche se i dispositivi di destinazione funzionano su più piattaforme. Se un componente non supporta la piattaforma del dispositivo, il componente non viene distribuito sul dispositivo.

    Puoi distribuire componenti personalizzati e componenti AWS forniti sui tuoi dispositivi. Quando si distribuisce un componente, AWS IoT Greengrass identifica tutte le dipendenze tra i componenti e distribuisce anche tali componenti. Per ulteriori informazioni, consultare Sviluppa AWS IoT Greengrass componenti e AWS-componenti forniti.

    L'utente definisce la versione e l'aggiornamento della configurazione da distribuire per ogni componente. L'aggiornamento della configurazione specifica come modificare la configurazione esistente del componente sul dispositivo principale o la configurazione predefinita del componente se il componente non esiste sul dispositivo principale. È possibile specificare quali valori di configurazione ripristinare ai valori predefiniti e i nuovi valori di configurazione da unire al dispositivo principale. Quando un dispositivo principale riceve distribuzioni per destinazioni diverse e ogni distribuzione specifica versioni dei componenti compatibili, il dispositivo principale applica gli aggiornamenti di configurazione in base al timestamp di quando si crea la distribuzione. Per ulteriori informazioni, consulta Aggiornamento delle configurazioni dei componenti.

    Importante

    Quando distribuisci un componente, AWS IoT Greengrass installa le ultime versioni supportate di tutte le dipendenze di quel componente. Per questo motivo, le nuove versioni patch dei componenti pubblici AWS forniti potrebbero essere distribuite automaticamente sui dispositivi principali se si aggiungono nuovi dispositivi a un gruppo di oggetti o si aggiorna la distribuzione destinata a tali dispositivi. Alcuni aggiornamenti automatici, come un aggiornamento Nucleus, possono causare il riavvio imprevisto dei dispositivi.

    Per evitare aggiornamenti involontari per un componente in esecuzione sul tuo dispositivo, ti consigliamo di includere direttamente la versione preferita di quel componente quando crei una distribuzione. Per ulteriori informazioni sul comportamento di aggiornamento per il software AWS IoT Greengrass Core, consultaAggiornamento del software AWS IoT Greengrass Core (OTA).

  • Politiche di distribuzione

    Definisci quando è sicuro implementare una configurazione e cosa fare se l'implementazione fallisce. Puoi specificare se attendere o meno che i componenti segnalino che possono essere aggiornati. È inoltre possibile specificare se ripristinare o meno i dispositivi alla configurazione precedente se applicano una distribuzione che non riesce.

  • Interrompi la configurazione

    Definisci quando e come interrompere una distribuzione. La distribuzione si interrompe e fallisce se vengono soddisfatti i criteri definiti. Ad esempio, è possibile configurare una distribuzione in modo che si interrompa se una percentuale di dispositivi non riesce ad applicarla dopo che un numero minimo di dispositivi l'ha ricevuta.

  • Rollout configuration (Configurazione rollout)

    Definisci la velocità con cui una distribuzione viene distribuita ai dispositivi di destinazione. È possibile configurare un aumento esponenziale della velocità con limiti di velocità minimi e massimi.

  • Configurazione del timeout

    Definisci la quantità massima di tempo a disposizione di ciascun dispositivo per applicare una distribuzione. Se un dispositivo supera la durata specificata, il dispositivo non riesce ad applicare la distribuzione.

Importante

I componenti personalizzati possono definire artefatti nei bucket S3. Quando il software AWS IoT Greengrass Core distribuisce un componente, scarica gli artefatti del componente da. Cloud AWS Per impostazione predefinita, i ruoli principali dei dispositivi non consentono l'accesso ai bucket S3. Per distribuire componenti personalizzati che definiscono gli artefatti in un bucket S3, il ruolo principale del dispositivo deve concedere le autorizzazioni per scaricare gli artefatti da quel bucket. Per ulteriori informazioni, consulta Consenti l'accesso ai bucket S3 per gli artefatti dei componenti.