Gestisci le implementazioni e i componenti locali - 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à.

Gestisci le implementazioni e i componenti locali

Utilizza il servizio IPC Greengrass CLI per gestire le distribuzioni locali e i componenti Greengrass sul dispositivo principale.

Per utilizzare queste operazioni IPC, includete la versione 2.6.0 o successiva del componente Greengrass CLI come dipendenza nel componente personalizzato. È quindi possibile utilizzare le operazioni IPC nei componenti personalizzati per effettuare le seguenti operazioni:

  • Crea distribuzioni locali per modificare e configurare i componenti Greengrass sul dispositivo principale.

  • Riavvia e arresta i componenti Greengrass sul dispositivo principale.

  • Genera una password che puoi usare per accedere alla console di debug locale.

Versioni SDK minime

La tabella seguente elenca le versioni minime di SDK per dispositivi AWS IoT che è necessario utilizzare per interagire con il servizio IPC CLI Greengrass.

Autorizzazione

Per utilizzare il servizio IPC Greengrass CLI in un componente personalizzato, è necessario definire politiche di autorizzazione che consentano al componente di gestire distribuzioni e componenti locali. Per informazioni sulla definizione delle politiche di autorizzazione, vedere. Autorizza i componenti a eseguire operazioni IPC

Le politiche di autorizzazione per la CLI Greengrass hanno le seguenti proprietà.

Identificatore del servizio IPC: aws.greengrass.Cli

Operazione Descrizione Risorse

aws.greengrass#CreateLocalDeployment

Consente a un componente di creare una distribuzione locale sul dispositivo principale.

*

aws.greengrass#ListLocalDeployments

Consente a un componente di elencare le distribuzioni locali sul dispositivo principale.

*

aws.greengrass#GetLocalDeploymentStatus

Consente a un componente di ottenere lo stato di una distribuzione locale sul dispositivo principale.

Un ID di distribuzione locale o * per consentire l'accesso a tutte le distribuzioni locali.

aws.greengrass#ListComponents

Consente a un componente di elencare i componenti sul dispositivo principale.

*

aws.greengrass#GetComponentDetails

Consente a un componente di ottenere dettagli su un componente del dispositivo principale.

Un nome di componente, ad esempiocom.example.HelloWorld, o * per consentire l'accesso a tutti i componenti.

aws.greengrass#RestartComponent

Consente a un componente di riavviare un componente sul dispositivo principale.

Un nome di componente, ad esempiocom.example.HelloWorld, o * per consentire l'accesso a tutti i componenti.

aws.greengrass#StopComponent

Consente a un componente di arrestare un componente sul dispositivo principale.

Un nome di componente, ad esempiocom.example.HelloWorld, o * per consentire l'accesso a tutti i componenti.

aws.greengrass#CreateDebugPassword

Consente a un componente di generare una password da utilizzare per accedere al componente della console di debug locale.

*

Esempio di politica di autorizzazione

I seguenti esempi di politiche di autorizzazione consentono a un componente di creare distribuzioni locali, visualizzare tutte le distribuzioni e i componenti locali e riavviare e arrestare un componente denominato. com.example.HelloWorld

{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }

CreateLocalDeployment

Crea o aggiorna una distribuzione locale utilizzando ricette di componenti, artefatti e argomenti di runtime specifici.

Questa operazione fornisce le stesse funzionalità del comando deployment create nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione ha i seguenti parametri:

recipeDirectoryPath(Python:) recipe_directory_path

(Facoltativo) Il percorso assoluto della cartella che contiene i file di ricette dei componenti.

artifactDirectoryPath(Python:) artifact_directory_path

(Facoltativo) Il percorso assoluto della cartella che contiene i file degli artefatti da includere nella distribuzione. La cartella artifacts deve contenere la seguente struttura di cartelle:

/path/to/artifact/folder/component-name/component-version/artifacts
rootComponentVersionsToAdd(Python:) root_component_versions_to_add

(Facoltativo) Le versioni dei componenti da installare sul dispositivo principale. Questo oggetto è una mappa che contiene le seguenti coppie chiave-valore: ComponentToVersionMap

key

Il nome del componente.

value

La versione del componente.

rootComponentsToRemove(Python:) root_components_to_remove

(Facoltativo) I componenti da disinstallare dal dispositivo principale. Specificate un elenco in cui ogni voce è il nome di un componente.

componentToConfiguration(Python:) component_to_configuration

