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.
Argomenti
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.
SDK | Versione minima |
---|---|
v1.2.10 |
|
v1.5.3 |
|
v1.17.0 |
|
v1.12.0 |
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 |
---|---|---|
|
Consente a un componente di creare una distribuzione locale sul dispositivo principale. |
|
|
Consente a un componente di elencare le distribuzioni locali sul dispositivo principale. |
|
|
Consente a un componente di ottenere lo stato di una distribuzione locale sul dispositivo principale. |
Un ID di distribuzione locale o |
|
Consente a un componente di elencare i componenti sul dispositivo principale. |
|
|
Consente a un componente di ottenere dettagli su un componente del dispositivo principale. |
Un nome di componente, ad esempio |
|
Consente a un componente di riavviare un componente sul dispositivo principale. |
Un nome di componente, ad esempio |
|
Consente a un componente di arrestare un componente sul dispositivo principale. |
Un nome di componente, ad esempio |
|
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 Greengrass attualmente 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 valore0.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 enum
DeploymentStatus
, 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 enum
DeploymentStatus
, 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.