

Avviso di fine del supporto: il 7 ottobre 2026, AWS il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [Migrate](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html) from. AWS IoT Greengrass Version 1

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

# Distribuisci AWS IoT Greengrass i gruppi su un core AWS IoT Greengrass
<a name="deployments"></a>

Usa AWS IoT Greengrass i gruppi per organizzare le entità nel tuo ambiente edge. I gruppi vengono utilizzati anche per controllare il modo in cui le entità del gruppo interagiscono tra loro e con Cloud AWS. Ad esempio, solo le funzioni Lambda del gruppo vengono distribuite per l'esecuzione locale e solo i dispositivi del gruppo possono comunicare utilizzando il server MQTT locale.

Un gruppo deve includere un [core](gg-core.md), ovvero un AWS IoT dispositivo che esegue il AWS IoT Greengrass software Core. Il core funge da gateway perimetrale e fornisce AWS IoT Core funzionalità nell'ambiente perimetrale. A seconda delle esigenze aziendali, puoi anche aggiungere le seguenti entità a un gruppo:
+ **Dispositivi client**. Rappresentati come oggetti nel registro AWS IoT . Questi dispositivi devono eseguire [FreerTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-lib-gg-connectivity.html) o utilizzare [AWS IoT Device](what-is-gg.md#iot-device-sdk) SDK [AWS IoT Greengrass o Discovery](gg-discover-api.md) API per ottenere informazioni di connessione per il core. Solo i dispositivi client che fanno parte del gruppo possono connettersi al core.
+ **Funzioni Lambda**. Applicazioni serverless definite dall'utente che eseguono codice sul core. Le funzioni Lambda sono create AWS Lambda e referenziate da un gruppo Greengrass. Per ulteriori informazioni, consulta [Esegui le funzioni Lambda sul core AWS IoT Greengrass](lambda-functions.md).
+ **Connettori**. Applicazioni serverless predefinite che eseguono codice sul core. I connettori possono fornire un'integrazione integrata con l'infrastruttura locale, i protocolli dei dispositivi e altri servizi cloud. AWS Per ulteriori informazioni, consulta [Integrazione con servizi e protocolli tramite i connettori Greengrass](connectors.md).
+ **Abbonamenti**. Definiscono gli autori, i sottoscrittori e gli argomenti MQTT (o gli argomenti) autorizzati per la comunicazione MQTT.
+ **Risorse**. Riferimenti a [dispositivi e volumi](access-local-resources.md) locali, [modelli di apprendimento automatico](ml-inference.md) e [segreti](secrets.md), utilizzati per il controllo degli accessi tramite funzioni e connettori Greengrass Lambda.
+ **Registri.** Configurazioni di registrazione per i componenti di AWS IoT Greengrass sistema e le funzioni Lambda. Per ulteriori informazioni, consulta [Monitoraggio con AWS IoT Greengrass registri](greengrass-logs-overview.md).

Gestisci il tuo gruppo Greengrass in Cloud AWS e poi lo distribuisci su un core. La distribuzione copia la configurazione del gruppo nel file `group.json` sul dispositivo core. Questo file si trova in `greengrass-root/ggc/deployments/group`.

![\[Definizione cloud del gruppo Greengrass distribuito su un dispositivo core.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/group-deploy.png)


**Nota**  
Durante una distribuzione, il processo daemon Greengrass sul dispositivo core si arresta e quindi si riavvia.

## Distribuzione dei gruppi dalla console AWS IoT
<a name="manage-deployments-console"></a>

È possibile distribuire un gruppo e gestirne le distribuzioni dalla pagina di configurazione del gruppo nella console. AWS IoT 

**Nota**  
Per aprire questa pagina nella console, scegli **Dispositivi Greengrass**, quindi **Gruppi (V1)**, quindi in Gruppi **Greengrass, scegli il tuo gruppo**.

**Per distribuire la versione corrente del gruppo**  
+ **Dalla pagina di configurazione del gruppo, scegli Distribuisci.**

**Per visualizzare la cronologia della distribuzione del gruppo**  
La cronologia della distribuzione di un gruppo include la data e l'ora, la versione del gruppo e lo stato di ogni tentativo di distribuzione.  

1. Dalla pagina di configurazione del gruppo, scegli la scheda **Distribuzioni**.

1. **Per visualizzare ulteriori informazioni su una distribuzione, inclusi i messaggi di errore, scegli **Distribuzioni** dalla AWS IoT console, in Dispositivi Greengrass.**

**Per ripetere la distribuzione di un gruppo**  
Potresti voler ripetere una distribuzione se la distribuzione corrente ha esito negativo o ripristinare una versione di gruppo diversa.  

1. Dalla AWS IoT console, scegli **Dispositivi Greengrass**, quindi scegli **Gruppi (V1**).

1. Seleziona la scheda **Distribuzioni**.

1. **Scegli la distribuzione che desideri ridistribuire e scegli Redeploy.**

**Per reimpostare le distribuzioni di gruppo**  
È possibile reimpostare le distribuzioni di gruppo per spostare o eliminare un gruppo o rimuovere le informazioni sulla distribuzione. Per ulteriori informazioni, consulta [Reimpostazione delle distribuzioni](reset-deployments-scenario.md).  

1. Dalla AWS IoT console, scegli **Dispositivi Greengrass**, quindi scegli **Gruppi (V1**).

1. Seleziona la scheda **Distribuzioni**.

1. Scegli la distribuzione che desideri ripristinare e scegli **Ripristina** distribuzioni.

## Distribuzione di gruppi con l'API AWS IoT Greengrass
<a name="manage-deployments-api"></a>

L' AWS IoT Greengrass API fornisce le seguenti azioni per distribuire AWS IoT Greengrass gruppi e gestire le distribuzioni di gruppo. Puoi richiamare queste azioni dall' AWS IoT Greengrass API o dall' AWS CLI SDK. AWS 


| Azione | Descrizione | 
| --- | --- | 
| [CreateDeployment](https://docs.aws.amazon.com/greengrass/v1/apireference/createdeployment-post.html) |  Creare una distribuzione `NewDeployment` o `Redeployment`. Potresti voler ridistribuire una distribuzione se la distribuzione corrente ha esito negativo. In alternativa, potresti voler ridistribuire per ripristinare una versione di gruppo diversa. | 
| [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html) |  Restituisce lo stato di una distribuzione: `Building`, `InProgress`, `Success` o `Failure`. Puoi configurare Amazon EventBridge Events per ricevere notifiche di distribuzione. Per ulteriori informazioni, consulta [Ottenere le notifiche di distribuzione](deployment-notifications.md). | 
| [ListDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/listdeployments-get.html) | Restituisce la cronologia della distribuzione per il gruppo. | 
| [ResetDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/resetdeployments-post.html) |  Reimposta le distribuzioni per il gruppo. È possibile reimpostare le distribuzioni di gruppo per spostare o eliminare un gruppo o rimuovere le informazioni sulla distribuzione. Per ulteriori informazioni, consulta [Reimpostazione delle distribuzioni](reset-deployments-scenario.md). | 

**Nota**  
Per informazioni sulle operazioni di distribuzione in blocco, consulta [Creazione di distribuzioni in blocco per i gruppi](bulk-deploy-cli.md).

### Ottenere l'ID del gruppo
<a name="api-get-group-id"></a>

L'ID del gruppo viene comunemente utilizzato nelle operazioni API. Puoi utilizzare l'[ListGroups](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroups-get.html)azione per trovare l'ID del gruppo target dal tuo elenco di gruppi. Ad esempio, in AWS CLI, utilizzare il `list-groups` comando.

```
aws greengrass list-groups
```

È inoltre possibile includere l'opzione `query` per filtrare i risultati. Per esempio:
+ Per ottenere il gruppo creato più di recente:

  ```
  aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  ```
+ Per ottenere un gruppo in base al nome:

  ```
  aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
  ```

  I nomi dei gruppi non devono essere univoci, pertanto potrebbero essere restituiti più gruppi.

Di seguito è riportata una risposta `list-groups` di esempio: Le informazioni relative a ciascun gruppo includono l'ID del gruppo (nella proprietà `Id`) e l'ID della versione più recente del gruppo (nella proprietà `LatestVersion`). Per ottenere un'altra versione IDs per un gruppo, usa l'ID del gruppo con [ListGroupVersions](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupversions-get.html).

**Nota**  
<a name="find-group-ids-console"></a>Puoi trovare questi valori anche nella AWS IoT console. L'ID gruppo viene visualizzato nella pagina **Settings (Impostazioni)** del gruppo. IDs Le versioni del gruppo vengono visualizzate nella scheda **Distribuzioni del gruppo.**

```
{
    "Groups": [
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "Name": "MyFirstGroup",
            "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
            "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
            "CreationTimestamp": "2019-11-11T05:47:31.435Z",
            "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
        },
        {
            "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "Name": "GreenhouseSensors",
            "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
            "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
            "CreationTimestamp": "2020-01-07T19:58:36.774Z",
            "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
            "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
        },
        ...
    ]
}
```

Se non specifichi un Regione AWS, AWS CLI i comandi utilizzano la regione predefinita del tuo profilo. Per restituire gruppi in una regione diversa, includi l'*region*opzione. Per esempio:

```
aws greengrass list-groups --region us-east-1
```

## Panoramica del modello a oggetti di AWS IoT Greengrass gruppo
<a name="api-overview"></a>

Quando si programma con l' AWS IoT Greengrass API, è utile comprendere il modello a oggetti del gruppo Greengrass.

### Gruppi
<a name="api-overview-groups"></a>

Nell' AWS IoT Greengrass API, l'`Group`oggetto di primo livello è costituito da metadati e da un elenco di oggetti. `GroupVersion` `GroupVersion`gli oggetti sono associati a un `Group` by ID.

![\[Diagramma di un gruppo, costituito da metadati e da un elenco di versioni del gruppo.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/om-group.png)


### Versioni del gruppo
<a name="api-overview-versions"></a>

Gli oggetti `GroupVersion` definiscono l'appartenenza al gruppo. Ogni `GroupVersion` fa riferimento a una `CoreDefinitionVersion` e ad altre versioni dei componenti per ARN. Questi riferimenti determinano quali entità includere nel gruppo.

![\[Diagramma di una versione di gruppo che fa riferimento ad altri tipi di versione in base all'ARN.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/om-groupversion.png)


Ad esempio, per includere tre funzioni Lambda, un dispositivo e due abbonamenti nel gruppo, i riferimenti: `GroupVersion`
+ Il `CoreDefinitionVersion` che contiene il core richiesto.
+ Il `FunctionDefinitionVersion` che contiene le tre funzioni. 
+ Il `DeviceDefinitionVersion` che contiene il dispositivo client.
+ Il `SubscriptionDefinitionVersion` che contiene le due sottoscrizioni.

Il `GroupVersion` distribuito su un dispositivo core determina le entità disponibili nell'ambiente locale e il modo in cui possono interagire.

### Componenti del gruppo
<a name="api-overview-group-components"></a>

I componenti aggiunti ai gruppi hanno una gerarchia di tre livelli:
+ Una *definizione* che fa riferimento a un elenco di *DefinitionVersion*oggetti di un determinato tipo. Ad esempio, un `DeviceDefinition` fa riferimento a un elenco di oggetti `DeviceDefinitionVersion`.
+ Una *DefinitionVersion*che contiene un insieme di entità di un determinato tipo. Ad esempio, un `DeviceDefinitionVersion` contiene un elenco di oggetti `Device`.
+ Singole entità che definiscono le proprietà e il comportamento. Ad esempio, a `Device` definisce l'ARN del dispositivo client corrispondente nel AWS IoT registro, l'ARN del certificato del dispositivo e se la sua shadow locale si sincronizza automaticamente con il cloud.

  Puoi aggiungere i seguenti tipi di entità a un gruppo:
  + [Connector](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-connector.html)
  + [Core](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-core.html)
  + [Device](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-device.html)
  + [Funzione](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-function.html)
  + [Logger](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-logger.html)
  + [Risorsa](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-resource.html)
  + [Subscription](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-subscription.html)

L'esempio seguente `DeviceDefinition` fa riferimento a tre oggetti `DeviceDefinitionVersion` che contengono ciascuno più oggetti `Device`. In un gruppo viene utilizzato solo un oggetto `DeviceDefinitionVersion` alla volta.

![\[Un diagramma di una gerarchia di dispositivi, che consiste di DeviceDefinition, DeviceDefinitionVersion e oggetti Device.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/om-devicedefinition.png)


### Aggiornamento dei gruppi
<a name="api-update-groups"></a>

Nell' AWS IoT Greengrass API, si utilizzano le versioni per aggiornare la configurazione di un gruppo. Le versioni sono immutabili, quindi per aggiungere, rimuovere o modificare i componenti del gruppo, è necessario creare *DefinitionVersion*oggetti che contengano entità nuove o aggiornate.

È possibile associare nuovi *DefinitionVersions*oggetti a oggetti *Definition* nuovi o esistenti. Ad esempio, puoi utilizzare l'operazione `CreateFunctionDefinition` per creare un `FunctionDefinition` che include `FunctionDefinitionVersion` come versione iniziale oppure puoi utilizzare l'operazione `CreateFunctionDefinitionVersion` e fare riferimento a un `FunctionDefinition` esistente.

Dopo aver creato i componenti del gruppo, ne create uno `GroupVersion` contenente tutti *DefinitionVersion*gli oggetti che desiderate includere nel gruppo. Puoi quindi distribuire `GroupVersion`.

Per distribuire un `GroupVersion`, deve fare riferimento a un `CoreDefinitionVersion` che contiene esattamente uno `Core`. Tutte le entità a cui si fa riferimento devono essere membri del gruppo. Inoltre, un [ruolo di servizio Greengrass](service-role.md) deve essere associato all'utente Account AWS nel luogo in Regione AWS cui si sta implementando il. `GroupVersion`

**Nota**  
Le operazioni `Update` nell'API vengono utilizzate per modificare il nome di un `Group` o di un oggetto *Definition* del componente.

**Aggiornamento di entità che fanno riferimento a risorse AWS **

Le funzioni e le [risorse segrete di Greengrass Lambda definiscono le proprietà specifiche di Greengrass e fanno anche riferimento alle risorse](secrets.md) corrispondenti. AWS Per aggiornare queste entità, è possibile apportare modifiche alla AWS risorsa corrispondente anziché agli oggetti Greengrass. Ad esempio, le funzioni Lambda fanno riferimento a una funzione in AWS Lambda e definiscono anche il ciclo di vita e altre proprietà specifiche del gruppo Greengrass.
+ Per aggiornare il codice della funzione Lambda o le dipendenze pacchettizzate, apporta le modifiche. AWS Lambda Durante la successiva distribuzione di gruppo, queste modifiche vengono recuperate AWS Lambda e copiate nell'ambiente locale.
+ Per aggiornare [le proprietà specifiche di Greengrass](lambda-group-config.md), devi creare un `FunctionDefinitionVersion` che contiene le proprietà `Function` aggiornate.

**Nota**  
Le funzioni Lambda di Greengrass possono fare riferimento a una funzione Lambda tramite alias ARN o versione ARN. Se si fa riferimento all'ARN alias (consigliato), non è necessario aggiornare `FunctionDefinitionVersion` (o `SubscriptionDefinitionVersion`) quando si pubblica una nuova versione della funzione in AWS Lambda. Per ulteriori informazioni, consulta [Fai riferimento alle funzioni Lambda per alias o versione](lambda-functions.md#lambda-versions-aliases).

## Consulta anche
<a name="deployments-see-also"></a>
+ [Ottenere le notifiche di distribuzione](deployment-notifications.md)
+ [Reimpostazione delle distribuzioni](reset-deployments-scenario.md)
+ [Creazione di distribuzioni in blocco per i gruppi](bulk-deploy-cli.md)
+ [Risoluzione dei problemi di distribuzione](gg-troubleshooting.md#gg-troubleshooting-deploymentissues)<a name="see-also-gg-api-cli"></a>
+ [AWS IoT Greengrass Version 1 Documentazione di riferimento API](https://docs.aws.amazon.com/greengrass/v1/apireference/)
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass comandi](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html) nel AWS CLI Command *Reference*

# Ottenere le notifiche di distribuzione
<a name="deployment-notifications"></a>

Le regole EventBridge degli eventi di Amazon ti forniscono notifiche sui cambiamenti di stato per le distribuzioni del tuo gruppo Greengrass. EventBridge fornisce un flusso quasi in tempo reale di eventi di sistema che descrive i cambiamenti nelle risorse. AWS AWS IoT Greengrass invia questi eventi EventBridge *a almeno una volta*. Ciò significa che AWS IoT Greengrass potrebbe inviare più copie di un determinato evento per garantire la consegna. Inoltre, i listener di eventi potrebbero non ricevere gli eventi nell'ordine in cui si sono verificati.

**Nota**  
Amazon EventBridge è un servizio di bus di eventi che puoi utilizzare per connettere le tue applicazioni con dati provenienti da una varietà di fonti, come [i dispositivi principali Greengrass](telemetry.md) e le notifiche di distribuzione. Per ulteriori informazioni, consulta [What is Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) nella *Amazon EventBridge User Guide*.

AWS IoT Greengrass emette un evento quando le distribuzioni di gruppo cambiano stato. È possibile creare una EventBridge regola che venga eseguita per tutte le transizioni di stato o per le transizioni verso gli stati specificati. Quando una distribuzione entra in uno stato che avvia una regola, EventBridge richiama le azioni target definite nella regola. In questo modo è possibile inviare notifiche, acquisire informazioni sugli eventi, intraprendere azioni correttive o avviare altri eventi in risposta a una modifica dello stato. Ad esempio, è possibile creare regole per i seguenti casi d'uso:
+ Avvia le operazioni successive all'implementazione, come il download delle risorse e la notifica al personale.
+ Inviare notifiche in caso di distribuzione riuscita o non riuscita.
+ Pubblicare parametri personalizzati sugli eventi di distribuzione.

AWS IoT Greengrass emette un evento quando una distribuzione entra nei seguenti stati:`Building`,, `InProgress` e. `Success` `Failure`

**Nota**  
Il monitoraggio dello stato di un'operazione di [distribuzione di massa](bulk-deploy-cli.md) non è attualmente supportato. Tuttavia, AWS IoT Greengrass emette eventi di modifica dello stato per le implementazioni di singoli gruppi che fanno parte di una distribuzione di massa.

## Evento di modifica dello stato della distribuzione del gruppo
<a name="events-message-format"></a>

L'[evento](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html) per una modifica dello stato della distribuzione utilizza il formato seguente:

```
{
    "version":"0",
    "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8",
    "detail-type":"Greengrass Deployment Status Change",
    "source":"aws.greengrass",
    "account":"123456789012",
    "time":"2018-03-22T00:38:11Z",
    "region":"us-west-2",
    "resources":[],
    "detail":{    
        "group-id": "284dcd4e-24bc-4c8c-a770-EXAMPLEf03b8",
        "deployment-id": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681",
        "deployment-type": "NewDeployment|Redeployment|ResetDeployment|ForceResetDeployment",
        "status": "Building|InProgress|Success|Failure"
    }
}
```

È possibile creare regole che si applicano a uno o più gruppi. È possibile filtrare le regole in base a uno o più dei seguenti tipi di distribuzione e stati di distribuzione:

**Tipi di implementazione**  
+ `NewDeployment`. La prima implementazione di una versione di gruppo.
+ `ReDeployment`. Una ridistribuzione di una versione di gruppo.
+ `ResetDeployment`. Elimina le informazioni di distribuzione archiviate Cloud AWS internamente e nel AWS IoT Greengrass core. Per ulteriori informazioni, consulta [Reimpostazione delle distribuzioni](reset-deployments-scenario.md).
+ `ForceResetDeployment`. Elimina le informazioni di distribuzione memorizzate nel file Cloud AWS e ne segnala l'esito positivo senza attendere che il core risponda. Inoltre, elimina le informazioni di distribuzione archiviate sul core se il core è connesso o quando si connette in seguito.

**Stati della distribuzione**  
+ `Building`. AWS IoT Greengrass sta convalidando la configurazione del gruppo e sta creando elementi di distribuzione.
+ `InProgress`. La distribuzione è in corso sul AWS IoT Greengrass core.
+ `Success`. L'implementazione ha avuto successo.
+ `Failure`. La distribuzione non è riuscita.

È possibile che gli eventi vengano duplicati o non funzionino. Per determinare l'ordine degli eventi, utilizza la proprietà `time`.

**Nota**  
AWS IoT Greengrass non utilizza la `resources` proprietà, quindi è sempre vuota.

## Prerequisiti per la creazione di regole EventBridge
<a name="create-events-rule-prereqs"></a>

Prima di creare una EventBridge regola per AWS IoT Greengrass, procedi come segue:
+ Acquisisci familiarità con eventi, regole e obiettivi in. EventBridge
+ Crea e configura gli obiettivi richiamati dalle tue regole. EventBridge Le regole possono richiamare molti tipi di target, tra cui:
  + Amazon Simple Notification Service (Amazon SNS)
  + AWS Lambda funzioni
  + Amazon Kinesis Video Streams
  + Code di Amazon Simple Queue Service (Amazon SQS)

Per ulteriori informazioni, consulta [What is Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) e [Guida introduttiva ad Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html) nella *Amazon EventBridge User Guide*.

## Configurazione delle notifiche di distribuzione (console)
<a name="create-events-rule-console"></a>

Utilizza i seguenti passaggi per creare una EventBridge regola che pubblichi un argomento di Amazon SNS quando lo stato di distribuzione cambia per un gruppo. Ciò consente a server Web, indirizzi e-mail e altri sottoscrittori di argomenti di rispondere all'evento. Per ulteriori informazioni, consulta [Creazione di una EventBridge regola che si attiva su un evento da una AWS risorsa](https://docs.aws.amazon.com/eventbridge/latest/userguide/create-eventbridge-rule.html) nella *Amazon EventBridge User Guide*.

1. Apri la [ EventBridgeconsole Amazon](https://console.aws.amazon.com/events/).

1. Nel pannello di navigazione, scegli **Regole**.

1. Scegli **Crea regola**.

1. Inserisci un nome e una descrizione per la regola.

   Una regola non può avere lo stesso nome di un'altra regola nella stessa Regione e sullo stesso router di eventi.

1. Per **Select event bus** (Seleziona bus di eventi), scegli il bus di eventi che desideri associare a questa regola. Se la regola deve cercare eventi corrispondenti provenienti dal tuo account, seleziona **Bus di eventi predefiniti di AWS **. Quando un AWS servizio del tuo account emette un evento, questo passa sempre al bus eventi predefinito del tuo account.

1. Per **Tipo di regola**, scegli **Regola con un modello di eventi**.

1. Scegli **Next (Successivo)**.

1. Per **Origine evento**, scegli **Servizi AWS **.

1. Per **Event pattern**, scegli **AWS servizi**.

1. Per l'**AWS assistenza**, scegli Greengrass.

1. Per **Tipo evento**, scegliere **Modifica stato distribuzione Greengrass**.
**Nota**  
La **chiamata AWS API tramite** il tipo di CloudTrail evento si basa sull' AWS IoT Greengrass integrazione con AWS CloudTrail. È possibile utilizzare questa opzione per creare regole avviate da chiamate di lettura o scrittura all' AWS IoT Greengrass API. Per ulteriori informazioni, consulta [Registrazione delle chiamate AWS IoT Greengrass API con AWS CloudTrail](logging-using-cloudtrail.md).

1. Scegli gli stati di distribuzione che avviano una notifica.
   + Per ricevere notifiche per tutti gli eventi di modifica dello stato, scegliere **Qualsiasi stato**.
   + Per ricevere notifiche solo per alcuni eventi di modifica dello stato, scegliere **Stato specifico**, e quindi scegliere gli stati di destinazione.

1. Scegli i tipi di distribuzione che avviano una notifica.
   + Per ricevere notifiche per tutti i tipi di distribuzione, scegliere **Qualsiasi stato**.
   + Per ricevere notifiche solo per alcuni tipi di distribuzione, scegliere **Stato specifico** e quindi scegliere i tipi di distribuzione di destinazione.

1. Scegli **Next (Successivo)**.

1. Per **Tipi di destinazione**, scegli **servizio AWS **.

1. Per **Seleziona una destinazione**, configura la tua destinazione. Questo esempio utilizza un argomento Amazon SNS, ma puoi configurare altri tipi di destinazione per inviare notifiche.

   1. In **Target (Destinazione)**, scegli **SNS topic (Argomento SNS)**.

   1. Per **Argomento**, scegli l'argomento di destinazione.

   1. Scegli **Next (Successivo)**.

1. In **Tag**, definisci i tag per la regola o lascia i campi vuoti.

1. Scegli **Next (Successivo)**.

1. Rivedi i dettagli della regola e scegli **Crea regola**.

## Configurazione delle notifiche di distribuzione (CLI)
<a name="create-events-rule-cli"></a>

Utilizza i seguenti passaggi per creare una EventBridge regola che pubblichi un argomento di Amazon SNS quando lo stato di distribuzione cambia per un gruppo. Ciò consente a server Web, indirizzi e-mail e altri sottoscrittori di argomenti di rispondere all'evento.

1. Crea la regola.
   + *group-id*Sostituiscilo con l'ID del tuo AWS IoT Greengrass gruppo.

   ```
   aws events put-rule \
     --name TestRule \
     --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"group-id\": [\"group-id\"]}}"
   ```

   Le proprietà omesse dal modello vengono ignorate.

1. Aggiungi l'argomento come destinazione della regola.
   + Sostituisci *topic-arn* con l'ARN del tuo argomento Amazon SNS.

   ```
   aws events put-targets \
     --rule TestRule \
     --targets "Id"="1","Arn"="topic-arn"
   ```
**Nota**  
Per consentire EventBridge ad Amazon di indicare il tuo argomento di riferimento, devi aggiungere una politica basata sulle risorse all'argomento. Per ulteriori informazioni, consulta le [autorizzazioni di Amazon SNS](https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions) nella *Amazon EventBridge * User Guide.

Per ulteriori informazioni, consulta la sezione [Eventi e modelli di eventi EventBridge nella](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) *Amazon EventBridge User Guide*.

## Configurazione delle notifiche di distribuzione (CloudFormation)
<a name="create-events-rule-cloudformation"></a>

Utilizza CloudFormation i modelli per creare EventBridge regole che inviano notifiche sui cambiamenti di stato per le implementazioni del tuo gruppo Greengrass. Per ulteriori informazioni, consulta il [riferimento ai tipi di EventBridge risorse Amazon](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Events.html) nella *Guida AWS CloudFormation per l'utente*.

## Consulta anche
<a name="deployment-notifications-see-also"></a>
+ [Distribuisci AWS IoT Greengrass i gruppi su un core AWS IoT Greengrass](deployments.md)
+ [Che cos'è Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) nella *Amazon EventBridge User Guide*

# Reimpostazione delle distribuzioni
<a name="reset-deployments-scenario"></a>

Questa funzionalità è disponibile per AWS IoT Greengrass Core v1.1 e versioni successive.

È possibile reimpostare le distribuzioni di un gruppo su:
+ Elimina il gruppo, ad esempio quando desideri spostare il nucleo del gruppo in un altro gruppo o se il nucleo del gruppo è stato ridisegnato. Prima di eliminare un gruppo, è necessario reimpostare le distribuzioni del gruppo per utilizzare il core con un altro gruppo Greengrass.
+ Spostare il core del gruppo a un gruppo diverso.
+ Ripristinare il gruppo allo stato precedente a eventuali distribuzioni.
+ Rimuovere la configurazione di distribuzione dal dispositivo core.
+ Eliminare dati sensibili dal dispositivo core o dal cloud.
+ Distribuire un nuovo gruppo di configurazione a un core senza dover sostituire il core con un altro nel gruppo corrente.

**Nota**  
La funzionalità di reimpostazione delle distribuzioni non è disponibile in AWS IoT Greengrass Core Software v1.0.0. Non è possibile eliminare un gruppo distribuito utilizzando v1.0.0.

L'operazione di ripristino delle distribuzioni elimina prima tutte le informazioni di distribuzione archiviate nel cloud per un determinato gruppo. Quindi ordina al dispositivo principale del gruppo di ripulire anche tutte le informazioni relative alla distribuzione (funzioni Lambda, registri utente, database shadow e certificato del server, ma non i certificati core `config.json` definiti dall'utente o Greengrass). Non è possibile reimpostare le distribuzioni per un gruppo se il gruppo dispone di una distribuzione con stato `In Progress` o `Building`.

## Reimposta le distribuzioni dalla console AWS IoT
<a name="reset-deployments-console"></a>

È possibile ripristinare le distribuzioni di gruppo dalla pagina di configurazione del gruppo nella console. AWS IoT 

1. <a name="console-gg-groups"></a>Nel riquadro di navigazione della AWS IoT console, in **Gestione**, espandi **i dispositivi Greengrass**, quindi scegli **Gruppi (V1**).

1. Scegliere il gruppo target.

1. **Dalla scheda **Distribuzioni, scegli Reimposta** distribuzioni.**

1. **Nella finestra di dialogo **Reimposta le distribuzioni per questo Greengrass Group**, digita **confirm** per concordare e scegli Reimposta distribuzione.**

## Reimposta le distribuzioni con l'API AWS IoT Greengrass
<a name="reset-deployments-api"></a>

Puoi utilizzare l'`ResetDeployments`azione nell' AWS IoT Greengrass API o nell' AWS CLI AWS SDK per reimpostare le distribuzioni. Gli esempi in questo argomento utilizzano l'interfaccia a riga di comando.

```
aws greengrass reset-deployments --group-id GroupId [--force]
```Argomenti del comando CLI `reset-deployments`:

`--group-id`  
L'ID del gruppo. Utilizzare il comando `list-groups` per ottenere questo valore.

`--force`  
Opzionale. Utilizzare questo parametro se il dispositivo core del gruppo è stato smarrito, rubato o distrutto. Questa opzione determina la procedura di reimpostazione distribuzioni per segnalare la riuscita una volta che tutte le informazioni di distribuzione nel cloud sono state ripulite, senza attendere che un dispositivo core risponda. Tuttavia, se il dispositivo core è o diventa attivo, esegue anche operazioni di pulizia.

L'output del comando dell'interfaccia a riga di comando `reset-deployments` è simile al seguente:

```
{
    "DeploymentId": "4db95ef8-9309-4774-95a4-eea580b6ceef",
    "DeploymentArn": "arn:aws:greengrass:us-west-2:106511594199:/greengrass/groups/b744ed45-a7df-4227-860a-8d4492caa412/deployments/4db95ef8-9309-4774-95a4-eea580b6ceef"
}
```

È possibile controllare lo stato della reimpostazione distribuzioni con il comando CLI `get-deployment-status`:

```
aws greengrass get-deployment-status --deployment-id DeploymentId --group-id GroupId
```Argomenti del comando CLI `get-deployment-status`:

`--deployment-id`  
L'ID della distribuzione.

`--group-id`  
L'ID del gruppo.

L'output del comando dell'interfaccia a riga di comando `get-deployment-status` è simile al seguente:

```
{
    "DeploymentStatus": "Success",
    "UpdatedAt": "2017-04-04T00:00:00.000Z"
}
```

`DeploymentStatus` è impostato su `Building` quando la reimpostazione distribuzioni è in fase di preparazione. Quando la distribuzione di ripristino è pronta ma il AWS IoT Greengrass core non ha ripreso la distribuzione ripristinata, lo è. `DeploymentStatus` `InProgress`

Se l'operazione di ripristino non riesce, le informazioni di errore vengono restituite nella risposta.

## Consulta anche
<a name="reset-deployments-see-also"></a>
+ [Distribuisci AWS IoT Greengrass i gruppi su un core AWS IoT Greengrass](deployments.md)
+ [ResetDeployments ](https://docs.aws.amazon.com/greengrass/v1/apireference/resetdeployments-post.html)nell'*AWS IoT Greengrass Version 1 API Reference*
+ [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html)nell'*AWS IoT Greengrass Version 1 API Reference*

# Creazione di distribuzioni in blocco per i gruppi
<a name="bulk-deploy-cli"></a>

 Puoi utilizzare semplici chiamate API per distribuire un numero elevato di gruppi Greengrass contemporaneamente. Queste distribuzioni vengono attivate a una velocità adattiva con un limite superiore fisso. 

 Questo tutorial descrive come utilizzare il per AWS CLI creare e monitorare una distribuzione di gruppo in blocco in. AWS IoT Greengrass L'esempio di distribuzione di massa di questo tutorial include più gruppi. Puoi utilizzare l'esempio nella tua implementazione per aggiungere il numero di gruppi desiderato. 

 Il tutorial include le seguenti fasi di alto livello: 

1. [Creazione e caricamento del file di input della distribuzione di massa](#bulk-deploy-cli-create-input-file)

1. [Crea e configura un ruolo di esecuzione IAM per distribuzioni di massa](#bulk-deploy-cli-create-role)

1. [Autorizzazione per l'accesso al bucket S3 da parte del ruolo di esecuzione](#bulk-deploy-cli-modify-bucket)

1. [Distribuzione dei gruppi](#bulk-deploy-cli-start-bulk-deployments)

1. [Test della distribuzione](#bulk-deploy-cli-test)

## Prerequisiti
<a name="bulk-deploy-cli-prerequisites"></a>

 Per completare questo tutorial, è necessario quanto segue: 
+  Uno o più gruppi Greengrass distribuibili. Per ulteriori informazioni sulla creazione di core e gruppi AWS IoT Greengrass , consulta [Iniziare con AWS IoT Greengrass](gg-gs.md). 
+  AWS CLI Installato e configurato sul tuo computer. Per ulteriori informazioni, consulta la [Guida per l'utente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html). 
+ Un bucket S3 creato nello stesso modo Regione AWS di. AWS IoT Greengrass Per informazioni, consulta [Creazione e configurazione di un bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-configure-bucket.html) nella Guida per l'utente di *Amazon Simple Storage Service*. 
**Nota**  
 Al momento, i bucket abilitati per SSE KMS non sono supportati. 

## Fase 1: creazione e caricamento del file di input della distribuzione di massa
<a name="bulk-deploy-cli-create-input-file"></a>

 In questa fase, crei un file di input per la distribuzione e lo carichi nel tuo bucket Amazon S3. Questo file è un file JSON serializzato e delimitato da righe che contiene informazioni su ciascun gruppo della distribuzione di massa. AWS IoT Greengrass utilizza queste informazioni per distribuire ciascun gruppo per tuo conto quando inizializzi la distribuzione di gruppo in blocco. 

1.  Eseguire il seguente comando per ottenere il `groupId` per ciascun gruppo da distribuire. Immettere `groupId` nel file di input della distribuzione di massa in modo che AWS IoT Greengrass possa identificare ciascun gruppo da distribuire. 
**Nota**  
<a name="find-group-ids-console"></a>Puoi trovare questi valori anche nella console. AWS IoT L'ID gruppo viene visualizzato nella pagina **Settings (Impostazioni)** del gruppo. IDs Le versioni del gruppo vengono visualizzate nella scheda **Distribuzioni del gruppo.**

   ```
   aws greengrass list-groups
   ```

    La risposta contiene informazioni su ogni gruppo del tuo AWS IoT Greengrass account: 

   ```
   {
     "Groups": [
       {
         "Name": "string",
         "Id": "string",
         "Arn": "string",
         "LastUpdatedTimestamp": "string",
         "CreationTimestamp": "string",
         "LatestVersion": "string",
         "LatestVersionArn": "string"
       }
     ],
     "NextToken": "string"
   }
   ```

    Eseguire il seguente comando per ottenere il `groupVersionId` di ciascun gruppo da distribuire. 

   ```
   list-group-versions --group-id groupId
   ```

    La risposta contiene informazioni su tutte le versioni del gruppo. Prendi nota del `Version` valore della versione di gruppo che desideri utilizzare. 

   ```
   {
     "Versions": [
       {
         "Arn": "string",
         "Id": "string",
         "Version": "string",
         "CreationTimestamp": "string"
       }
     ],
     "NextToken": "string"
   }
   ```

1.  Nel terminale o nell'editor che preferisci, crea un file*MyBulkDeploymentInputFile*, usando l'esempio seguente. Questo file contiene informazioni su ciascun AWS IoT Greengrass gruppo da includere in una distribuzione di massa. Benché questo esempio definisca più gruppi, per questo tutorial il tuo file potrà contenerne solo uno. 
**Nota**  
 Le dimensioni di questo file devono essere inferiori a 100 MB. 

   ```
   {"GroupId":"groupId1", "GroupVersionId":"groupVersionId1", "DeploymentType":"NewDeployment"}
   {"GroupId":"groupId2", "GroupVersionId":"groupVersionId2", "DeploymentType":"NewDeployment"}
   {"GroupId":"groupId3", "GroupVersionId":"groupVersionId3", "DeploymentType":"NewDeployment"}
   ...
   ```

    Ciascun record (o riga) contiene un oggetto gruppo. Ogni oggetto gruppo contiene i corrispondenti `GroupId` e `GroupVersionId` e un `DeploymentType`. Attualmente AWS IoT Greengrass supporta solo i tipi di distribuzione in `NewDeployment` blocco. 

    Salvare e chiudere il file. Prendere nota del percorso del file. 

1.  Usa il seguente comando nel tuo terminale per caricare il file di input nel tuo bucket Amazon S3. Specificare il percorso e il nome del file. Per informazioni, consulta [Aggiunta di un oggetto a un bucket](https://docs.aws.amazon.com/AmazonS3/latest/gsg/PuttingAnObjectInABucket.html). 

   ```
   aws s3 cp path/MyBulkDeploymentInputFile s3://amzn-s3-demo-bucket/
   ```

## Fase 2: creazione e configurazione di un ruolo di esecuzione IAM
<a name="bulk-deploy-cli-create-role"></a>

 In questo passaggio, utilizzi la console IAM per creare un ruolo di esecuzione autonomo. Quindi stabilisci una relazione di fiducia tra il ruolo AWS IoT Greengrass e ti assicuri che il tuo utente IAM disponga `PassRole` dei privilegi per il ruolo di esecuzione. Ciò consente di AWS IoT Greengrass assumere il ruolo di esecuzione e creare le distribuzioni per conto dell'utente. 

1.  Usa la seguente policy per creare un ruolo di esecuzione. Questo documento della policy consente a AWS IoT Greengrass di accedere al file di input della distribuzione di massa al momento delle creazione automatica di ciascuna distribuzione. 

    Per ulteriori informazioni sulla creazione di ruolo IAM e la delega delle autorizzazioni, consulta [Creazione di ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "greengrass:CreateDeployment",
               "Resource": [
               "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId1",
       "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId2",
       "arn:aws:greengrass:us-east-1:123456789012:/greengrass/groups/groupId3"
               ]
           }
       ]
   }
   ```

------
**Nota**  
 Questa policy deve disporre di una risorsa per ciascun gruppo o versione del gruppo nel file di input della distribuzione di massa da distribuire da parte di AWS IoT Greengrass. Per consentire l'accesso a tutti i gruppi di risorse, per `Resource`, specificare un asterisco:   

   ```
   "Resource": ["*"]
   ```

1.  Modificare la relazione di trust per il ruolo di esecuzione in modo da includere AWS IoT Greengrass. Ciò consente a AWS IoT Greengrass di utilizzare il tuo ruolo di esecuzione e le relative autorizzazioni collegate. Per informazioni, consulta [Modifica della relazione di trust per un ruolo esistente](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/edit_trust.html). 

   Ti consigliamo di includere anche le chiavi del contesto `aws:SourceArn` e della condizione `aws:SourceAccount` globale nella tua politica di fiducia per evitare il *confuso problema della vice* sicurezza. Le chiavi di contesto delle condizioni limitano l'accesso per consentire solo le richieste che provengono dall'account specificato e dall'area di lavoro Greengrass. Per ulteriori informazioni sul problema del "confused deputy", consulta [Prevenzione del problema "confused deputy" tra servizi](cross-service-confused-deputy-prevention.md).

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "greengrass.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
           "aws:SourceAccount": "123456789012"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:us-east-1:123456789012:*"
           }
         }
       }
     ]
   }
   ```

------

1.  Concedi `PassRole` le autorizzazioni IAM per il tuo ruolo di esecuzione al tuo utente IAM. Questo utente IAM è quello utilizzato per avviare la distribuzione in blocco. `PassRole`le autorizzazioni consentono all'utente IAM di passare il ruolo di esecuzione all'uso. AWS IoT Greengrass Per ulteriori informazioni, consulta [Concedere a un utente le autorizzazioni per passare un ruolo a un servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html). AWS 

    Utilizza l'esempio seguente per aggiornare la policy IAM associata al tuo ruolo di esecuzione. Se necessario, è possibile modificarlo. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Stmt1508193814000",
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": [
                   "arn:aws:iam::123456789012:user/executionRoleArn"
               ],
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": "greengrass.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

## Fase 3: autorizzazione per l'accesso al bucket S3 da parte del ruolo di esecuzione
<a name="bulk-deploy-cli-modify-bucket"></a>

 Per avviare la distribuzione in blocco, il ruolo di esecuzione deve essere in grado di leggere il file di input della distribuzione di massa dal bucket Amazon S3. Allega la seguente policy di esempio al tuo bucket Amazon S3 in modo che le sue `GetObject` autorizzazioni siano accessibili al tuo ruolo di esecuzione. 

 Per ulteriori informazioni, consulta [In che modo aggiungere una policy del bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html) 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "examplePolicy",
    "Statement": [
        {
            "Sid": "Stmt1535408982966",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "executionRoleArn"
                ]
            },
            "Action": "s3:GetObject",
            "Resource":
            "arn:aws:s3:::amzn-s3-demo-bucket/objectKey"
        }
    ]
}
```

------

 Utilizzare il comando seguente nel terminale per verificare la policy del bucket. 

```
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket
```

**Nota**  
 Puoi modificare direttamente il tuo ruolo di esecuzione per concedergli invece l'autorizzazione alle autorizzazioni del `GetObject` tuo bucket Amazon S3. A tale scopo, collegare la seguente policy di esempio al ruolo di esecuzione.   

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/objectKey"
        }
    ]
}
```

## Fase 4: distribuzione dei gruppi
<a name="bulk-deploy-cli-start-bulk-deployments"></a>

 In questo fase, inizierai un'operazione di distribuzione di massa di tutte le versioni dei gruppi configurate nel file di input della distribuzione di massa. L'operazione di distribuzione per tutte le versioni di gruppo è di tipo `NewDeploymentType`. 

**Nota**  
 Non potrai utilizzare **StartBulkDeployment** mentre è in esecuzione un'altra distribuzione di massa dallo stesso account. La richiesta viene respinta. 

1.  Per avviare la distribuzione di massa, utilizzare il comando seguente: 

    Ti consigliamo di includere un token `X-Amzn-Client-Token` in ciascuna richiesta **StartBulkDeployment**. Tali richieste sono idempotenti rispetto al token e ai parametri della richiesta. Il token può essere qualsiasi stringa univoca che preveda una distinzione tra lettere maiuscole e minuscole, composta da un massimo di 64 caratteri ASCII. 

   ```
   aws greengrass start-bulk-deployment --cli-input-json "{
             "InputFileUri":"URI of file in S3 bucket", 
             "ExecutionRoleArn":"ARN of execution role",
             "AmznClientToken":"your Amazon client token"
             }"
   ```

    Il comando deve restituire correttamente il codice `200`, oltre alla seguente risposta: 

   ```
   {
     "bulkDeploymentId": UUID
   }
   ```

    Prendere nota dell'ID della distribuzione di massa. Potrà essere utilizzato per controllare lo stato della distribuzione di massa. 
**Nota**  
Sebbene le operazioni di distribuzione in blocco non siano attualmente supportate, puoi creare regole di EventBridge eventi Amazon per ricevere notifiche sulle modifiche allo stato della distribuzione per singoli gruppi. Per ulteriori informazioni, consulta [Ottenere le notifiche di distribuzione](deployment-notifications.md).

1.  Utilizzare il seguente comando per controllare lo stato della distribuzione di massa: 

   ```
   aws greengrass get-bulk-deployment-status --bulk-deployment-id 1234567
   ```

    Il comando deve restituire il codice di stato `200` oltre a un payload JSON di informazioni: 

   ```
    {
     "BulkDeploymentStatus": Running,
     "Statistics": {
        "RecordsProcessed": integer,
        "InvalidInputRecords": integer,
        "RetryAttempts": integer
     },
     "CreatedAt": "string",
     "ErrorMessage": "string",
     "ErrorDetails": [
       {
         "DetailedErrorCode": "string",
         "DetailedErrorMessage": "string"
       }
     ]
   }
   ```

    `BulkDeploymentStatus` contiene lo stato corrente dell'esecuzione di massa. L'esecuzione può avere uno di sei diversi stati: 
   + `Initializing`. La richiesta di distribuzione in blocco è stata ricevuta e l'esecuzione si sta preparando per l'avvio.
   + `Running`. L'esecuzione della distribuzione in blocco è iniziata.
   + `Completed`. L'esecuzione della distribuzione in blocco ha terminato l'elaborazione di tutti i record.
   + `Stopping`. L'esecuzione della distribuzione in blocco ha ricevuto un comando di interruzione e verrà interrotta a breve. Non potrai avviare una nuova distribuzione di massa se lo stato di quella precedente è `Stopping`.
   + `Stopped`. L'esecuzione della distribuzione in blocco è stata interrotta manualmente.
   + `Failed`. L'esecuzione della distribuzione in blocco ha rilevato un errore ed è terminata. Puoi trovare i dettagli dell'errore nel campo `ErrorDetails`.

    Il payload JSON, inoltre, include informazioni statistiche sull'avanzamento della distribuzione di massa. Puoi utilizzare tali informazioni per stabilire quanti gruppi sono stati elaborati e quanti non lo sono stati. Le informazioni statistiche includono: 
   +  `RecordsProcessed`: il numero di gruppi di record che si è tentato di elaborare. 
   +  `InvalidInputRecords`: il numero totale di record che hanno restituito un errore irreversibile. Ad esempio, questo può verificarsi se un gruppo di record del file di input utilizza un formato non valido o specifica una versione di gruppo inesistente oppure se l'esecuzione non concede l'autorizzazione per la distribuzione di un gruppo o di una versione del gruppo. 
   +  `RetryAttempts`: il numero totale di tentativi di distribuzione che hanno restituito un errore irreversibile. Ad esempio, un nuovo tentativo viene attivato se quello di distribuzione di un gruppo precedente restituisce un errore di throttling. Hai a disposizione cinque tentativi di distribuzione del gruppo. 

    In caso di errore di esecuzione della distribuzione di massa, il payload include anche una sezione `ErrorDetails` utilizzabile per la risoluzione dei problemi. Contiene informazioni sulla causa dell'errore di esecuzione. 

    Puoi controllare periodicamente lo stato della distribuzione di massa per accertarti che stia procedendo come previsto. Al termine della distribuzione, `RecordsProcessed` dovrebbe essere pari al numero di gruppi di distribuzione del file di input della distribuzione di massa. Questo indica sono stati elaborati tutti i record. 

## Fase 5: test della distribuzione
<a name="bulk-deploy-cli-test"></a>

 Utilizza il comando **ListBulkDeployments** per trovare l'ID della distribuzione di massa. 

```
aws greengrass list-bulk-deployments
```

 Questo comando restituisce un elenco di tutte le distribuzioni di massa, dalla più recente a quella meno recente, incluso `BulkDeploymentId`. 

```
{
  "BulkDeployments": [
    {
      "BulkDeploymentId": 1234567,
      "BulkDeploymentArn": "string",
      "CreatedAt": "string"
    }
  ],
  "NextToken": "string"
}
```

 Chiamare ora il comando **ListBulkDeploymentDetailedReports** per raccogliere informazioni dettagliate su ciascuna distribuzione. 

```
aws greengrass list-bulk-deployment-detailed-reports --bulk-deployment-id 1234567 
```

 Il comando deve restituire il codice di stato `200` insieme a un payload JSON di informazioni: 

```
{ 
  "BulkDeploymentResults": [
    {
      "DeploymentId": "string",
      "GroupVersionedArn": "string",
      "CreatedAt": "string",
      "DeploymentStatus": "string",
      "ErrorMessage": "string",
      "ErrorDetails": [
        {
          "DetailedErrorCode": "string",
          "DetailedErrorMessage": "string"
        }
      ]
    }
  ],
  "NextToken": "string"
}
```

 Questo payload include in genere un elenco impaginato di ciascuna distribuzione e del relativo stato, dalla più recente alla meno recente. Contiene inoltre altre informazioni in caso di errore di esecuzione della distribuzione di massa. Anche in questo caso, il numero totale di distribuzioni in elenco deve corrispondere al numero di gruppi identificati nel file di input della distribuzione di massa. 

 Le informazioni restituite possono modificare finché le distribuzioni finché non sono nello stato terminale (esito positivo o negativo). Questo comando può essere richiamato periodicamente fino a quel momento. 

## Risoluzione dei problemi di distribuzione di massa
<a name="bulk-deploy-cli-troubleshooting"></a>

 Se la distribuzione di massa non viene completata correttamente, puoi provare a eseguire la procedura di risoluzione dei problemi riportata di seguito. Eseguire i comandi nel terminale. 

### Risoluzione degli errori del file di input
<a name="bulk-deploy-cli-troubleshooting-input-file-errors"></a>

 La distribuzione di massa può avere esito negativo in caso di errori di sintassi nel file di input della distribuzione di massa. Questo restituisce lo stato `Failed` della distribuzione di massa, con un messaggio di errore che indica il numero di riga del primo errore di convalida. Possono verificarsi quattro tipi di errore: 
+ 

  ```
  InvalidInputFile: Missing GroupId at line number: line number
  ```

   Questo errore indica che la riga del file di input non è in grado di registrare il parametro specificato. I possibili parametri mancanti sono `GroupId` e `GroupVersionId`. 
+ 

  ```
  InvalidInputFile: Invalid deployment type at line number : line number. Only valid type is 'NewDeployment'.
  ```

   Questo errore indica che la riga del file di input elenca un tipo di distribuzione non valido. Al momento, l'unico tipo di distribuzione supportato è `NewDeployment`. 
+ 

  ```
  Line %s is too long in S3 File. Valid line is less than 256 chars.
  ```

   Questo errore indica che la riga del file di input è troppo lunga e deve essere abbreviata. 
+ 

  ```
  Failed to parse input file at line number: line number
  ```

   Questo errore indica che la riga del file di input non è considerata un json valido. 

### Verifica delle distribuzioni di massa simultanee
<a name="bulk-deploy-cli-troubleshooting-concurrent-bulk-deployments"></a>

 Non è possibile avviare una nuova distribuzione di massa mentre un'altra è ancora in esecuzione o non presenta lo stato terminale. Ciò può restituire `Concurrent Deployment Error`. Puoi utilizzare il comando **ListBulkDeployments** per verificare che una distribuzione di massa non sia attualmente in corso. Questo comando elenca le distribuzioni di massa dalla più recente alla meno recente. 

```
{
  "BulkDeployments": [
    {
      "BulkDeploymentId": BulkDeploymentId,
      "BulkDeploymentArn": "string",
      "CreatedAt": "string"
    }
  ],
  "NextToken": "string"
}
```

 Utilizzare `BulkDeploymentId` della prima distribuzione di massa dell'elenco per eseguire il comando **GetBulkDeploymentStatus**. Se la distribuzione di massa più recente è in esecuzione (`Initializing` o `Running`), utilizzare il comando seguente per interromperla. 

```
aws greengrass stop-bulk-deployment --bulk-deployment-id BulkDeploymentId
```

 Questa operazione restituirà lo stato `Stopping` finché la distribuzione non raggiunge quello `Stopped`. Dopo che la distribuzione ha raggiunto lo stato `Stopped`, potrai avviare una nuova distribuzione di massa. 

### Controlla ErrorDetails
<a name="bulk-deploy-cli-troubleshooting-check-error-details"></a>

 Eseguire il comando `GetBulkDeploymentStatus` per restituire un payload JSON contenente informazioni dettagliate su qualsiasi errore di esecuzione della distribuzione di massa. 

```
  "Message": "string",
  "ErrorDetails": [
    {
      "DetailedErrorCode": "string",
      "DetailedErrorMessage": "string"
    }
  ]
```

 Quando si verifica un errore, il payload JSON `ErrorDetails` restituito da questa chiamata fornisce ulteriori informazioni sull'errore di esecuzione della distribuzione di massa. Ad esempio, un codice di stato dell'errore della serie `400`, indica un errore di input che può essersi verificato nei parametri di input o nelle dipendenze del chiamante. 

### Controlla il registro AWS IoT Greengrass principale
<a name="bulk-deploy-cli-troubleshooting-check-core-log"></a>

 Puoi risolvere i problemi visualizzando i log AWS IoT Greengrass principali. Utilizza i seguenti comandi per visualizzare `runtime.log`: 

```
cd /greengrass/ggc/var/log
sudo cat system/runtime.log | more
```

Per ulteriori informazioni sulla AWS IoT Greengrass registrazione, vedere. [Monitoraggio con AWS IoT Greengrass registri](greengrass-logs-overview.md) 

## Consulta anche
<a name="bulk-deploy-cli-see-also"></a>

Per maggiori informazioni, consulta le seguenti risorse:
+ [Distribuisci AWS IoT Greengrass i gruppi su un core AWS IoT Greengrass](deployments.md)
+ [Comandi dell'API Amazon S3 nel Command](https://docs.aws.amazon.com/cli/latest/reference/s3api) *Reference AWS CLI *
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass comandi nel *AWS CLI Command*](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html) Reference