

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

# Comandi della CLI di Greengrass
<a name="gg-cli-reference"></a>

La CLI di Greengrass fornisce un'interfaccia a riga di comando per interagire localmente con il dispositivo principale. AWS IoT Greengrass I comandi della CLI di Greengrass utilizzano il seguente formato.

```
$ greengrass-cli <command> <subcommand> [arguments]
```

Per impostazione predefinita, il file `greengrass-cli` eseguibile contenuto nella `/greengrass/v2/bin/` cartella interagisce con la versione del software AWS IoT Greengrass Core in esecuzione nella cartella. `/greengrass/v2` Se chiamate un file eseguibile che non si trova in questa posizione o se desiderate interagire con il software AWS IoT Greengrass Core in una posizione diversa, dovete utilizzare uno dei seguenti metodi per specificare in modo esplicito il percorso principale del software AWS IoT Greengrass Core con cui desiderate interagire:<a name="greengrass-cli-set-root-path"></a>
+ Impostare la variabile di ambiente `GGC_ROOT_PATH` su `/greengrass/v2`.
+ Aggiungete l'`--ggcRootPath /greengrass/v2`argomento al comando come illustrato nell'esempio seguente.

  ```
  greengrass-cli --ggcRootPath /greengrass/v2 <command> <subcommand> [arguments]
  ```

È possibile utilizzare i seguenti argomenti con qualsiasi comando:
+ Utilizzare `--help` per informazioni su uno specifico comando della CLI di Greengrass. 
+ Utilizzare `--version` per informazioni sulla versione della CLI di Greengrass.

Questa sezione descrive i comandi della CLI di Greengrass e fornisce esempi per questi comandi. La sinossi di ogni comando mostra i relativi argomenti e il loro utilizzo. Gli argomenti opzionali sono indicati tra parentesi quadre.

**Topics**
+ [componente](gg-cli-component.md)
+ [implementazione](gg-cli-deployment.md)
+ [log](gg-cli-logs.md)
+ [get-debug-password](gg-cli-get-debug-password.md)

# componente
<a name="gg-cli-component"></a>

Utilizzate il `component` comando per interagire con i componenti locali del dispositivo principale. 