(Facoltativo) La configurazione viene aggiornata per ogni componente della distribuzione. Questo oggetto è una mappa che contiene le seguenti coppie chiave-valore: ComponentToConfiguration

key

Il nome del componente.

value

L'oggetto JSON di aggiornamento della configurazione per il componente. L'oggetto JSON deve avere il seguente formato.

{ "MERGE": { "config-key": "config-value" }, "RESET": [ "path/to/reset/" ] }

Per ulteriori informazioni sugli aggiornamenti della configurazione, vedereAggiornamento delle configurazioni dei componenti.

componentToRunWithInfo(Python:) component_to_run_with_info

(Facoltativo) La configurazione di runtime per ogni componente della distribuzione. Questa configurazione include l'utente di sistema che possiede i processi di ciascun componente e i limiti di sistema da applicare a ciascun componente. Questo oggetto è una mappa che contiene le seguenti coppie chiave-valore: ComponentToRunWithInfo

key

Il nome del componente.

value

La configurazione di runtime per il componente. Se si omette un parametro di configurazione di runtime, il software AWS IoT Greengrass Core utilizza i valori predefiniti configurati sul nucleo Greengrass. Questo oggetto contiene RunWithInfo le seguenti informazioni:

posixUser(Python:) posix_user

(Facoltativo) L'utente e, facoltativamente, il gruppo del sistema POSIX da utilizzare per eseguire questo componente sui dispositivi core di Linux. L'utente e il gruppo, se specificato, devono esistere su ogni dispositivo principale di Linux. Specifica l'utente e il gruppo separati da due punti (:) nel seguente formato: user:group. Il gruppo è facoltativo. Se non si specifica un gruppo, il software AWS IoT Greengrass Core utilizza il gruppo primario per l'utente. Per ulteriori informazioni, consulta Configurare l'utente che esegue i componenti.

windowsUser(Python:) windows_user

(Facoltativo) L'utente Windows da utilizzare per eseguire questo componente sui dispositivi Windows principali. L'utente deve esistere su ogni dispositivo Windows principale e il nome e la password devono essere memorizzati nell'istanza di Credentials Manager dell' LocalSystem account. Per ulteriori informazioni, consulta Configurare l'utente che esegue i componenti.

systemResourceLimits(Python:) system_resource_limits

(Facoltativo) I limiti delle risorse di sistema da applicare ai processi di questo componente. È possibile applicare limiti di risorse di sistema a componenti Lambda generici e non containerizzati. Per ulteriori informazioni, consulta Configura i limiti delle risorse di sistema per i componenti.

AWS IoT Greengrassattualmente non supporta questa funzionalità sui dispositivi Windows principali.

Questo oggetto contiene SystemResourceLimits le seguenti informazioni:

cpus

(Facoltativo) La quantità massima di tempo di CPU che i processi di questo componente possono utilizzare sul dispositivo principale. Il tempo totale della CPU di un dispositivo principale è equivalente al numero di core CPU del dispositivo. Ad esempio, su un dispositivo principale con 4 core CPU, è possibile impostare questo valore in modo da 2 limitare i processi di questo componente al 50% di utilizzo di ciascun core della CPU. Su un dispositivo con 1 core di CPU, puoi impostare questo valore 0.25 per limitare i processi di questo componente al 25 percento di utilizzo della CPU. Se imposti questo valore su un numero maggiore del numero di core della CPU, il software AWS IoT Greengrass Core non limita l'utilizzo della CPU del componente.

memory

(Facoltativo) La quantità massima di RAM (in kilobyte) che i processi di questo componente possono utilizzare sul dispositivo principale.

groupName(Python:) group_name

(Facoltativo) Il nome del gruppo di oggetti a cui indirizzare questa distribuzione.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

deploymentId(Python:) deployment_id

L'ID della distribuzione locale creata dalla richiesta.

ListLocalDeployments

Ottiene lo stato delle ultime 10 distribuzioni locali.

Questa operazione fornisce le stesse funzionalità del comando deployment list nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione non ha parametri.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

localDeployments(Python:) local_deployments

L'elenco delle distribuzioni locali. Ogni oggetto in questo elenco è un LocalDeployment oggetto che contiene le seguenti informazioni:

deploymentId(Python:) deployment_id

L'ID della distribuzione locale.

status

Lo stato della distribuzione locale. Questo enumDeploymentStatus, ha i seguenti valori:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

