

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
<a name="gg-cli-deployment"></a>

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

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

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

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

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

**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 delle ricette dei componenti.
+ `--artifactDir`,`-a`. Il percorso completo della cartella che contiene i file degli elementi 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 in maiuscolo.
+ `--groupId`,. `-g` Il gruppo di oggetti di destinazione per la distribuzione.
+ `--merge`,`-m`. Il nome e la versione del componente di destinazione da 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`. Il `posixUser``posixGroup`, e `windowsUser` le 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\_user:ggc\_group** o**HelloWorld:windowsUser=ggc\_user**. 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. Specifica un oggetto JSON serializzato o un percorso di file per 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, puoi impostare questo valore su per `2` limitare i processi di questo componente al 50% di utilizzo di ciascun core della CPU. Su un dispositivo con 1 core CPU, puoi impostare questo valore su `0.25` per limitare i processi di questo componente al 25% di utilizzo della CPU. Se imposti questo valore su un numero maggiore del numero di AWS IoT Greengrass core della CPU, il software 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 ](greengrass-nucleus-component.md) e della Greengrass CLI 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. Se il componente definisce una [ fase del ciclo di vita della ](component-recipe-reference.md#uninstall-lifecycle-definition) disinstallazione, il software AWS IoT Greengrass principale esegue lo script di disinstallazione prima di rimuovere il componente. Per rimuovere un componente che è stato unito da una distribuzione cloud, devi fornire l'ID di gruppo del gruppo di oggetti 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 quando una distribuzione non riesce. È possibile specificare due azioni:
  + `ROLLBACK`— Il dispositivo principale torna alla configurazione precedente quando la distribuzione non riesce.
  + `DO_NOTHING`— Il dispositivo principale mantiene le modifiche apportate alla distribuzione non riuscita.
**Nota**  
Il software AWS IoT Greengrass principale ignora la politica di gestione degli errori per le distribuzioni bootstrap. Una distribuzione bootstrap aggiorna la versione Greengrass nucleus o include un componente con una fase del ciclo di vita del bootstrap. [](component-recipe-reference.md#bootstrap-lifecycle-definition) Se una distribuzione bootstrap fallisce, il dispositivo principale torna alla configurazione precedente. Il rollback avviene anche se si imposta la politica di gestione degli errori su. `DO_NOTHING`

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

**Output**  
L’esempio seguente mostra l’output prodotto all’esecuzione di 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>}}
```

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

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 all’esecuzione di 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 all’esecuzione di 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}}
```