**Sottocomandi**
+ [details](#component-details)
+ [elenco](#component-list)
+ [riavviare](#component-restart)
+ [arresta](#component-stop)

## details
<a name="component-details"></a>

Recupera la versione, lo stato e la configurazione di un componente. 

**Riepilogo**  

```
greengrass-cli component details --name <component-name> 
```

**Arguments (Argomenti)**  
`--name`,`-n`. Il nome del componente.

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando.  

```
$ sudo greengrass-cli component details --name MyComponent 

Component Name: MyComponent 
Version: 1.0.0
State: RUNNING
Configuration: null
```

## elenco
<a name="component-list"></a>

Recupera il nome, la versione, lo stato e la configurazione di ogni componente installato sul dispositivo.

**Riepilogo**  

```
greengrass-cli component list
```

**Arguments (Argomenti)**  
Nessuno

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando.  

```
$ sudo greengrass-cli component list

Components currently running in Greengrass:
Component Name: FleetStatusService
Version: 0.0.0
State: RUNNING
Configuration: {"periodicUpdateIntervalSec":86400.0}
Component Name: UpdateSystemPolicyService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Nucleus
Version: 2.0.0
State: FINISHED
Configuration: {"awsRegion":"region","runWithDefault":{"posixUser":"ggc_user:ggc_group"},"telemetry":{}}
Component Name: DeploymentService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: TelemetryAgent
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Cli
Version: 2.0.0
State: RUNNING
Configuration: {"AuthorizedPosixGroups":"ggc_user"}
```

## riavviare
<a name="component-restart"></a>

Riavviare i componenti.

**Riepilogo**  

```
greengrass-cli component restart --names <component-name>,...
```

**Arguments (Argomenti)**  
`--names`,`-n`. Il nome del componente. È richiesto almeno il nome di un componente. È possibile specificare nomi di componenti aggiuntivi, separando ogni nome con una virgola.

**Output**  
Nessuno

## arresta
<a name="component-stop"></a>

Smettete di far funzionare i componenti. 

**Riepilogo**  

```
greengrass-cli component stop --names <component-name>,...
```

**Arguments (Argomenti)**  
`--names`,`-n`. Il nome del componente. È richiesto almeno il nome di un componente. È possibile specificare nomi di componenti aggiuntivi, se necessario, separando ogni nome con una virgola.

**Output**  
Nessuno

# implementazione
<a name="gg-cli-deployment"></a>

Utilizzate il `deployment` comando per interagire con i componenti locali del dispositivo principale. 

Per monitorare l'avanzamento di una distribuzione locale, usa il `status` sottocomando. Non è possibile monitorare l'avanzamento di una distribuzione locale utilizzando la console.

**Sottocomandi**
+ [Crea](#deployment-create)
+ [annullare](#deployment-cancel)
+ [elenco](#deployment-list)
+ [status](#deployment-status)

## Crea
<a name="deployment-create"></a>

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

**Riepilogo**  

```
greengrass-cli deployment create 
    --recipeDir path/to/component/recipe
    [--artifactDir path/to/artifact/folder ]
    [--update-config {component-configuration}]
    [--groupId <thing-group>]
    [--merge "<component-name>=<component-version>"]...
    [--runWith "<component-name>:posixUser=<user-name>[:<group-name>]"]...
    [--systemLimits "{component-system-resource-limits}]"]...
    [--remove <component-name>,...]
    [--failure-handling-policy <policy name[ROLLBACK, DO_NOTHING]>]
```

**Arguments (Argomenti)**  
+ `--recipeDir`,. `-r` Il percorso completo della cartella che contiene i file di ricette dei componenti.
+ `--artifactDir`,`-a`. Il percorso completo della cartella che contiene i file degli artefatti da includere nella distribuzione. La cartella artifacts deve contenere la seguente struttura di directory:

  ```
  /path/to/artifact/folder/<component-name>/<component-version>/<artifacts>
  ```
+ `--update-config`,. `-c` Gli argomenti di configurazione per la distribuzione, forniti come stringa JSON o file JSON. La stringa JSON deve avere il seguente formato: 

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

  `MERGE`e `RESET` fanno distinzione tra maiuscole e minuscole e devono essere scritte in maiuscolo.
+ `--groupId`,. `-g` Il gruppo di oggetti bersaglio per la distribuzione.
+ `--merge`,`-m`. Il nome e la versione del componente di destinazione che desideri aggiungere o aggiornare. È necessario fornire le informazioni sul componente nel formato`<component>=<version>`. Utilizzate un argomento separato per ogni componente aggiuntivo da specificare. Se necessario, utilizzate l'`--runWith`argomento per fornire le `windowsUser` informazioni `posixUser``posixGroup`, e per l'esecuzione del componente.
+ `--runWith`. `posixUser``posixGroup`, e `windowsUser` informazioni per l'esecuzione di un componente generico o Lambda. È necessario fornire queste informazioni nel formato`<component>:{posixUser|windowsUser}=<user>[:<=posixGroup>]`. Ad esempio, è possibile specificare **HelloWorld:posixUser=ggc\$1user:ggc\$1group** o**HelloWorld:windowsUser=ggc\$1user**. Utilizzate un argomento separato per ogni opzione aggiuntiva da specificare.

  Per ulteriori informazioni, consulta [Configurare l'utente che esegue i componenti](configure-greengrass-core-v2.md#configure-component-user).
+ `--systemLimits`. I limiti delle risorse di sistema da applicare ai processi dei componenti Lambda generici e non containerizzati sul dispositivo principale. È possibile configurare la quantità massima di utilizzo di CPU e RAM utilizzabile dai processi di ciascun componente. Specificate un oggetto JSON serializzato o il percorso di un file JSON. L'oggetto JSON deve avere il seguente formato.

  ```
  {  \
    "componentName": { \ 
      "cpus": cpuTimeLimit, \
      "memory": memoryLimitInKb \
    } \
  }
  ```

  È possibile configurare i seguenti limiti di risorse di sistema per ogni componente:
  + `cpus`— <a name="system-resource-limits-cpu-definition-this"></a>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`— <a name="system-resource-limits-memory-definition-this"></a>La quantità massima di RAM (in kilobyte) che i processi di questo componente possono utilizzare sul dispositivo principale. 

  Per ulteriori informazioni, consulta [Configura i limiti delle risorse di sistema per i componenti](configure-greengrass-core-v2.md#configure-component-system-resource-limits).

  Questa funzionalità è disponibile per la versione 2.4.0 e successive del componente Greengrass [nucleus e della Greengrass CLI](greengrass-nucleus-component.md) sui dispositivi core Linux. AWS IoT Greengrass attualmente non supporta questa funzionalità sui dispositivi Windows core. 
+ `--remove`. Il nome del componente di destinazione che si desidera rimuovere da una distribuzione locale. Per rimuovere un componente che è stato unito da una distribuzione cloud, è necessario fornire l'ID di gruppo del thing group di destinazione nel seguente formato:

------
#### [ Greengrass nucleus v2.4.0 and later ]

  ```
  --remove <component-name> --groupId <group-name>
  ```

------
#### [ Earlier than v2.4.0 ]

  ```
  --remove <component-name> --groupId thinggroup/<group-name>
  ```

------
+ `--failure-handling-policy`. Definisce l'azione intrapresa in caso di errore di una distribuzione. È possibile specificare due azioni:
  + `ROLLBACK` – 
  + `DO_NOTHING` – 

  Questa funzionalità è disponibile per la versione 2.11.0 e successive di. [Nucleo Greengrass](greengrass-nucleus-component.md)

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando.  

```
$ sudo greengrass-cli deployment create \
    --merge MyApp1=1.0.0 \
    --merge MyApp2=1.0.0 --runWith MyApp2:posixUser=ggc_user \
    --remove MyApp3 \
    --recipeDir recipes/ \ 
    --artifactDir artifacts/

Local deployment has been submitted! Deployment Id: 44d89f46-1a29-4044-ad89-5151213dfcbc
```

## annullare
<a name="deployment-cancel"></a>

Annulla la distribuzione specificata.

Riepilogo  

```
greengrass-cli deployment cancel
    -i <deployment-id>
```

Argomenti  
`-i`. L'identificatore univoco della distribuzione da annullare. L'ID di distribuzione viene restituito nell'output del `create` comando.

Output  
+ Nessuno

## elenco
<a name="deployment-list"></a>

Recupera lo stato delle ultime 10 distribuzioni locali.

**Riepilogo**  

```
greengrass-cli deployment list
```

**Arguments (Argomenti)**  
Nessuno

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando. A seconda dello stato della distribuzione, l'output mostra uno dei seguenti valori di stato: `IN_PROGRESS``SUCCEEDED`, o`FAILED`.  

```
$ sudo greengrass-cli deployment list

44d89f46-1a29-4044-ad89-5151213dfcbc: SUCCEEDED
Created on: 6/27/23 11:05 AM
```

## status
<a name="deployment-status"></a>

Recupera lo stato di una distribuzione specifica.

**Riepilogo**  

```
greengrass-cli deployment status -i <deployment-id>
```

**Arguments (Argomenti)**  
`-i`. L'ID della distribuzione.

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando. A seconda dello stato della distribuzione, l'output mostra uno dei seguenti valori di stato: `IN_PROGRESS``SUCCEEDED`, o`FAILED`.  

```
$ sudo greengrass-cli deployment status -i 44d89f46-1a29-4044-ad89-5151213dfcbc

44d89f46-1a29-4044-ad89-5151213dfcbc: FAILED
Created on: 6/27/23 11:05 AM
Detailed Status: <Detailed deployment status>
Deployment Error Stack: List of error codes
Deployment Error Types: List of error types
Failure Cause: Cause
```

# log
<a name="gg-cli-logs"></a>

Usa il `logs` comando per analizzare i log di Greengrass sul tuo dispositivo principale. 

**Sottocomandi**
+ [get](#logs-get)
+ [elenca-parole chiave](#logs-list-keywords)
+ [list-log-files](#logs-list-log-files)

## get
<a name="logs-get"></a>

Raccogli, filtra e visualizza i file di registro Greengrass. Questo comando supporta solo file di registro in formato JSON. È possibile specificare il [formato di registrazione nella configurazione del nucleo](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format).

**Riepilogo**  

```
greengrass-cli logs get
    [--log-dir path/to/a/log/folder]
    [--log-file path/to/a/log/file]
    [--follow true | false ]
    [--filter <filter> ]
    [--time-window <start-time>,<end-time> ]
    [--verbose ]
    [--no-color ]
    [--before <value> ]
    [--after <value> ]
    [--syslog ]
    [--max-long-queue-size <value> ]
```

**Arguments (Argomenti)**  
+ `--log-dir`,. `-ld` Il percorso della directory in cui verificare la presenza di file di registro, ad esempio**`/greengrass/v2`/logs**. Non utilizzare con`--syslog`. Utilizzate un argomento separato per ogni directory aggiuntiva da specificare. È necessario utilizzare almeno uno degli `--log-dir` o`--log-file`. È inoltre possibile utilizzare entrambi gli argomenti in un unico comando. 
+ `--log-file`,`-lf`. I percorsi delle directory di registro che desideri utilizzare. Utilizzate un argomento separato per ogni directory aggiuntiva da specificare. È necessario utilizzare almeno uno degli `--log-dir` o`--log-file`. È inoltre possibile utilizzare entrambi gli argomenti in un unico comando.
+ `--follow`,`-fol`. Mostra gli aggiornamenti del registro man mano che si verificano. La CLI di Greengrass continua a funzionare e legge i log specificati. Se si specifica una finestra temporale, la CLI di Greengrass interrompe il monitoraggio dei log al termine di tutte le finestre temporali.
+ `--filter`,. `-f` La parola chiave, le espressioni regolari o la coppia chiave-valore da usare come filtro. Fornite questo valore come stringa, espressione regolare o coppia chiave-valore. Utilizzate un argomento separato per ogni filtro aggiuntivo da specificare. 

  Quando vengono valutati, più filtri specificati in un singolo argomento vengono separati da operatori OR e i filtri specificati negli argomenti aggiuntivi vengono combinati con gli operatori AND. Ad esempio, se il comando include`--filter "installed" --filter "name=alpha,name=beta"`, Greengrass CLI filtrerà e visualizzerà i messaggi di registro che contengono sia la parola chiave che una `name` chiave con `installed` i valori o. `alpha` `beta`
+ `--time-window`,. `-t` La finestra temporale per la quale mostrare le informazioni del registro. È possibile utilizzare sia i timestamp esatti che gli offset relativi. È necessario fornire queste informazioni nel formato. `<begin-time>,<end-time>` Se non si specifica né l'ora di inizio né l'ora di fine, il valore predefinito di tale opzione è la data e l'ora correnti del sistema. Utilizzate un argomento separato per ogni finestra temporale aggiuntiva da specificare. 

  La CLI di Greengrass supporta i seguenti formati per i timestamp:
  + `yyyy-MM-DD`, ad esempio,. `2020-06-30` L'ora predefinita è 00:00:00 quando si utilizza questo formato.

    `yyyyMMDD`, ad esempio,. `20200630` L'ora predefinita è 00:00:00 quando si utilizza questo formato.

    `HH:mm:ss`, ad esempio,. `15:30:45` La data predefinita è la data di sistema corrente quando si utilizza questo formato.

    `HH:mm:ssSSS`, ad esempio,. `15:30:45` La data predefinita è la data corrente del sistema quando si utilizza questo formato.

    `YYYY-MM-DD'T'HH:mm:ss'Z'`, ad esempio,. `2020-06-30T15:30:45Z`

    `YYYY-MM-DD'T'HH:mm:ss`, ad esempio,`2020-06-30T15:30:45`. 

    `yyyy-MM-dd'T'HH:mm:ss.SSS`, ad esempio,`2020-06-30T15:30:45.250`.

  Gli offset relativi specificano uno scostamento del periodo di tempo dall'ora corrente del sistema. La CLI di Greengrass supporta il seguente formato per gli offset relativi:. `+|-[<value>h|hr|hours][valuem|min|minutes][value]s|sec|seconds` 

  Ad esempio, il seguente argomento per specificare una finestra temporale compresa tra 1 ora e 2 ore 15 minuti prima dell'ora corrente è. `--time-window -2h15min,-1hr`
+ `--verbose`. Mostra tutti i campi dei messaggi di registro. Non utilizzare con`--syslog`.
+ `--no-color`,`-nc`. Rimuovi la codifica a colori. La codifica a colori predefinita per i messaggi di registro utilizza il testo in grassetto rosso. Supporta solo terminali simili a Unix perché utilizza sequenze di escape ANSI.
+ `--before`,`-b`. Il numero di righe da mostrare prima di una voce di registro corrispondente. Il valore predefinito è 0.
+ `--after`,. `-a` Il numero di righe da mostrare dopo una voce di registro corrispondente. Il valore predefinito è 0.
+ `--syslog`. Elabora tutti i file di registro utilizzando il protocollo syslog definito da. RFC3164 Non utilizzare con `--log-dir` and. `--verbose` Il protocollo syslog utilizza il seguente formato:. `"<$Priority>$Timestamp $Host $Logger ($Class): $Message"` Se non si specifica un file di registro, la CLI di Greengrass legge i messaggi di registro dalle seguenti posizioni:`/var/log/messages`, o il. `/var/log/syslog` `/var/log/system.log` 

  AWS IoT Greengrass attualmente non supporta questa funzionalità sui dispositivi Windows core. 
+ `--max-log-queue-size`,`-m`. Il numero massimo di voci di registro da allocare alla memoria. Utilizzate questa opzione per ottimizzare l'utilizzo della memoria. L'impostazione predefinita è 100.

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando.  

```
$ sudo greengrass-cli logs get --verbose \
    --log-file /greengrass/v2/logs/greengrass.log \
    --filter deployment,serviceName=DeploymentService \
    --filter level=INFO \
    --time-window 2020-12-08T01:11:17,2020-12-08T01:11:22

2020-12-08T01:11:17.615Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=44d89f46-1a29-4044-ad89-5151213dfcbc, serviceName=DeploymentService, currentState=RUNNING}
2020-12-08T01:11:17.675Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.IotJobsHelper: Updating status of persisted deployment. {Status=SUCCEEDED, StatusDetails={detailed-deployment-status=SUCCESSFUL}, ThingName=MyThing, JobId=22d89f46-1a29-4044-ad89-5151213dfcbc
```

## elenca-parole chiave
<a name="logs-list-keywords"></a>

Mostra le parole chiave suggerite che è possibile utilizzare per filtrare i file di registro.

**Riepilogo**  

```
greengrass-cli logs list-keywords [arguments]
```

**Arguments (Argomenti)**  
Nessuno

**Output**  
Gli esempi seguenti mostrano l'output prodotto quando si esegue questo comando.  

```
$ sudo greengrass-cli logs list-keywords

Here is a list of suggested keywords for Greengrass log:
level=$str
thread=$str
loggerName=$str
eventType=$str
serviceName=$str
error=$str
```

```
$ sudo greengrass-cli logs list-keywords --syslog

Here is a list of suggested keywords for syslog:
priority=$int
host=$str
logger=$str
class=$str
```

## list-log-files
<a name="logs-list-log-files"></a>

Mostra i file di registro che si trovano in una directory specificata.

**Riepilogo**  

```
greengrass-cli logs list-log-files [arguments]
```

**Arguments (Argomenti)**  
`--log-dir`,`-ld`. Il percorso della directory in cui verificare la presenza di file di registro. 

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando.  

```
$ sudo greengrass-cli logs list-log-files -ld /greengrass/v2/logs/

/greengrass/v2/logs/aws.greengrass.Nucleus.log
/greengrass/v2/logs/main.log
/greengrass/v2/logs/greengrass.log
Total 3 files found.
```

# get-debug-password
<a name="gg-cli-get-debug-password"></a>

Utilizzate il `get-debug-password` comando per stampare una password generata casualmente per il componente della console di [debug locale](local-debug-console-component.md) (). `aws.greengrass.LocalDebugConsole` La password scade 8 ore dopo la generazione.

**Riepilogo**  

```
greengrass-cli get-debug-password
```

**Arguments (Argomenti)**  
Nessuno

**Output**  
L'esempio seguente mostra l'output prodotto quando si esegue questo comando.  

```
$ sudo greengrass-cli get-debug-password

Username: debug
Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
Password expires at: 2021-04-01T17:01:43.921999931-07:00
The local debug console is configured to use TLS security. The certificate is self-signed so you will need to bypass your web browser's security warnings to open the console.
Before you bypass the security warning, verify that the certificate fingerprint matches the following fingerprints.
SHA-256: 15 0B 2C E2 54 8B 22 DE 08 46 54 8A B1 2B 25 DE FB 02 7D 01 4E 4A 56 67 96 DA A6 CC B1 D2 C4 1B
SHA-1: BC 3E 16 04 D3 80 70 DA E0 47 25 F9 90 FA D6 02 80 3E B5 C1
```