GetLocalDeploymentStatus

Ottiene lo stato di una distribuzione locale.

Questa operazione fornisce le stesse funzionalità del comando deployment status nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione ha i seguenti parametri:

deploymentId(Python:) deployment_id

L'ID della distribuzione locale da ottenere.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

deployment

La distribuzione locale. Questo oggetto contiene LocalDeployment le seguenti informazioni:

deploymentId(Python:) deployment_id

L'ID della distribuzione locale.

status

Lo stato della distribuzione locale. Questo enumDeploymentStatus, ha i seguenti valori:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

ListComponents

Ottiene il nome, la versione, lo stato e la configurazione di ogni componente principale sul dispositivo principale. Un componente root è un componente specificato in una distribuzione. Questa risposta non include i componenti che vengono installati come dipendenze di altri componenti.

Questa operazione fornisce le stesse funzionalità del comando dell'elenco dei componenti nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione non ha parametri.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

components

L'elenco dei componenti principali del dispositivo principale. Ogni oggetto in questo elenco è un ComponentDetails oggetto che contiene le seguenti informazioni:

componentName(Python:) component_name

Il nome del componente.

version

La versione del componente.

state

Lo stato del componente. Questo stato può essere uno dei seguenti:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

La configurazione del componente come oggetto JSON.

GetComponentDetails

Ottiene la versione, lo stato e la configurazione di un componente sul dispositivo principale.

Questa operazione fornisce le stesse funzionalità del comando component details nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione ha i seguenti parametri:

componentName(Python:) component_name

Il nome del componente da ottenere.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

componentDetails(Python:) component_details

I dettagli del componente. Questo oggetto contiene ComponentDetails le seguenti informazioni:

componentName(Python:) component_name

Il nome del componente.

version

La versione del componente.

state

Lo stato del componente. Questo stato può essere uno dei seguenti:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

La configurazione del componente come oggetto JSON.

RestartComponent

Riavvia un componente sul dispositivo principale.

Nota

Sebbene sia possibile riavviare qualsiasi componente, si consiglia di riavviare solo i componenti generici.

Questa operazione fornisce le stesse funzionalità del comando di riavvio del componente nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione ha i seguenti parametri:

componentName(Python:) component_name

Il nome del componente.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

restartStatus(Python:) restart_status

Lo stato della richiesta di riavvio. Lo stato della richiesta può essere uno dei seguenti:

  • SUCCEEDED

  • FAILED

message

Un messaggio sul motivo per cui il componente non è riuscito a riavviarsi, se la richiesta non è riuscita.

StopComponent

Interrompe i processi di un componente sul dispositivo principale.

Nota

Sebbene sia possibile interrompere qualsiasi componente, si consiglia di interrompere solo i componenti generici.

Questa operazione fornisce le stesse funzionalità del comando component stop nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione ha i seguenti parametri:

componentName(Python:) component_name

Il nome del componente.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

stopStatus(Python:) stop_status

Lo stato della richiesta di interruzione. Lo stato della richiesta può essere uno dei seguenti:

  • SUCCEEDED

  • FAILED

message

Un messaggio sul motivo per cui il componente non è riuscito a fermarsi, se la richiesta non è riuscita.

CreateDebugPassword

Genera una password casuale che è possibile utilizzare per accedere al componente della console di debug locale. La password scade 8 ore dopo la generazione.

Questa operazione fornisce le stesse funzionalità del get-debug-password comando nella CLI di Greengrass.

Richiesta

La richiesta di questa operazione non ha parametri.

Risposta

La risposta di questa operazione contiene le seguenti informazioni:

username

Il nome utente da usare per accedere.

password

La password da usare per accedere.

passwordExpiration(Python:) password_expiration

L'ora in cui scade la password.

certificateSHA256Hash(Python:) certificate_sha256_hash

L'impronta digitale SHA-256 per il certificato autofirmato utilizzato dalla console di debug locale quando HTTPS è abilitato. Quando apri la console di debug locale, usa questa impronta digitale per verificare che il certificato sia legittimo e che la connessione sia sicura.

certificateSHA1Hash(Python:) certificate_sha1_hash

L'impronta digitale SHA-1 per il certificato autofirmato che la console di debug locale utilizza quando HTTPS è abilitato. Quando apri la console di debug locale, usa questa impronta digitale per verificare che il certificato sia legittimo e che la connessione sia sicura.