

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

# Risoluzione dei problemi AWS IoT Greengrass V2
<a name="troubleshooting"></a>

Utilizza le informazioni e le soluzioni per la risoluzione dei problemi contenute in questa sezione per risolvere i problemi relativi a. AWS IoT Greengrass Version 2

**Topics**
+ [Visualizza i registri del software e dei componenti AWS IoT Greengrass principali](#troubleshoot-with-logs)
+ [AWS IoT Greengrass Problemi software principali](#greengrass-core-issues)
+ [AWS IoT Greengrass problemi relativi al cloud](#greengrass-cloud-issues)
+ [Problemi principali di distribuzione dei dispositivi](#greengrass-core-deployment-issues)
+ [Problemi principali relativi ai componenti del dispositivo](#greengrass-core-component-issues)
+ [Problemi relativi ai componenti della funzione Lambda del dispositivo principale](#greengrass-core-lambda-function-issues)
+ [La versione del componente è stata interrotta](#discontinued-component-version)
+ [Problemi relativi all'interfaccia a riga di comando di Greengrass](#greengrass-cli-issues)
+ [AWS Command Line Interface problemi](#aws-cli-issues)
+ [Codici di errore di distribuzione dettagliati](troubleshooting-deployment.md)
+ [Codici di stato dettagliati dei componenti](troubleshooting-component.md)

## Visualizza i registri del software e dei componenti AWS IoT Greengrass principali
<a name="troubleshoot-with-logs"></a>

Il software AWS IoT Greengrass Core scrive i log nel file system locale che è possibile utilizzare per visualizzare informazioni in tempo reale sul dispositivo principale. Puoi anche configurare i dispositivi principali per scrivere i log nei CloudWatch registri, in modo da poter risolvere i problemi dei dispositivi principali in remoto. Questi registri possono aiutarti a identificare i problemi relativi ai componenti, alle implementazioni e ai dispositivi principali. Per ulteriori informazioni, consulta [Monitora AWS IoT Greengrass i registri](monitor-logs.md).

## AWS IoT Greengrass Problemi software principali
<a name="greengrass-core-issues"></a>

Risolvi i problemi relativi AWS IoT Greengrass al software Core. 

**Topics**
+ [ThrottlingException dall'API ListDeployments](#ThrottlingException)
+ [Impossibile configurare il dispositivo principale](#unable-to-set-up-core-device)
+ [Impossibile avviare il software AWS IoT Greengrass Core come servizio di sistema](#unable-to-start-system-service)
+ [Impossibile configurare nucleus come servizio di sistema](#unable-to-set-up-system-service)
+ [Impossibile connettersi a AWS IoT Core](#core-error-unable-to-connect-to-aws-iot)
+ [Errore di memoria esaurita](#java-out-of-memory)
+ [Impossibile installare Greengrass CLI](#unable-to-install-greengrass-cli)
+ [User root is not allowed to execute](#user-not-allowed-to-execute)
+ [com.aws.greengrass.lifecyclemanager.GenericExternalService: Could not determine user/group to run with](#missing-default-run-with-user)
+ [Failed to map segment from shared object: operation not permitted](#tmp-folder-noexec)
+ [Impossibile configurare il servizio Windows](#failed-to-set-up-windows-service)
+ [com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager](#failed-to-get-trust-manager)
+ [com.aws.greengrass.deployment.IotJobsHelper: No connection available during subscribing to Iot Jobs descriptions topic. Will retry in sometime](#iot-jobs-no-connection-available)
+ [software.amazon.awssdk.services.iam.model.IamException: The security token included in the request is invalid](#error-invalid-security-token)
+ [software.amazon.awssdk.services.iot.model.IotException: User: <user> is not authorized to perform: iot:GetPolicy](#missing-automatic-provisioning-permissions)
+ [Error: com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request](#shadow-manager-error-could-not-execute-shadow-get-request)
+ [Operation aws.greengrass\$1<operation> is not supported by Greengrass](#ipc-operation-not-supported)
+ [java.io.FileNotFoundException: <stream-manager-store-root-dir>/stream\$1manager\$1metadata\$1store (Permission denied)](#stream-manager-store-root-folder-not-found)
+ [com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: Private key or certificate with label <label> does not exist](#pkcs11-provider-error-private-key-or-certificate-does-not-exist)
+ [software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: User: <user> is not authorized to perform: secretsmanager:GetSecretValue on resource: <arn>](#secret-manager-error-not-authorized-to-perform-get-secret-value)
+ [software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: Access to KMS is not allowed](#secret-manager-error-no-kms-access)
+ [java.lang.NoClassDefFoundError: com/aws/greengrass/security/CryptoKeySpi](#hardware-security-incompatible-nucleus-version)
+ [com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: CKR\$1OPERATION\$1NOT\$1INITIALIZED](#ckr-operation-not-initialized)
+ [Greengrass core device stuck on nucleus v2.12.3](#v2.12.3-revise-deployment)
+ [Greengrass nucleus v2.14.0 systemd template issue](#v2.14.0-systemd-template)

### ThrottlingException dall'API ListDeployments
<a name="ThrottlingException"></a>

`ThrottlingException`dall'`ListDeployments`API: potresti vederlo quando hai in conto un gran numero di implementazioni. 

Per risolvere questo problema, esegui una delle seguenti operazioni:
+ Se usi SDK, specifica il MaxResult parametro. Ad esempio, per [JavaSDK](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/greengrassv2/model/ListDeploymentsRequest.html#maxResults) con un valore piccolo (ad esempio 5).
+ Puoi utilizzare [AWS Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html) per richiedere un aumento del limite di velocità dell'`DescribeJob`API. Puoi andare alla console di Service Quota, selezionare le quote di AWS IoT e il nome del limite è **DescribeJob throttle** limit. Puoi aumentarlo da 10 a 50.

### Impossibile configurare il dispositivo principale
<a name="unable-to-set-up-core-device"></a>

Se il programma di installazione del software AWS IoT Greengrass Core fallisce e non riesci a configurare un dispositivo principale, potresti dover disinstallare il software e riprovare. Per ulteriori informazioni, consulta [Disinstalla il software AWS IoT Greengrass Core](uninstall-greengrass-core-v2.md).

### Impossibile avviare il software AWS IoT Greengrass Core come servizio di sistema
<a name="unable-to-start-system-service"></a>

Se il software AWS IoT Greengrass Core non si avvia, [controlla i registri dei servizi di sistema](monitor-logs.md#access-system-service-logs) per identificare il problema. Un problema comune è rappresentato dalla mancata disponibilità di Java nella variabile di ambiente PATH (Linux) o nella variabile di sistema PATH (Windows).

### Impossibile configurare nucleus come servizio di sistema
<a name="unable-to-set-up-system-service"></a>

Potresti visualizzare questo errore quando il programma di installazione del software AWS IoT Greengrass Core non riesce a configurarsi AWS IoT Greengrass come servizio di sistema. Sui dispositivi Linux, questo errore si verifica in genere se il dispositivo principale non dispone del [sistema systemd init](https://en.wikipedia.org/wiki/Systemd). Il programma di installazione può configurare correttamente il software AWS IoT Greengrass Core anche se non riesce a configurare il servizio di sistema.

Esegui una delle seguenti operazioni:
+ Configura ed esegui il software AWS IoT Greengrass Core come servizio di sistema. È necessario configurare il software come servizio di sistema per utilizzare tutte le funzionalità di AWS IoT Greengrass. È possibile installare [systemd](https://en.wikipedia.org/wiki/Systemd) o utilizzare un sistema di inizializzazione diverso. Per ulteriori informazioni, consulta [Configurare il nucleo Greengrass come servizio di sistema](configure-greengrass-core-v2.md#configure-system-service).
+ Esegui il software AWS IoT Greengrass Core senza un servizio di sistema. È possibile eseguire il software utilizzando uno script di caricamento che il programma di installazione configura nella cartella principale di Greengrass. Per ulteriori informazioni, consulta [Esegui il software AWS IoT Greengrass Core senza un servizio di sistema](run-greengrass-core-v2.md#run-greengrass-core-no-system-service).

### Impossibile connettersi a AWS IoT Core
<a name="core-error-unable-to-connect-to-aws-iot"></a>

Potresti visualizzare questo errore quando il software AWS IoT Greengrass Core non riesce a connettersi AWS IoT Core a per recuperare i lavori di distribuzione, ad esempio. Esegui questa operazione:
+ Verifica che il tuo dispositivo principale sia in grado di connettersi a Internet e AWS IoT Core. Per ulteriori informazioni sull' AWS IoT Core endpoint a cui si connette il dispositivo, consulta[Configurare il software AWS IoT Greengrass Core](configure-greengrass-core-v2.md).
+ Verifica che il dispositivo AWS IoT principale del tuo dispositivo utilizzi un certificato che consenta le`iot:Connect`, `iot:Publish``iot:Receive`, e le `iot:Subscribe` autorizzazioni.
+ Se il dispositivo principale utilizza un [proxy di rete](configure-greengrass-core-v2.md#configure-network-proxy), verifica che il dispositivo principale abbia un [ruolo di dispositivo](device-service-role.md) e che tale ruolo consenta le`iot:Connect`, `iot:Publish``iot:Receive`, e le `iot:Subscribe` autorizzazioni.

### Errore di memoria esaurita
<a name="java-out-of-memory"></a>

Questo errore si verifica in genere se il dispositivo non dispone di memoria sufficiente per allocare un oggetto nell'heap Java. Sui dispositivi con memoria limitata, potrebbe essere necessario specificare una dimensione massima dell'heap per controllare l'allocazione della memoria. Per ulteriori informazioni, consulta [Controlla l'allocazione della memoria con le opzioni JVM](configure-greengrass-core-v2.md#jvm-tuning).

### Impossibile installare Greengrass CLI
<a name="unable-to-install-greengrass-cli"></a>

È possibile che venga visualizzato il seguente messaggio sulla console quando si utilizza l'`--deploy-dev-tools`argomento nel comando di installazione per AWS IoT Greengrass Core.

```
Thing group exists, it could have existing deployment and devices, hence NOT creating deployment for Greengrass first party dev tools, please manually create a deployment if you wish to
```

Ciò si verifica quando il componente Greengrass CLI non è installato perché il dispositivo principale è membro di un gruppo di oggetti con una distribuzione esistente. Se vedi questo messaggio, puoi distribuire manualmente il `aws.greengrass.Cli` componente Greengrass CLI () sul dispositivo per installare la Greengrass CLI. Per ulteriori informazioni, consulta [Installazione della CLI di Greengrass](install-gg-cli.md).

### User root is not allowed to execute
<a name="user-not-allowed-to-execute"></a>

Potresti visualizzare questo errore quando l'utente che esegue il software AWS IoT Greengrass Core (in genere`root`) non dispone dell'autorizzazione per l'esecuzione `sudo` con alcun utente e gruppo. Per l'utente `ggc_user` di sistema predefinito, questo errore è simile al seguente:

```
Sorry, user root is not allowed to execute <command> as ggc_user:ggc_group.
```

Verifica che il `/etc/sudoers` file dia all'utente il permesso di funzionare `sudo` come altri gruppi. L'autorizzazione per l'utente `/etc/sudoers` dovrebbe essere simile all'esempio seguente.

```
root    ALL=(ALL:ALL) ALL
```

### com.aws.greengrass.lifecyclemanager.GenericExternalService: Could not determine user/group to run with
<a name="missing-default-run-with-user"></a>

Potresti visualizzare questo errore quando il dispositivo principale tenta di eseguire un componente e il nucleo di Greengrass non specifica un utente di sistema predefinito da utilizzare per eseguire i componenti.

Per risolvere questo problema, configura il nucleo Greengrass per specificare l'utente di sistema predefinito che esegue i componenti. Per ulteriori informazioni, consultare [Configurare l'utente che esegue i componenti](configure-greengrass-core-v2.md#configure-component-user) e [Configura l'utente predefinito del componente](configure-greengrass-core-v2.md#configure-default-component-user).

### Failed to map segment from shared object: operation not permitted
<a name="tmp-folder-noexec"></a>

Potresti visualizzare questo errore quando il software AWS IoT Greengrass Core non si avvia perché la `/tmp` cartella è montata con `noexec` le autorizzazioni. La [libreria AWS Common Runtime (CRT)](https://github.com/awslabs/aws-crt-java) utilizza la `/tmp` cartella per impostazione predefinita.

Esegui una delle seguenti operazioni:
+ Esegui il comando seguente per rimontare la `/tmp` cartella con le `exec` autorizzazioni e riprova.

  ```
  sudo mount -o remount,exec /tmp
  ```
+ Se si esegue Greengrass nucleus v2.5.0 o versione successiva, è possibile impostare un'opzione JVM per modificare la cartella utilizzata dalla libreria CRT. AWS È possibile specificare il `jvmOptions` parametro nella configurazione del componente Greengrass nucleus in una distribuzione o quando si installa il AWS IoT Greengrass software Core. */path/to/use*Sostituitelo con il percorso di una cartella utilizzabile dalla libreria AWS CRT.

  ```
  {
    "jvmOptions": "-Daws.crt.lib.dir=\"/path/to/use\""
  }
  ```

### Impossibile configurare il servizio Windows
<a name="failed-to-set-up-windows-service"></a>

Potresti visualizzare questo errore se installi il software AWS IoT Greengrass Core su un dispositivo Microsoft Windows 2016. Il software AWS IoT Greengrass Core non è supportato in Windows 2016. Per un elenco dei sistemi operativi supportati, consulta[Piattaforme supportate](greengrass-nucleus-component.md#greengrass-v2-supported-platforms).

Se è necessario utilizzare Windows 2016, è possibile effettuare le seguenti operazioni:

1. Decomprimi l'archivio di installazione AWS IoT Greengrass Core scaricato

1. Nella `Greengrass` directory apri il `bin/greengrass.xml.template` file.

1. Aggiungi il `<autoRefresh>` tag alla fine del file appena prima del `</service>` tag.

   ```
     </log>
     <autoRefresh>false</autoRefresh>
   </service>
   ```

### com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager
<a name="failed-to-get-trust-manager"></a>

Potresti visualizzare questo errore quando installi il software AWS IoT Greengrass Core senza un file di autorità di certificazione (CA) principale.

```
2022-06-05T10:00:39.556Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: service-loaded. {serviceName=DeploymentService}
2022-06-05T10:00:39.943Z [WARN] (main) com.aws.greengrass.componentmanager.ClientConfigurationUtils: configure-greengrass-mutual-auth. Error during configure greengrass client mutual auth. {}
com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager
```

Verificate di aver specificato un file CA root valido con il `rootCaPath` parametro nel file di configurazione fornito all'installatore. Per ulteriori informazioni, consulta [Installare il software AWS IoT Greengrass Core](install-greengrass-core-v2.md).

### com.aws.greengrass.deployment.IotJobsHelper: No connection available during subscribing to Iot Jobs descriptions topic. Will retry in sometime
<a name="iot-jobs-no-connection-available"></a>

Potresti visualizzare questo messaggio di avviso quando il dispositivo principale non riesce a connettersi per iscriversi AWS IoT Core alle notifiche dei lavori di distribuzione. Esegui questa operazione:
+ Verifica che il dispositivo principale sia connesso a Internet e possa raggiungere l'endpoint di AWS IoT dati che hai configurato. Per ulteriori informazioni sugli endpoint utilizzati dai dispositivi principali, consulta. [Consenti il traffico dei dispositivi tramite un proxy o un firewall](allow-device-traffic.md)
+ Controlla i log di Greengrass per altri errori che rivelano altre cause principali.

### software.amazon.awssdk.services.iam.model.IamException: The security token included in the request is invalid
<a name="error-invalid-security-token"></a>

Potresti visualizzare questo errore quando [installi il software AWS IoT Greengrass Core con provisioning automatico](quick-installation.md) e il programma di installazione utilizza un token di AWS sessione non valido. Esegui questa operazione:
+ Se utilizzate credenziali di sicurezza temporanee, verificate che il token di sessione sia corretto e che stiate copiando e incollando il token di sessione completo.
+ Se utilizzi credenziali di sicurezza a lungo termine, verifica che il dispositivo non disponga di un token di sessione risalente a quando in precedenza utilizzavi credenziali temporanee. Esegui questa operazione:

  1. Esegui il comando seguente per annullare l'impostazione della variabile di ambiente del token di sessione.

------
#### [ Linux or Unix ]

     ```
     unset AWS_SESSION_TOKEN
     ```

------
#### [ Windows Command Prompt (CMD) ]

     ```
     set AWS_SESSION_TOKEN=
     ```

------
#### [ PowerShell ]

     ```
     Remove-Item Env:\AWS_SESSION_TOKEN
     ```

------

  1. Controlla se il file AWS delle credenziali contiene un token di sessione`~/.aws/credentials`,. `aws_session_token` In tal caso, rimuovi quella riga dal file.

     ```
     aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
     ```

Puoi anche installare il software AWS IoT Greengrass Core senza fornire AWS credenziali. Per ulteriori informazioni, consulta [Installa il software AWS IoT Greengrass Core con provisioning manuale delle risorse](manual-installation.md) o [Installa il software AWS IoT Greengrass Core con il provisioning AWS IoT della flotta](fleet-provisioning.md).

### software.amazon.awssdk.services.iot.model.IotException: User: <user> is not authorized to perform: iot:GetPolicy
<a name="missing-automatic-provisioning-permissions"></a>

Potresti visualizzare questo errore quando [installi il software AWS IoT Greengrass Core con provisioning automatico](quick-installation.md) e il programma di installazione utilizza AWS credenziali che non dispongono delle autorizzazioni richieste. Per ulteriori informazioni sulle autorizzazioni richieste, consulta. [Policy IAM minima per l'installatore per il provisioning delle risorse](provision-minimal-iam-policy.md)

Controlla le autorizzazioni per l'identità IAM delle credenziali e concedi all'identità IAM tutte le autorizzazioni richieste mancanti.

### Error: com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request
<a name="shadow-manager-error-could-not-execute-shadow-get-request"></a>

[Potresti visualizzare questo errore quando usi il [componente shadow manager per sincronizzare le ombre](shadow-manager-component.md) del dispositivo con. AWS IoT Core](sync-shadows-with-iot-core.md) Il codice di stato HTTP 403 indica che questo errore si è verificato perché la AWS IoT politica del dispositivo principale non concede l'autorizzazione alla chiamata. `GetThingShadow`

```
com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request. {thing name=MyGreengrassCore, shadow name=MyShadow}
2021-07-14T21:09:02.456Z [ERROR] (pool-2-thread-109) com.aws.greengrass.shadowmanager.sync.SyncHandler: sync. Skipping sync request. {thing name=MyGreengrassCore, shadow name=MyShadow}
com.aws.greengrass.shadowmanager.exception.SkipSyncRequestException: software.amazon.awssdk.services.iotdataplane.model.IotDataPlaneException: null (Service: IotDataPlane, Status Code: 403, Request ID: f6e713ba-1b01-414c-7b78-5beb3f3ad8f6, Extended Request ID: null)
```

Per sincronizzare le ombre locali con AWS IoT Core, la AWS IoT politica del dispositivo principale deve concedere le seguenti autorizzazioni:
+ `iot:GetThingShadow`
+ `iot:UpdateThingShadow`
+ `iot:DeleteThingShadow`

Controlla la AWS IoT politica del dispositivo principale e aggiungi le autorizzazioni necessarie mancanti. Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [AWS IoT Core azioni politiche](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) nella Guida per gli *AWS IoT sviluppatori*
+ [Aggiorna la politica di un dispositivo principale AWS IoT](device-auth.md#update-core-device-iot-policy)

### Operation aws.greengrass\$1<operation> is not supported by Greengrass
<a name="ipc-operation-not-supported"></a>

Potresti visualizzare questo errore quando utilizzi un'[operazione di comunicazione tra processi (IPC)](interprocess-communication.md) in un componente Greengrass personalizzato e il componente AWS fornito richiesto non è installato sul dispositivo principale.

Per risolvere questo problema, aggiungi il componente richiesto come [dipendenza nella ricetta del componente, in modo che il software AWS IoT Greengrass Core abbia installato il componente](component-recipe-reference.md#recipe-reference-component-dependencies) richiesto al momento della distribuzione del componente.
+ [Recupera valori segreti](ipc-secret-manager.md): `aws.greengrass.SecretManager`
+ [Interagisci con le ombre locali](ipc-local-shadows.md) — `aws.greengrass.ShadowManager`
+ [Gestisci le distribuzioni e i componenti locali](ipc-local-deployments-components.md): `aws.greengrass.Cli` v2.6.0 o versione successiva
+ [Autentica e autorizza i dispositivi client](ipc-client-device-auth.md): v2.2.0 o versione successiva `aws.greengrass.clientdevices.Auth`

### java.io.FileNotFoundException: <stream-manager-store-root-dir>/stream\$1manager\$1metadata\$1store (Permission denied)
<a name="stream-manager-store-root-folder-not-found"></a>

Potresti visualizzare questo errore nel file di log di stream manager (`aws.greengrass.StreamManager.log`) quando configuri [stream manager](stream-manager-component.md) per utilizzare una cartella principale che non esiste o dispone delle autorizzazioni corrette. Per ulteriori informazioni su come configurare questa cartella, consulta la [configurazione dello stream manager](stream-manager-component.md#stream-manager-component-configuration).

### com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: Private key or certificate with label <label> does not exist
<a name="pkcs11-provider-error-private-key-or-certificate-does-not-exist"></a>

Questo errore si verifica quando il [componente del provider PKCS \$111](pkcs11-provider-component.md) non riesce a trovare o caricare la chiave privata o il certificato specificato quando si configura il software AWS IoT Greengrass Core per l'utilizzo di un [modulo di sicurezza hardware (HSM](hardware-security.md)). Esegui questa operazione:
+ Verificate che la chiave privata e il certificato siano archiviati nell'HSM utilizzando lo slot, il PIN utente e l'etichetta dell'oggetto che configurate per l'uso del software AWS IoT Greengrass Core.
+ Verificate che la chiave privata e il certificato utilizzino la stessa etichetta dell'oggetto nell'HSM.
+ Se il tuo HSM supporta l'oggetto IDs, verifica che la chiave privata e il certificato utilizzino lo stesso ID di oggetto nell'HSM.

Consulta la documentazione del tuo HSM per scoprire come richiedere dettagli sui token di sicurezza presenti nell'HSM. Se devi modificare lo slot, l'etichetta dell'oggetto o l'ID dell'oggetto per un token di sicurezza, consulta la documentazione del tuo HSM per scoprire come farlo.

### software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: User: <user> is not authorized to perform: secretsmanager:GetSecretValue on resource: <arn>
<a name="secret-manager-error-not-authorized-to-perform-get-secret-value"></a>

Questo errore può verificarsi quando si utilizza il [componente Secret Manager](secret-manager-component.md) per distribuire un Gestione dei segreti AWS segreto. Se il [ruolo IAM di scambio di token](device-service-role.md) del dispositivo principale non concede l'autorizzazione per ottenere il segreto, l'implementazione fallisce e i log di Greengrass includono questo errore.

**Per autorizzare un dispositivo principale a scaricare un segreto**

1. Aggiungi l'`secretsmanager:GetSecretValue`autorizzazione al ruolo di scambio di token del dispositivo principale. La seguente dichiarazione politica di esempio concede il permesso di ottenere il valore di un segreto.

   ```
   {
       "Effect": "Allow",
       "Action": [
           "secretsmanager:GetSecretValue"
       ],
       "Resource": [
           "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef"
       ]
   }
   ```

   Per ulteriori informazioni, consulta [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

1. Riapplica la distribuzione al dispositivo principale. Esegui una delle seguenti operazioni:
   + Rivedi la distribuzione senza apportare modifiche. Il dispositivo principale tenta di scaricare nuovamente il segreto quando riceve la distribuzione modificata. Per ulteriori informazioni, consulta [Rivedi le distribuzioni](revise-deployments.md).
   + Riavvia il software AWS IoT Greengrass Core per riprovare la distribuzione. Per ulteriori informazioni, consulta [Esegui il software AWS IoT Greengrass Core](run-greengrass-core-v2.md)

   La distribuzione ha esito positivo se il gestore segreto scarica il segreto con successo.

### software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: Access to KMS is not allowed
<a name="secret-manager-error-no-kms-access"></a>

Questo errore può verificarsi quando si utilizza il [componente del gestore segreto](secret-manager-component.md) per distribuire un Gestione dei segreti AWS segreto crittografato da una AWS Key Management Service chiave. Se il [ruolo IAM di scambio di token](device-service-role.md) del dispositivo principale non concede l'autorizzazione per decrittografare il segreto, l'implementazione fallisce e i log di Greengrass includono questo errore.

Per risolvere il problema, aggiungi l'`kms:Decrypt`autorizzazione al ruolo di scambio di token del dispositivo principale. Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [Crittografia e decrittografia segrete nella Guida](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) *per l'utente Gestione dei segreti AWS *
+ [Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md)

### java.lang.NoClassDefFoundError: com/aws/greengrass/security/CryptoKeySpi
<a name="hardware-security-incompatible-nucleus-version"></a>

Potresti visualizzare questo errore quando tenti di installare il software AWS IoT Greengrass Core con [sicurezza hardware](hardware-security.md) e utilizzi una versione precedente di Greengrass nucleus che non supporta l'integrazione della sicurezza hardware. Per utilizzare l'integrazione della sicurezza hardware, è necessario utilizzare Greengrass nucleus v2.5.3 o versione successiva.

### com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: CKR\$1OPERATION\$1NOT\$1INITIALIZED
<a name="ckr-operation-not-initialized"></a>

Potresti visualizzare questo errore quando usi la TPM2 libreria quando esegui AWS IoT Greengrass Core come servizio di sistema.

Questo errore indica che è necessario aggiungere una variabile di ambiente che fornisca la posizione dell'archivio PKCS \$111 nel file di servizio AWS IoT Greengrass Core systemd. 

Per ulteriori informazioni, consultate la sezione Requisiti della documentazione del [Fornitore PKCS \$111](pkcs11-provider-component.md) componente.

### Greengrass core device stuck on nucleus v2.12.3
<a name="v2.12.3-revise-deployment"></a>

Se il dispositivo principale Greengrass non modifica la distribuzione dalla versione Nucleus 2.12.3, potrebbe essere necessario scaricare e sostituire il file `Greengrass.jar` con Greengrass nucleus versione 2.12.2. Esegui questa operazione:

1. Sul tuo dispositivo Greengrass core, esegui il seguente comando per arrestare il software Greengrass Core.

------
#### [ Linux or Unix ]

   ```
   sudo systemctl stop greengrass
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   sc stop "greengrass"
   ```

------
#### [ PowerShell ]

   ```
   Stop-Service -Name "greengrass"
   ```

------

1. Sul tuo dispositivo principale, scarica il AWS IoT Greengrass software in un file denominato. `greengrass-2.12.2.zip`

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-2.12.2.zip > greengrass-2.12.2.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-2.12.2.zip > greengrass-2.12.2.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-2.12.2.zip -OutFile greengrass-2.12.2.zip
   ```

------

1. Decomprimi il software AWS IoT Greengrass Core in una cartella sul dispositivo. Sostituiscilo *GreengrassInstaller* con la cartella che desideri utilizzare.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-2.12.2.zip -d GreengrassInstaller && rm greengrass-2.12.2.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-2.12.2.zip -C GreengrassInstaller && del greengrass-2.12.2.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-2.12.2.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-2.12.2.zip
   ```

------

1. Esegui il comando seguente per sovrascrivere il file JAR di nucleus versione 2.12.3 Greengrass con il file JAR Greengrass versione 2.12.2 di nucleus.

------
#### [ Linux or Unix ]

   ```
   sudo cp ./GreengrassInstaller/lib/Greengrass.jar /greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.12.3/aws.greengrass.nucleus/lib
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   robocopy ./GreengrassInstaller/lib/Greengrass.jar /greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.12.3/aws.greengrass.nucleus/lib /E
   ```

------
#### [ PowerShell ]

   ```
   cp -Path ./GreengrassInstaller/lib/Greengrass.jar -Destination /greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.12.3/aws.greengrass.nucleus/lib
   ```

------

1. Esegui il seguente comando per avviare il software Greengrass Core.

------
#### [ Linux or Unix ]

   ```
   sudo systemctl start greengrass
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   sc start "greengrass"
   ```

------
#### [ PowerShell ]

   ```
   Start-Service -Name "greengrass"
   ```

------

### Greengrass nucleus v2.14.0 systemd template issue
<a name="v2.14.0-systemd-template"></a>

Potresti riscontrare questo problema se hai installato Greengrass nucleus v2.14.0 su un dispositivo Linux con il suo modello di servizio systemd predefinito. Esegui questa operazione:

1. Sul tuo dispositivo principale Greengrass, esegui il comando seguente per ripristinare il file di servizio systemd allo stato in cui si trova in nucleus v2.13.0 e versioni precedenti.

------
#### [ Linux or Unix ]

   ```
   sudo sed -i 's|ExecStart=/bin/sh -c "\(.*\) >> .*/logs/loader.log 2>&1"|ExecStart=/bin/sh \1|' /etc/systemd/system/greengrass.service
   ```

------

1. Applica le modifiche.

------
#### [ Linux or Unix ]

   ```
   sudo systemctl daemon-reload
   sudo systemctl restart greengrass
   ```

------

## AWS IoT Greengrass problemi relativi al cloud
<a name="greengrass-cloud-issues"></a>

Utilizza le seguenti informazioni per risolvere i problemi relativi alla AWS IoT Greengrass console e all'API. Ogni voce corrisponde a un messaggio di errore che potresti visualizzare quando esegui un'azione.

### An error occurred (AccessDeniedException) when calling the CreateComponentVersion operation: User: arn:aws:iam::123456789012:user/<username> is not authorized to perform: null
<a name="cloud-error-create-component-version-not-authorized-to-perform-null"></a>

Potresti visualizzare questo errore quando crei una versione del componente dalla AWS IoT Greengrass console o con l'[CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html)operazione.

Questo errore indica che la ricetta non è valida in formato JSON o YAML. Controlla la sintassi della ricetta, risolvi eventuali problemi di sintassi e riprova. Puoi utilizzare un correttore di sintassi JSON o YAML online per identificare i problemi di sintassi nella tua ricetta.

### Invalid Input: Encountered following errors in Artifacts: \$1<s3ArtifactUri> = Specified artifact resource cannot be accessed\$1
<a name="cloud-error-specified-artifact-resource-cannot-be-accessed"></a>

Potresti visualizzare questo errore quando crei una versione del componente dalla console o con l' AWS IoT Greengrass operazione. [CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html) Questo errore indica che un artefatto S3 nella ricetta del componente non è valido.

Esegui questa operazione:
+ Verifica che il bucket S3 si trovi nello stesso Regione AWS punto in cui crei il componente. AWS IoT Greengrass non supporta le richieste interregionali per gli artefatti dei componenti.
+ Verifica che l'URI dell'artefatto sia un URL di oggetto S3 valido e verifica che l'artefatto esista nell'URL dell'oggetto S3.
+ Verifica di disporre dell'autorizzazione per accedere all'artefatto all'URL dell'oggetto S3. Account AWS 

### INACTIVE deployment status
<a name="cloud-error-inactive-deployment"></a>

Potresti ottenere uno stato di `INACTIVE` implementazione quando chiami l'[ListDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListDeployments.html)API senza le politiche dipendenti richieste. AWS IoT È necessario disporre delle autorizzazioni necessarie per ottenere uno stato di distribuzione accurato. Puoi trovare le azioni dipendenti cercando nelle [Azioni definite da AWS IoT Greengrass V2 e seguendo le autorizzazioni](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotgreengrassv2.html#awsiotgreengrassv2-actions-as-permissions) necessarie per. `ListDeployments` Senza le AWS IoT autorizzazioni dipendenti richieste, continuerai a visualizzare lo stato della distribuzione, ma potresti visualizzare uno stato di distribuzione impreciso di. `INACTIVE`

## Problemi principali di distribuzione dei dispositivi
<a name="greengrass-core-deployment-issues"></a>

Risolvi i problemi di distribuzione sui dispositivi core Greengrass. Ogni voce corrisponde a un messaggio di registro che potresti visualizzare sul tuo dispositivo principale.

**Topics**
+ [Error: com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact](#core-error-failed-to-download-artifact-package-download-exception)
+ [Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.](#core-error-failed-to-download-artifact-checksum-mismatch-exception)
+ [Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>](#core-error-no-available-component-version)
+ [software.amazon.awssdk.services.greengrassv2data.model.ResourceNotFoundException: The latest version of Component <componentName> doesn't claim platform <coreDevicePlatform> compatibility](#deployment-error-no-platform-compatibility)
+ [com.aws.greengrass.componentmanager.exceptions.PackagingException: The deployment attempts to update the nucleus from aws.greengrass.Nucleus-<version> to aws.greengrass.Nucleus-<version> but no component of type nucleus was included as target component](#deployment-error-nucleus-minor-version-update)
+ [Error: com.aws.greengrass.deployment.exceptions.DeploymentException: Unable to process deployment. Greengrass launch directory is not set up or Greengrass is not set up as a system service](#deployment-error-unable-to-process-deployment)
+ [Info: com.aws.greengrass.deployment.exceptions.RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service returned an error when getting full deployment configuration](#core-error-getting-full-deployment-configuration)
+ [Warn: com.aws.greengrass.deployment.DeploymentService: Failed to get thing group hierarchy](#core-warning-failed-to-get-thing-group-hierarchy)
+ [Info: com.aws.greengrass.deployment.DeploymentDocumentDownloader: Calling Greengrass cloud to get full deployment configuration](#core-info-repetitive-get-full-deployment-configuration)
+ [Caused by: software.amazon.awssdk.services.greengrassv2data.model.GreengrassV2DataException: null (Service: GreengrassV2Data, Status Code: 403, Request ID: <some\$1request\$1id>, Extended Request ID: null)](#greengrassv2dataexception)

### Error: com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact
<a name="core-error-failed-to-download-artifact-package-download-exception"></a>

Potresti visualizzare questo errore quando il software AWS IoT Greengrass Core non riesce a scaricare un elemento del componente quando il dispositivo principale applica una distribuzione. La distribuzione non riesce a causa di questo errore.

Quando si riceve questo errore, il registro include anche una traccia dello stack che è possibile utilizzare per identificare il problema specifico. Ciascuna delle seguenti voci corrisponde a un messaggio che è possibile visualizzare nello stack trace del messaggio di `Failed to download artifact` errore.

**Topics**
+ [software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: null, ...)](#core-error-failed-to-download-artifact-s3-permissions)
+ [software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, Request ID: <requestID>](#core-error-failed-to-download-artifact-get-bucket-location-403)

#### software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: null, ...)
<a name="core-error-failed-to-download-artifact-s3-permissions"></a>

L'[PackageDownloadException errore](#core-error-failed-to-download-artifact-package-download-exception) potrebbe includere questa traccia dello stack nei seguenti casi:
+ L'elemento del componente non è disponibile all'URL dell'oggetto S3 specificato nella ricetta del componente. Verifica di aver caricato l'artefatto nel bucket S3 e che l'URI dell'artefatto corrisponda all'URL dell'oggetto S3 dell'artefatto nel bucket.
+ Il [ruolo di scambio di token](device-service-role.md) del dispositivo principale non consente al software AWS IoT Greengrass Core di scaricare l'elemento del componente dall'URL dell'oggetto S3 specificato nella ricetta del componente. Verifica che il ruolo di scambio di token `s3:GetObject` consenta l'URL dell'oggetto S3 in cui è disponibile l'artefatto.

#### software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, Request ID: <requestID>
<a name="core-error-failed-to-download-artifact-get-bucket-location-403"></a>

L'[PackageDownloadException errore](#core-error-failed-to-download-artifact-package-download-exception) potrebbe includere questa traccia dello stack quando il dispositivo principale non è autorizzato a chiamare. `s3:GetBucketLocation` Il messaggio di errore include anche il seguente messaggio.

```
reason: Failed to determine S3 bucket location
```

Verifica che il [ruolo di scambio di token](device-service-role.md) del dispositivo principale consenta `s3:GetBucketLocation` il bucket S3 in cui è disponibile l'artefatto.

### Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.
<a name="core-error-failed-to-download-artifact-checksum-mismatch-exception"></a>

Potresti visualizzare questo errore quando il software AWS IoT Greengrass Core non riesce a scaricare un elemento del componente quando il dispositivo principale applica una distribuzione. La distribuzione non riesce perché il checksum del file di artefatto scaricato non corrisponde al checksum AWS IoT Greengrass calcolato al momento della creazione del componente.

Esegui questa operazione:
+ Controlla se il file degli artefatti è cambiato nel bucket S3 in cui lo ospiti. Se il file è cambiato dopo la creazione del componente, ripristinalo alla versione precedente prevista dal dispositivo principale. Se non riesci a ripristinare il file alla versione precedente o se desideri utilizzare la nuova versione del file, crea una nuova versione del componente con il file dell'artefatto.
+ Controlla la connessione Internet del tuo dispositivo principale. Questo errore può verificarsi se il file dell'artefatto viene danneggiato durante il download. Crea una nuova distribuzione e riprova.

### Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>
<a name="core-error-no-available-component-version"></a>

Potresti visualizzare questo errore quando un dispositivo principale non riesce a trovare una versione del componente che soddisfi i requisiti delle distribuzioni per quel dispositivo principale. Il dispositivo principale verifica la presenza del componente nel AWS IoT Greengrass servizio e sul dispositivo locale. Il messaggio di errore include la destinazione di ogni distribuzione e i requisiti di versione di tale distribuzione per il componente. L'obiettivo di distribuzione può essere un oggetto, un gruppo di oggetti o`LOCAL_DEPLOYMENT`, che rappresenta la distribuzione locale sul dispositivo principale.

Questo problema può verificarsi nei seguenti casi:
+ Il dispositivo principale è l'obiettivo di più distribuzioni con requisiti di versione dei componenti in conflitto. Ad esempio, il dispositivo principale potrebbe essere l'obiettivo di più distribuzioni che includono un `com.example.HelloWorld` componente, in cui una distribuzione richiede la versione 1.0.0 e l'altra richiede la versione 1.0.1. È impossibile avere un componente che soddisfi entrambi i requisiti, quindi l'implementazione non riesce.
+ La versione del componente non esiste nel AWS IoT Greengrass servizio o nel dispositivo locale. Il componente potrebbe essere stato eliminato, ad esempio.
+ Esistono versioni dei componenti che soddisfano i requisiti di versione, ma nessuna è compatibile con la piattaforma del dispositivo principale.
+ La AWS IoT politica del dispositivo principale non concede l'`greengrass:ResolveComponentCandidates`autorizzazione. Cerca `Status Code: 403` nel registro degli errori per identificare il problema. Per risolvere il problema, aggiungi l'`greengrass:ResolveComponentCandidates`autorizzazione alla AWS IoT politica principale del dispositivo. Per ulteriori informazioni, consulta [AWS IoT Politica minima per i dispositivi AWS IoT Greengrass V2 principali](device-auth.md#greengrass-core-minimal-iot-policy).

Per risolvere questo problema, rivedi le distribuzioni per includere le versioni dei componenti compatibili o rimuovere quelle incompatibili. Per ulteriori informazioni su come rivedere le distribuzioni cloud, consulta. [Rivedi le distribuzioni](revise-deployments.md) Per ulteriori informazioni su come rivedere le distribuzioni locali, consulta il comando [AWS IoT Greengrass CLI](gg-cli-deployment.md#deployment-create) deployment create.

### software.amazon.awssdk.services.greengrassv2data.model.ResourceNotFoundException: The latest version of Component <componentName> doesn't claim platform <coreDevicePlatform> compatibility
<a name="deployment-error-no-platform-compatibility"></a>

Potresti visualizzare questo errore quando distribuisci un componente su un dispositivo principale e il componente non elenca una piattaforma compatibile con la piattaforma del dispositivo principale. Esegui una delle seguenti operazioni:
+ Se il componente è un componente Greengrass personalizzato, puoi aggiornarlo per renderlo compatibile con il dispositivo principale. Aggiungi un nuovo manifesto che corrisponda alla piattaforma del dispositivo principale o aggiorna un manifesto esistente in modo che corrisponda alla piattaforma del dispositivo principale. Per ulteriori informazioni, consulta [AWS IoT Greengrass riferimento alla ricetta del componente](component-recipe-reference.md).
+ Se il componente è fornito da AWS, controlla se un'altra versione del componente è compatibile con il dispositivo principale. Se nessuna versione è compatibile, contattaci [AWS re:Post](https://repost.aws/)utilizzando il [AWS IoT Greengrass tag](https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass) o contattaci [Supporto](https://aws.amazon.com/contact-us/).

### com.aws.greengrass.componentmanager.exceptions.PackagingException: The deployment attempts to update the nucleus from aws.greengrass.Nucleus-<version> to aws.greengrass.Nucleus-<version> but no component of type nucleus was included as target component
<a name="deployment-error-nucleus-minor-version-update"></a>

Potresti visualizzare questo errore quando distribuisci un componente che dipende dal nucleo di [Greengrass](greengrass-nucleus-component.md) e il dispositivo principale esegue una versione di Greengrass nucleus precedente all'ultima versione secondaria disponibile. Questo errore si verifica perché il software AWS IoT Greengrass Core tenta di aggiornare automaticamente i componenti all'ultima versione compatibile. Tuttavia, il software AWS IoT Greengrass Core impedisce l'aggiornamento del nucleo Greengrass a una nuova versione secondaria, poiché diversi componenti AWS forniti dipendono da versioni minori specifiche del nucleo Greengrass. Per ulteriori informazioni, consulta [Comportamento dell'aggiornamento del nucleo di Greengrass](update-greengrass-core-v2.md#ota-update-behavior-nucleus).

È necessario [modificare la distribuzione](revise-deployments.md) per specificare la versione di Greengrass nucleus che si desidera utilizzare. Esegui una delle seguenti operazioni:
+ Rivedi la distribuzione per specificare la versione Greengrass nucleus attualmente in esecuzione sul dispositivo principale.
+ Rivedi la distribuzione per specificare una versione secondaria successiva del nucleo Greengrass. Se si sceglie questa opzione, è necessario aggiornare anche le versioni di tutti i componenti AWS forniti che dipendono da specifiche versioni secondarie del nucleo Greengrass. Per ulteriori informazioni, consulta [AWS-componenti forniti](public-components.md).

### Error: com.aws.greengrass.deployment.exceptions.DeploymentException: Unable to process deployment. Greengrass launch directory is not set up or Greengrass is not set up as a system service
<a name="deployment-error-unable-to-process-deployment"></a>

Potresti visualizzare questo errore quando sposti un dispositivo Greengrass da un gruppo di oggetti a un altro e poi di nuovo al gruppo originale con distribuzioni che richiedono il riavvio di Greengrass. 

Per risolvere questo problema, ricrea la directory di avvio del dispositivo. Raccomandiamo inoltre vivamente l'aggiornamento alla versione 2.9.6 o successiva del nucleo Greengrass.

Quello che segue è uno script Linux per ricreare la directory di avvio. Salva lo script in un file chiamato`fix_directory.sh`.

```
#!/bin/bash

set -e

GG_ROOT=$1
GG_VERSION=$2

CURRENT="$GG_ROOT/alts/current"

if [ ! -L "$CURRENT" ]; then
  mkdir -p $GG_ROOT/alts/directory_fix
  echo "Relinking $GG_ROOT/alts/directory_fix to $CURRENT"
  ln -sf $GG_ROOT/alts/directory_fix $CURRENT
fi

TARGET=$(readlink $CURRENT)

if [[ ! -d "$TARGET" ]]; then
  echo "Creating directory: $TARGET"
  mkdir -p "$TARGET"
fi

DISTRO_LINK="$TARGET/distro"
DISTRO="$GG_ROOT/packages/artifacts-unarchived/aws.greengrass.Nucleus/$GG_VERSION/aws.greengrass.nucleus/"
echo "Relinking Nucleus artifacts to $DISTRO_LINK"
ln -sf $DISTRO $DISTRO_LINK
```

Per eseguire lo script, esegui il seguente comando:

```
[root@ip-172-31-27-165 ~]# ./fix_directory.sh /greengrass/v2 2.9.5
Relinking /greengrass/v2/alts/directory_fix to /greengrass/v2/alts/current
Relinking Nucleus artifacts to /greengrass/v2/alts/directory_fix/distro
```

### Info: com.aws.greengrass.deployment.exceptions.RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service returned an error when getting full deployment configuration
<a name="core-error-getting-full-deployment-configuration"></a>

È possibile che venga visualizzato questo errore quando il dispositivo principale riceve un documento di distribuzione di grandi dimensioni, ovvero un documento di distribuzione di dimensioni superiori a 7 KB (per distribuzioni destinate a oggetti) o 31 KB (per distribuzioni destinate a gruppi di oggetti). Per recuperare un documento di distribuzione di grandi dimensioni, la AWS IoT policy di un dispositivo principale deve consentire l'autorizzazione. `greengrass:GetDeploymentConfiguration` Questo errore può verificarsi quando il dispositivo principale non dispone di questa autorizzazione. Quando si verifica questo errore, la distribuzione riprova a tempo indeterminato e lo stato è **In corso** ()`IN_PROGRESS`.

Per risolvere questo problema, aggiungi l'`greengrass:GetDeploymentConfiguration`autorizzazione alla politica del AWS IoT dispositivo principale. Per ulteriori informazioni, consulta [Aggiorna la politica di un dispositivo principale AWS IoT](device-auth.md#update-core-device-iot-policy).

### Warn: com.aws.greengrass.deployment.DeploymentService: Failed to get thing group hierarchy
<a name="core-warning-failed-to-get-thing-group-hierarchy"></a>

Potresti visualizzare questo avviso quando il dispositivo principale riceve una distribuzione e la AWS IoT politica del dispositivo principale non consente l'`greengrass:ListThingGroupsForCoreDevice`autorizzazione. Quando si crea una distribuzione, il dispositivo principale utilizza questa autorizzazione per identificare i propri gruppi di oggetti e rimuovere i componenti di qualsiasi gruppo di oggetti da cui è stato rimosso il dispositivo principale. Se il dispositivo principale esegue [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.0, la distribuzione non riesce. Se il dispositivo principale esegue Greengrass nucleus v2.5.1 o versione successiva, la distribuzione procede ma non rimuove i componenti. Per ulteriori informazioni sul comportamento di rimozione dei gruppi di oggetti, vedere. [Implementazione AWS IoT Greengrass dei componenti sui dispositivi](manage-deployments.md)

Per aggiornare il comportamento del dispositivo principale in modo da rimuovere i componenti per i gruppi di oggetti da cui rimuovi il dispositivo principale, aggiungi l'`greengrass:ListThingGroupsForCoreDevice`autorizzazione alla AWS IoT politica del dispositivo principale. Per ulteriori informazioni, consulta [Aggiorna la politica di un dispositivo principale AWS IoT](device-auth.md#update-core-device-iot-policy).

### Info: com.aws.greengrass.deployment.DeploymentDocumentDownloader: Calling Greengrass cloud to get full deployment configuration
<a name="core-info-repetitive-get-full-deployment-configuration"></a>

È possibile che questo messaggio informativo venga stampato più volte senza errori, poiché il dispositivo principale registra l'errore a livello di `DEBUG` registro. Questo problema può verificarsi quando il dispositivo principale riceve un documento di distribuzione di grandi dimensioni. Quando si verifica questo problema, la distribuzione riprova a tempo indeterminato e lo stato è **In corso** ()`IN_PROGRESS`. Per ulteriori informazioni su come risolvere questo problema, consulta [questa voce sulla risoluzione dei problemi](#core-error-getting-full-deployment-configuration).

### Caused by: software.amazon.awssdk.services.greengrassv2data.model.GreengrassV2DataException: null (Service: GreengrassV2Data, Status Code: 403, Request ID: <some\$1request\$1id>, Extended Request ID: null)
<a name="greengrassv2dataexception"></a>

Potresti visualizzare questo errore quando un'API dataplane non dispone `iot:Connect` dell'autorizzazione. Se non disponi della politica corretta, riceverai un. `GreengrassV2DataException: 403` Per creare una politica di autorizzazione, segui queste istruzioni:[Crea una politica AWS IoT](fleet-provisioning-setup.md#create-iot-policy).

## Problemi principali relativi ai componenti del dispositivo
<a name="greengrass-core-component-issues"></a>

Risolvi i problemi relativi ai componenti Greengrass sui dispositivi principali.

**Topics**
+ [Warn: '<command>' is not recognized as an internal or external command](#component-warn-command-not-recognized)
+ [Lo script Python non registra i messaggi](#python-component-no-log-output)
+ [La configurazione dei componenti non si aggiorna quando si modifica la configurazione predefinita](#update-component-configuration-to-default-configuration)
+ [awsiot.greengrasscoreipc.model.UnauthorizedError](#ipc-unauthorized-error)
+ [com.aws.greengrass.authorization.exceptions.AuthorizationException: Duplicate policy ID "<id>" for principal "<componentList>"](#ipc-duplicate-authorization-policy-ids)
+ [com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 400)](#token-exchange-service-credentials-http-400)
+ [com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 403)](#token-exchange-service-credentials-http-403)
+ [com.aws.greengrass.tes.CredentialsProviderError: Could not load credentials from any providers](#token-exchange-service-credentials-provider-error)
+ [Received error when attempting to retrieve ECS metadata: Could not connect to the endpoint URL: "<tokenExchangeServiceEndpoint>"](#token-exchange-service-not-running)
+ [copyFrom: <configurationPath> is already a container, not a leaf](#configuration-key-is-container-cannot-become-leaf)
+ [com.aws.greengrass.componentmanager.plugins.docker.exceptions.DockerLoginException: Error logging into the registry using credentials - 'The stub received bad data.'](#docker-login-stub-received-bad-data)
+ [java.io.IOException: Cannot run program "cmd" ...: [LogonUser] The password for this account has expired.](#windows-account-password-expired)
+ [aws.greengrass.StreamManager: Instant exceeds minimum or maximum instant](#stream-manager-instant-exceeds-maximun-minimum)

### Warn: '<command>' is not recognized as an internal or external command
<a name="component-warn-command-not-recognized"></a>

Potresti visualizzare questo errore nei log di un componente Greengrass quando il software AWS IoT Greengrass Core non riesce a eseguire un comando nello script del ciclo di vita del componente. Lo stato del componente diventa il risultato `BROKEN` di questo errore. Questo errore può verificarsi se l'utente di sistema che esegue il componente, ad esempio`ggc_user`, non riesce a trovare l'eseguibile del comando nelle cartelle del [PATH](https://en.wikipedia.org/wiki/PATH_(variable)).

Sui dispositivi Windows, verifica che la cartella che contiene l'eseguibile sia disponibile `PATH` per l'utente di sistema che esegue il componente. Se non è presente in`PATH`, esegui una delle seguenti operazioni:
+ Aggiungi la cartella dell'eseguibile alla variabile di `PATH` sistema, che è disponibile per tutti gli utenti. Quindi, riavvia il componente.

  Se si esegue Greengrass nucleus 2.5.0, dopo aver aggiornato la variabile di `PATH` sistema, è necessario riavviare il software AWS IoT Greengrass Core per eseguire i componenti con la versione aggiornata. `PATH` Se il software AWS IoT Greengrass Core non utilizza la versione aggiornata `PATH` dopo il riavvio del software, riavvia il dispositivo e riprova. Per ulteriori informazioni, consulta [Esegui il software AWS IoT Greengrass Core](run-greengrass-core-v2.md).
+ Aggiungi la cartella dell'eseguibile alla variabile `PATH` utente per l'utente di sistema che esegue il componente.

### Lo script Python non registra i messaggi
<a name="python-component-no-log-output"></a>

I dispositivi core Greengrass raccolgono registri che puoi utilizzare per identificare problemi con i componenti. Se gli script `stdout` e i `stderr` messaggi Python non compaiono nei log dei componenti, potrebbe essere necessario svuotare il buffer o disabilitare il buffer per questi flussi di output standard in Python. Effettua una delle seguenti operazioni:
+ Esegui Python con l'argomento [-u](https://docs.python.org/3/using/cmdline.html#cmdoption-u) per disabilitare il buffering su and. `stdout` `stderr`

------
#### [ Linux or Unix ]

  ```
  python3 -u hello_world.py
  ```

------
#### [ Windows ]

  ```
  py -3 -u hello_world.py
  ```

------
+ Usa [Setenv](component-recipe-reference.md#lifecycle-setenv-definition) nella ricetta del tuo componente per impostare la variabile di ambiente [PYTHONUNBUFFERED](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED) su una stringa non vuota. Questa variabile di ambiente disabilita il buffering su and. `stdout` `stderr`
+ Svuota il buffer per i flussi or. `stdout` `stderr` Esegui una delle seguenti operazioni:
  + Svuota un messaggio quando stampi.

    ```
    import sys
    
    print('Hello, error!', file=sys.stderr, flush=True)
    ```
  + Svuota un messaggio dopo la stampa. Puoi inviare più messaggi prima di scaricare lo stream.

    ```
    import sys
    
    print('Hello, error!', file=sys.stderr)
    sys.stderr.flush()
    ```

Per ulteriori informazioni su come verificare che lo script Python emetta messaggi di log, vedere. [Monitora AWS IoT Greengrass i registri](monitor-logs.md)

### La configurazione dei componenti non si aggiorna quando si modifica la configurazione predefinita
<a name="update-component-configuration-to-default-configuration"></a>

Quando si modifica la `DefaultConfiguration` ricetta di un componente, la nuova configurazione predefinita non sostituirà la configurazione esistente del componente durante una distribuzione. Per applicare la nuova configurazione predefinita, è necessario ripristinare la configurazione del componente alle impostazioni predefinite. Quando distribuisci il componente, specifica una singola stringa vuota come [aggiornamento di ripristino](update-component-configurations.md#reset-configuration-update).

------
#### [ Console ]

**Reimposta i percorsi**  

```
[""]
```

------
#### [ AWS CLI ]

Il comando seguente crea una distribuzione su un dispositivo principale.

```
aws greengrassv2 create-deployment --cli-input-json file://reset-configuration-deployment.json
```

Il `reset-configuration-deployment.json` file contiene il seguente documento JSON.

```
{
  "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
  "deploymentName": "Deployment for MyGreengrassCore",
  "components": {
    "com.example.HelloWorld": {
      "componentVersion": "1.0.0",
      "configurationUpdate": {,
        "reset": [""]
      }
    }
  }
}
```

------
#### [ Greengrass CLI ]

Il seguente comando [Greengrass CLI](greengrass-cli-component.md) crea una distribuzione locale su un dispositivo principale.

```
sudo greengrass-cli deployment create \
  --recipeDir recipes \
  --artifactDir artifacts \
  --merge "com.example.HelloWorld=1.0.0" \
  --update-config reset-configuration-deployment.json
```

Il `reset-configuration-deployment.json` file contiene il seguente documento JSON.

```
{
  "com.example.HelloWorld": {
    "RESET": [""]
  }
}
```

------

### awsiot.greengrasscoreipc.model.UnauthorizedError
<a name="ipc-unauthorized-error"></a>

Potresti visualizzare questo errore nei log di un componente Greengrass quando il componente non dispone dell'autorizzazione per eseguire un'operazione IPC su una risorsa. Per concedere a un componente l'autorizzazione a chiamare un'operazione IPC, definite una politica di autorizzazione IPC nella configurazione del componente. Per ulteriori informazioni, consulta [Autorizza i componenti a eseguire operazioni IPC](interprocess-communication.md#ipc-authorization-policies).

**Suggerimento**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
Se modificate la `DefaultConfiguration` ricetta di un componente, dovete ripristinare la configurazione del componente alla nuova configurazione predefinita. Quando distribuite il componente, specificate una singola stringa vuota come [aggiornamento di ripristino](update-component-configurations.md#reset-configuration-update). Per ulteriori informazioni, consulta [La configurazione dei componenti non si aggiorna quando si modifica la configurazione predefinita](#update-component-configuration-to-default-configuration).

### com.aws.greengrass.authorization.exceptions.AuthorizationException: Duplicate policy ID "<id>" for principal "<componentList>"
<a name="ipc-duplicate-authorization-policy-ids"></a>

Potresti visualizzare questo errore se più politiche di autorizzazione IPC, inclusi tutti i componenti del dispositivo principale, utilizzano lo stesso ID di policy.

Controlla le politiche di autorizzazione IPC dei tuoi componenti, correggi eventuali duplicati e riprova. Per creare una politica univoca IDs, ti consigliamo di combinare il nome del componente, il nome del servizio IPC e un contatore. Per ulteriori informazioni, consulta [Autorizza i componenti a eseguire operazioni IPC](interprocess-communication.md#ipc-authorization-policies).

**Suggerimento**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
Se si modifica la `DefaultConfiguration` ricetta di un componente, è necessario ripristinare la configurazione del componente alla nuova configurazione predefinita. Quando distribuite il componente, specificate una singola stringa vuota come [aggiornamento di ripristino](update-component-configurations.md#reset-configuration-update). Per ulteriori informazioni, consulta [La configurazione dei componenti non si aggiorna quando si modifica la configurazione predefinita](#update-component-configuration-to-default-configuration).

### com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 400)
<a name="token-exchange-service-credentials-http-400"></a>

Potresti visualizzare questo errore quando un dispositivo principale non riesce a ottenere AWS le credenziali dal servizio di [scambio di token](interact-with-aws-services.md). Il codice di stato HTTP 400 indica che questo errore si è verificato perché il [ruolo IAM per lo scambio di token](device-service-role.md) del dispositivo principale non esiste o non esiste una relazione di fiducia che consenta al provider di AWS IoT credenziali di assumerlo.

Esegui questa operazione:

1. Identifica il ruolo di scambio di token utilizzato dal dispositivo principale. Il messaggio di errore include l'alias del AWS IoT ruolo del dispositivo principale, che rimanda al ruolo di scambio di token. Esegui il comando seguente sul tuo computer di sviluppo e sostituiscilo *MyGreengrassCoreTokenExchangeRoleAlias* con il nome dell'alias di AWS IoT ruolo contenuto nel messaggio di errore.

   ```
   aws iot describe-role-alias --role-alias MyGreengrassCoreTokenExchangeRoleAlias
   ```

   La risposta include l'Amazon Resource Name (ARN) del ruolo IAM per lo scambio di token.

   ```
   {
     "roleAliasDescription": {
       "roleAlias": "MyGreengrassCoreTokenExchangeRoleAlias",
       "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/MyGreengrassCoreTokenExchangeRoleAlias",
       "roleArn": "arn:aws:iam::123456789012:role/MyGreengrassV2TokenExchangeRole",
       "owner": "123456789012",
       "credentialDurationSeconds": 3600,
       "creationDate": "2021-02-05T16:46:18.042000-08:00",
       "lastModifiedDate": "2021-02-05T16:46:18.042000-08:00"
     }
   }
   ```

1. Verifica che il ruolo esista. Esegui il comando seguente e sostituiscilo *MyGreengrassV2TokenExchangeRole* con il nome del ruolo di scambio di token.

   ```
   aws iam get-role --role-name MyGreengrassV2TokenExchangeRole
   ```

   Se il comando restituisce un `NoSuchEntity` errore, il ruolo non esiste e devi crearlo. Per ulteriori informazioni su come creare e configurare questo ruolo, vedere[Autorizza i dispositivi principali a interagire con i servizi AWS](device-service-role.md).

1. Verifica che il ruolo abbia una relazione di fiducia che consenta al fornitore delle AWS IoT credenziali di assumerlo. La risposta del passaggio precedente contiene un`AssumeRolePolicyDocument`, che definisce le relazioni di fiducia del ruolo. Il ruolo deve definire una relazione di fiducia che `credentials.iot.amazonaws.com` consenta di assumerlo. Questo documento dovrebbe essere simile all'esempio seguente.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "credentials.iot.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

   Se le relazioni di fiducia del ruolo non `credentials.iot.amazonaws.com` consentono di assumerlo, è necessario aggiungere questa relazione di fiducia al ruolo. Per ulteriori informazioni, consulta [Modifica di un ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) nella *AWS Identity and Access Management Guida per l'utente di IAM*.

### com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 403)
<a name="token-exchange-service-credentials-http-403"></a>

Potresti visualizzare questo errore quando un dispositivo principale non riesce a ottenere AWS le credenziali dal [servizio di scambio di token](interact-with-aws-services.md). Il codice di stato HTTP 403 indica che questo errore si è verificato perché le AWS IoT politiche del dispositivo principale non concedono l'`iot:AssumeRoleWithCertificate`autorizzazione per l'alias di AWS IoT ruolo del dispositivo principale.

Esamina AWS IoT le politiche del dispositivo principale e aggiungi l'`iot:AssumeRoleWithCertificate`autorizzazione per l'alias di AWS IoT ruolo del dispositivo principale. Il messaggio di errore include l'alias del AWS IoT ruolo corrente del dispositivo principale. Per ulteriori informazioni su questa autorizzazione e su come aggiornare le AWS IoT politiche del dispositivo principale, consulta [AWS IoT Politica minima per i dispositivi AWS IoT Greengrass V2 principali](device-auth.md#greengrass-core-minimal-iot-policy) e[Aggiorna la politica di un dispositivo principale AWS IoT](device-auth.md#update-core-device-iot-policy).

### com.aws.greengrass.tes.CredentialsProviderError: Could not load credentials from any providers
<a name="token-exchange-service-credentials-provider-error"></a>

Potresti visualizzare questo errore quando il componente tenta di richiedere le AWS credenziali e non riesce a connettersi al [servizio di scambio di token](interact-with-aws-services.md).

Esegui questa operazione:
+ Verifica che il componente dichiari una dipendenza dal componente del servizio di scambio di token,. `aws.greengrass.TokenExchangeService` In caso contrario, aggiungi la dipendenza e ridistribuisci il componente.
+ Se il componente viene eseguito in docker, assicurati di applicare le impostazioni di rete e le variabili di ambiente corrette, in base a. [Usa AWS le credenziali nei componenti del contenitore Docker (Linux)](run-docker-container.md#docker-container-token-exchange-service)
+ [Se il componente è scritto in NodeJS, imposta dns. setDefaultResultOrdina a.](https://nodejs.org/docs/latest/api/dns.html#dnssetdefaultresultorderorder) **ipv4first**
+ `/etc/hosts`Cerca una voce che inizi con `::1` e contenga`localhost`. Rimuovi la voce per vedere se ha causato la connessione del componente al servizio di scambio di token all'indirizzo sbagliato.

### Received error when attempting to retrieve ECS metadata: Could not connect to the endpoint URL: "<tokenExchangeServiceEndpoint>"
<a name="token-exchange-service-not-running"></a>

Potresti visualizzare questo errore quando il componente non esegue il [servizio di scambio di token](interact-with-aws-services.md) e un componente tenta di richiedere le AWS credenziali.

Esegui questa operazione:
+ Verifica che il componente dichiari una dipendenza dal componente del servizio di scambio di token,. `aws.greengrass.TokenExchangeService` In caso contrario, aggiungi la dipendenza e ridistribuisci il componente.
+ Verifica se il componente utilizza le AWS credenziali nel suo ciclo di vita. `install` AWS IoT Greengrass non garantisce la disponibilità del servizio di scambio di token durante il ciclo di vita. `install` Aggiorna il componente per spostare il codice che utilizza AWS le credenziali nel `run` ciclo di vita `startup` o, quindi ridistribuisci il componente.

### copyFrom: <configurationPath> is already a container, not a leaf
<a name="configuration-key-is-container-cannot-become-leaf"></a>

Potresti visualizzare questo errore quando modifichi un valore di configurazione da un tipo di contenitore (un elenco o un oggetto) a un tipo non contenitore (stringa, numero o booleano). Esegui questa operazione:

1. Controlla la ricetta del componente per vedere se la sua configurazione predefinita imposta quel valore di configurazione su un elenco o un oggetto. In tal caso, rimuovi o modifica quel valore di configurazione.

1. Crea una distribuzione per ripristinare il valore di configurazione al valore predefinito. Per ulteriori informazioni, consultare [Creare distribuzione](create-deployments.md) e [Aggiornamento delle configurazioni dei componenti](update-component-configurations.md).

Quindi, puoi impostare quel valore di configurazione su una stringa, un numero o un valore booleano.

### com.aws.greengrass.componentmanager.plugins.docker.exceptions.DockerLoginException: Error logging into the registry using credentials - 'The stub received bad data.'
<a name="docker-login-stub-received-bad-data"></a>

Potresti visualizzare questo errore nei registri del nucleo di Greengrass quando il [componente Docker Application Manager tenta di scaricare un'immagine Docker](docker-application-manager-component.md) da un repository privato in Amazon Elastic Container Registry (Amazon ECR). [Questo errore si verifica se si utilizza l'helper per le credenziali Docker (). `wincred`](https://github.com/docker/docker-credential-helpers) `docker-credential-wincred` Di conseguenza, Amazon ECR non è in grado di memorizzare le credenziali di accesso.

Esegui una delle seguenti azioni:
+ Se non usi l'helper per le credenziali `wincred` Docker, rimuovi il `docker-credential-wincred` programma dal dispositivo principale.
+ Se usi l'helper per le credenziali `wincred` Docker, procedi come segue:

  1. Rinomina il `docker-credential-wincred` programma sul dispositivo principale. `wincred`Sostituiscilo con un nuovo nome per l'helper delle credenziali di Windows Docker. Ad esempio, puoi rinominarlo in. `docker-credential-wincredreal`

  1. Aggiorna l'`credsStore`opzione nel file di configurazione Docker (`.docker/config.json`) per utilizzare il nuovo nome per l'helper delle credenziali di Windows Docker. Ad esempio, se hai rinominato il programma in`docker-credential-wincredreal`, aggiorna l'opzione in. `credsStore` `wincredreal`

     ```
     {
       "credsStore": "wincredreal"
     }
     ```

### java.io.IOException: Cannot run program "cmd" ...: [LogonUser] The password for this account has expired.
<a name="windows-account-password-expired"></a>

Potresti visualizzare questo errore su un dispositivo Windows Core quando l'utente di sistema che esegue i processi del componente, ad esempio`ggc_user`, ha una password scaduta. Di conseguenza, il software AWS IoT Greengrass Core non è in grado di eseguire i processi dei componenti come utente del sistema.

**Per aggiornare la password di un utente del sistema Greengrass**

1. Esegui il seguente comando come amministratore per impostare la password dell'utente. Sostituiscilo *ggc\$1user* con l'utente di sistema e sostituiscilo *password* con la password da impostare.

   ```
   net user ggc_user password
   ```

1. Utilizzate l'[PsExec utilità](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) per memorizzare la nuova password dell'utente nell'istanza di Credential Manager per l' LocalSystem account. Sostituiscila *password* con la password dell'utente che hai impostato.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

**Suggerimento**  <a name="windows-password-expiration-tip"></a>
A seconda della configurazione di Windows, la password dell'utente potrebbe essere impostata per scadere in date future. Per garantire che le tue applicazioni Greengrass continuino a funzionare, tieni traccia della scadenza della password e aggiornala prima che scada. Puoi anche impostare la password dell'utente in modo che non scada mai.  
Per verificare la scadenza di un utente e della relativa password, esegui il comando seguente.  

  ```
  net user ggc_user | findstr /C:expires
  ```
Per impostare la password di un utente in modo che non scada mai, esegui il comando seguente.  

  ```
  wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
  ```
Se utilizzi Windows 10 o versioni successive in cui il [`wmic`comando è obsoleto, esegui il comando](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic) seguente. PowerShell   

  ```
  Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  ```

### aws.greengrass.StreamManager: Instant exceeds minimum or maximum instant
<a name="stream-manager-instant-exceeds-maximun-minimum"></a>

Quando aggiorni stream manager v2.0.7 a una versione compresa tra v2.0.8 e v2.0.11, potresti visualizzare il seguente errore nei log del componente stream manager se il componente non si avvia. 

```
2021-07-16T00:54:58.568Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: com.fasterxml.jackson.databind.JsonMappingException: Instant exceeds minimum or maximum instant (through reference chain: com.amazonaws.iot.greengrass.streammanager.export.PersistedSuccessExportStatesV1["lastExportTime"]). {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
2021-07-16T00:54:58.579Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: java.time.DateTimeException: Instant exceeds minimum or maximum instant. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
```

Se hai distribuito stream manager v2.0.7 e desideri eseguire l'aggiornamento a una versione successiva, devi eseguire l'aggiornamento direttamente a stream manager v2.0.12. Per ulteriori informazioni sul componente stream manager, consulta. [Stream manager](stream-manager-component.md)

## Problemi relativi ai componenti della funzione Lambda del dispositivo principale
<a name="greengrass-core-lambda-function-issues"></a>

Risolvi i problemi relativi ai componenti della funzione Lambda sui dispositivi principali.

**Topics**
+ [The following cgroup subsystems are not mounted: devices, memory](#lambda-cgroups-not-mounted)
+ [ipc\$1client.py:64,HTTP Error 400:Bad Request, b'No subscription exists for the source <label-or-lambda-arn> and subject <label-or-lambda-arn>](#v1-lambda-no-subscription-exists)

### The following cgroup subsystems are not mounted: devices, memory
<a name="lambda-cgroups-not-mounted"></a>

Potresti visualizzare questo errore quando esegui una funzione Lambda containerizzata nei seguenti casi:
+ Il dispositivo principale non ha cgroup v1 abilitato per la memoria o i cgroup del dispositivo.
+ Il dispositivo principale ha cgroups v2 abilitato. Le funzioni Greengrass Lambda richiedono cgroups v1 e cgroups v1 e v2 si escludono a vicenda.

Per abilitare cgroups v1, avvia il dispositivo con i seguenti parametri del kernel Linux.

```
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
```

**Suggerimento**  
Su un Raspberry Pi, modifica il `/boot/cmdline.txt` file per impostare i parametri del kernel del dispositivo.

### ipc\$1client.py:64,HTTP Error 400:Bad Request, b'No subscription exists for the source <label-or-lambda-arn> and subject <label-or-lambda-arn>
<a name="v1-lambda-no-subscription-exists"></a>

[Potresti visualizzare questo errore quando esegui una funzione Lambda V1, che utilizza AWS IoT Greengrass Core SDK, su un dispositivo core V2 senza specificare un abbonamento nel componente legacy del router di abbonamento.](legacy-subscription-router-component.md) Per risolvere questo problema, distribuisci e configura il router di abbonamento legacy per specificare gli abbonamenti richiesti. Per ulteriori informazioni, consulta [Importa funzioni Lambda V1](set-up-v2-test-device.md#run-v1-lambda-functions).

## La versione del componente è stata interrotta
<a name="discontinued-component-version"></a>

Potresti visualizzare una notifica sulla tua Personal Health Dashboard (PHD) quando una versione di un componente sul tuo dispositivo principale viene interrotta. La versione del componente invia questa notifica al tuo dottorato di ricerca entro 60 minuti dalla cessazione della produzione.

Per vedere quali implementazioni è necessario rivedere, procedi come segue utilizzando: AWS Command Line Interface

1. Esegui il comando seguente per ottenere un elenco dei tuoi dispositivi principali.

   ```
   aws greengrassv2 list-core-devices
   ```

1. Esegui il comando seguente per recuperare lo stato dei componenti su ciascun dispositivo principale dal passaggio 1. Sostituiscilo `coreDeviceName` con il nome di ogni dispositivo principale da interrogare.

   ```
   aws greengrassv2 list-installed-components --core-device-thing-name coreDeviceName
   ```

1. Raccogli i dispositivi principali con la versione del componente fuori produzione installata nei passaggi precedenti.

1. Esegui il comando seguente per recuperare lo stato di tutti i processi di distribuzione per ogni dispositivo principale dal Passaggio 3. Sostituisci `coreDeviceName` con il nome del dispositivo principale da interrogare.

   ```
   aws greengrassv2 list-effective-deployments --core-device-thing-name coreDeviceName
   ```

   La risposta contiene l'elenco dei processi di distribuzione per il dispositivo principale. È possibile modificare la distribuzione per scegliere un'altra versione del componente. [Per ulteriori informazioni su come rivedere una distribuzione, consulta Revisionare le distribuzioni.](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html)

## Problemi relativi all'interfaccia a riga di comando di Greengrass
<a name="greengrass-cli-issues"></a>

[Risolvi i problemi con la CLI di Greengrass.](gg-cli.md)

**Topics**
+ [java.lang.RuntimeException: Unable to create ipc client](#greengrass-cli-unable-to-create-ipc-client)

### java.lang.RuntimeException: Unable to create ipc client
<a name="greengrass-cli-unable-to-create-ipc-client"></a>

Potresti visualizzare questo errore quando esegui un comando Greengrass CLI e specifichi una cartella principale diversa da quella in cui è installato il software AWS IoT Greengrass Core.

Effettuate una delle seguenti operazioni per impostare il percorso principale e sostituitelo `/greengrass/v2` con il percorso di installazione del software AWS IoT Greengrass Core:<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]
  ```

## AWS Command Line Interface problemi
<a name="aws-cli-issues"></a>

Risolvi i AWS CLI problemi relativi a. AWS IoT Greengrass V2

**Topics**
+ [Error: Invalid choice: 'greengrassv2'](#aws-cli-invalid-choice-greengrassv2)

### Error: Invalid choice: 'greengrassv2'
<a name="aws-cli-invalid-choice-greengrassv2"></a>

È possibile che venga visualizzato questo errore quando si esegue un AWS IoT Greengrass V2 comando con AWS CLI (ad esempio,`aws greengrassv2 list-core-devices`).

Questo errore indica che hai una versione di AWS CLI che non supporta AWS IoT Greengrass V2. Per utilizzarlo AWS IoT Greengrass V2 con AWS CLI, è necessario disporre di una delle seguenti versioni o successive:<a name="minimum-aws-cli-versions"></a>
+ Versione minima AWS CLI V1: v1.18.197
+ Versione minima AWS CLI V2: v2.1.11

**Suggerimento**  <a name="tip-check-aws-cli-version"></a>
Puoi eseguire il seguente comando per verificare la versione di cui disponi AWS CLI .  

```
aws --version
```

Per risolvere questo problema, aggiornalo AWS CLI a una versione successiva che supporti AWS IoT Greengrass V2. Per ulteriori informazioni, vedere [Installazione, aggiornamento e disinstallazione di AWS CLI nella](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) *Guida per l'AWS Command Line Interface utente*.

# Codici di errore di distribuzione dettagliati
<a name="troubleshooting-deployment"></a>

Utilizza i codici di errore e le soluzioni in queste sezioni per risolvere i problemi relativi alla distribuzione dei componenti quando utilizzi Greengrass nucleus versione 2.8.0 o successiva.

Il nucleo Greengrass riporta gli errori di implementazione sotto forma di gerarchia dal codice meno specifico a quello più specifico disponibile. È possibile utilizzare questa gerarchia per individuare il motivo di un errore di distribuzione. Ad esempio, la seguente è una possibile gerarchia degli errori:
+ DEPLOYMENT\$1FAILURE
  + ARTIFACT\$1DOWNLOAD\$1ERROR
    + IO\$1ERROR
      + SPAZIO SU DISCO CRITICO

I codici di errore sono organizzati in tipi. Ogni tipo rappresenta una classe di errori che possono verificarsi. AWS IoT Greengrass riporta questi tipi di errori nella console, nell'API e AWS CLI. Può esserci più di un tipo di errore, a seconda degli errori segnalati nella gerarchia degli errori. Nell'esempio precedente, il tipo di errore restituito è. `DEVICE_ERROR`

I tipi sono:
+ **PERMISSION\$1ERROR — L'**accesso a un'operazione che richiede l'autorizzazione è stato negato.
+ **REQUEST\$1ERROR** — Si è verificato un errore a causa di un problema nel documento di distribuzione.
+ **COMPONENT\$1RECIPE\$1ERROR — Si è verificato un errore** a causa di un problema nella ricetta di un componente.
+ **AWS\$1COMPONENT\$1ERROR — Si** è verificato un errore durante l'avvio o la rimozione di un componente fornito. AWS 
+ **USER\$1COMPONENT\$1ERROR — Si** è verificato un errore durante l'avvio o la rimozione di un componente utente.
+ **COMPONENT\$1ERROR** — Si è verificato un errore durante l'avvio o la rimozione di un componente, ma il nucleo di Greengrass non è riuscito a determinare se il componente è un componente AWS fornito o un componente utente.
+ **DEVICE\$1ERROR — Si è verificato un errore** con un errore locale o un altro dispositivo. I/O 
+ **DEPENDENCY\$1ERROR** — Una distribuzione non è riuscita a scaricare un artefatto da Amazon S3 o a estrarre un'immagine da un registro ECR.
+ **HTTP\$1ERROR** — Si è verificato un errore con una richiesta HTTP.
+ **NETWORK\$1ERROR — Si** è verificato un errore nella rete del dispositivo.
+ **NUCLEUS\$1ERROR** — Il nucleo di Greengrass non è riuscito a localizzare un componente o non è riuscito a trovare la versione del nucleo attivo.
+ **SERVER\$1ERROR — Un server ha restituito un errore** 500 in risposta a una richiesta.
+ **CLOUD\$1SERVICE\$1ERROR — Si è verificato un errore** con il servizio cloud. AWS IoT Greengrass 
+ **UNKNOWN\$1ERROR** — Un'eccezione non controllata è stata generata dal componente.

Molti degli errori in questa sezione riportano informazioni aggiuntive nei log Core. AWS IoT Greengrass Questi registri vengono archiviati nel file system locale del dispositivo principale. Esistono registri per il software AWS IoT Greengrass principale Core e per ogni singolo componente. Per informazioni sull'accesso ai log, vedere. [Accedere ai log del file system](monitor-logs.md#access-local-logs)

## Errore di autorizzazione
<a name="permission-error"></a>

ACCESS\$1DENIED  
È possibile che venga visualizzato questo errore quando un'operazione AWS di servizio restituisce un errore 403 perché le autorizzazioni non sono impostate correttamente. Controlla il codice di errore più specifico per i dettagli.

GET\$1DEPLOYMENT\$1CONFIGURATION\$1ACCESS\$1DENIED  
Potresti ricevere questo errore quando la politica non consente l'autorizzazione a chiamare l'operazione. AWS IoT `GetDeploymentConfiguration` Aggiungi l'`greengrass::GetDeploymentConfiguration`autorizzazione alla politica del dispositivo principale.

GET\$1COMPONENT\$1VERSION\$1ARTIFACT\$1ACCESS\$1DENIED  
Potresti ricevere questo errore quando la policy principale del dispositivo non consente l'autorizzazione. AWS IoT `greengrass:GetComponentVersionArtifact` Aggiungi l'autorizzazione alla politica del dispositivo principale.

RESOLVE\$1COMPONENT\$1CANDIDATES\$1ACCESS\$1DENIED  
Potresti ricevere questo errore quando la politica di base del dispositivo non consente l'autorizzazione. AWS IoT `greengrass:ResolveComponentCandidates` Aggiungi l'autorizzazione alla politica del dispositivo principale.

GET\$1ECR\$1CREDENTIAL\$1ERROR  
Potresti ricevere questo errore quando la distribuzione non è in grado di autenticarsi con un registro privato in ECR. Controlla il registro per verificare la presenza di un errore specifico, quindi riprova a eseguire la distribuzione.

USER\$1NOT\$1AUTHORIZED\$1FOR\$1DOCKER  
Potresti ricevere questo errore quando l'utente Greengrass non è autorizzato a utilizzare Docker. Assicurati che Greengrass sia in esecuzione come utente root o che l'utente sia aggiunto al `docker` gruppo. Quindi riprova a eseguire la distribuzione.

S3\$1ACCESS\$1DENIED  
Potresti ricevere questo errore quando un'operazione Amazon S3 restituisce un errore 403. Controlla eventuali codici di errore o log aggiuntivi per ulteriori dettagli.

S3\$1HEAD\$1OBJECT\$1ACCESS\$1DENIED  
Potresti ricevere questo errore quando il ruolo di scambio di token del dispositivo non consente al software AWS IoT Greengrass Core di scaricare l'elemento del componente dall'URL dell'oggetto S3 specificato nella ricetta del componente o se l'elemento del componente non è disponibile. Verifica che il ruolo di scambio di token `s3:GetObject` consenta l'URL dell'oggetto S3 in cui l'artefatto è disponibile e che l'artefatto sia presente.

S3\$1GET\$1BUCKET\$1LOCATION\$1ACCESS\$1DENIED  
Potresti ricevere questo errore quando il ruolo di scambio di token del dispositivo non consente l'`s3:GetBucketLocation`autorizzazione per il bucket Amazon S3 in cui è disponibile l'artefatto. Verifica che il dispositivo consenta l'autorizzazione, quindi riprova a eseguire la distribuzione.

S3\$1GET\$1OBJECT\$1ACCESS\$1DENIED  
Potresti ricevere questo errore quando il ruolo di scambio di token del dispositivo non consente al software AWS IoT Greengrass Core di scaricare l'elemento del componente dall'URL dell'oggetto S3 specificato nella ricetta del componente o se l'elemento del componente non è disponibile. Verifica che il ruolo di scambio di token `s3:GetObject` consenta l'URL dell'oggetto S3 in cui l'artefatto è disponibile e che l'artefatto sia presente.

## Errore nella richiesta
<a name="request-error"></a>

NUCLEUS\$1MISSING\$1REQUIRED\$1CAPABILITIES  
Potresti ricevere questo errore quando la versione Nucleus della distribuzione non supporta le operazioni richieste, come il download di una configurazione di grandi dimensioni o l'impostazione dei limiti delle risorse Linux. Riprova la distribuzione con una versione nucleus che supporti l'operazione.

MULTIPLE\$1NUCLEUS\$1RESOLVED\$1ERROR  
Potresti ricevere questo errore quando una distribuzione tenta di distribuire più componenti del nucleo. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

COMPONENT\$1CIRCULAR\$1DEPENDENCY\$1ERROR  
Potresti ricevere questo errore quando due componenti della tua distribuzione dipendono l'uno dall'altro. Rivedi la configurazione dei componenti in modo che i componenti della distribuzione non dipendano l'uno dall'altro. 

UNAUTHORIZED\$1NUCLEUS\$1MINOR\$1VERSION\$1UPDATE  
Potresti ricevere questo errore quando un componente della tua distribuzione richiede un aggiornamento della versione secondaria di Nucleus, ma quella versione non è specificata nella distribuzione. Questo aiuta a ridurre gli aggiornamenti accidentali di versioni secondarie per i componenti che dipendono da una versione diversa. Includi la nuova versione del nucleo minore nella distribuzione.

MISSING\$1DOCKER\$1APPLICATION\$1MANAGER  
Potresti ricevere questo errore quando distribuisci un componente Docker senza distribuire il gestore di applicazioni Docker. Assicurati che la tua distribuzione includa il gestore delle applicazioni Docker.

MISSING\$1TOKEN\$1EXCHANGE\$1SERVICE  
Potresti ricevere questo errore quando la distribuzione desidera scaricare un elemento di immagine Docker da un registro ECR privato senza implementare il servizio di scambio di token. Assicurati che la tua distribuzione includa il servizio di scambio di token.

COMPONENT\$1VERSION\$1REQUIREMENTS\$1NOT\$1MET  
Potresti ricevere questo errore quando c'è un conflitto di vincoli di versione o non esiste una versione del componente. Per ulteriori informazioni, consulta [Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>](troubleshooting.md#core-error-no-available-component-version).

THROTTLING\$1ERROR  
È possibile che si verifichi questo errore quando un'operazione AWS di servizio supera una quota tariffaria. Riprova a eseguire la distribuzione.

REQUEST\$1CONFLITTUALE  
È possibile che si verifichi questo errore quando un'operazione di AWS servizio restituisce un errore 409 perché la distribuzione sta tentando di eseguire più di un'operazione alla volta. Riprova a eseguire la distribuzione.

RESOURCE\$1NOT\$1FOUND  
Potresti ricevere questo errore quando un'operazione di AWS servizio restituisce un errore 404 perché non è stato possibile trovare una risorsa. Controlla nel registro la risorsa mancante.

RUN\$1WITH\$1CONFIG\$1NOT\$1VALID  
Potresti ricevere questo errore quando le, o le `windowsUser` informazioni specificate per `posixUser` eseguire il `posixGroup` componente non sono valide. Verifica che l'utente sia valido, quindi riprova la distribuzione.

UNSUPPORTED\$1REGION  
Potresti ricevere questo errore quando la regione specificata per la distribuzione non è supportata da. AWS IoT Greengrass Controlla la regione e riprova a eseguire la distribuzione.

IOT\$1CRED\$1ENDPOINT\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'endpoint di credenziali specificato nella AWS IoT configurazione non è valido. Controlla l'endpoint e riprova la richiesta.

IOT\$1DATA\$1ENDPOINT\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'endpoint di dati specificato nella AWS IoT configurazione non è valido. Controlla l'endpoint e riprova la richiesta.

S3\$1HEAD\$1OBJECT\$1RESOURCE\$1NOT\$1FOUND  
Potresti ricevere questo errore quando l'elemento del componente non è disponibile all'URL dell'oggetto S3 specificato nella ricetta del componente. Verifica di aver caricato l'artefatto nel bucket S3 e che l'URI dell'artefatto corrisponda all'URL dell'oggetto S3 dell'artefatto nel bucket.

S3\$1GET\$1BUCKET\$1LOCATION\$1RESOURCE\$1NOT\$1FOUND  
Potresti ricevere questo errore quando il bucket Amazon S3 non viene trovato. Verifica che il bucket esista e riprova a eseguire la distribuzione.

S3\$1GET\$1OBJECT\$1RESOURCE\$1NOT\$1FOUND  
Potresti ricevere questo errore quando l'elemento del componente non è disponibile all'URL dell'oggetto S3 specificato nella ricetta del componente. Verifica di aver caricato l'artefatto nel bucket S3 e che l'URI dell'artefatto corrisponda all'URL dell'oggetto S3 dell'artefatto nel bucket.

IO\$1MAPPING\$1ERROR  
Potresti ricevere questo errore quando si verifica un I/O errore durante l'analisi del documento o della ricetta di distribuzione. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

## Errore nella composizione del componente
<a name="component-recipe-error"></a>

RECIPE\$1PARSE\$1ERROR  
Potresti ricevere questo errore quando la ricetta di distribuzione non può essere analizzata perché c'è un errore nella struttura della ricetta. Verifica che la ricetta sia formattata correttamente e riprova a eseguire la distribuzione.

RECIPE\$1METADATA\$1PARSE\$1ERROR  
Potresti ricevere questo errore quando i metadati della ricetta di distribuzione scaricati dal cloud non possono essere analizzati. Contatto. Supporto

ARTIFACT\$1URI\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'URI di un artefatto in una ricetta non è formattato correttamente. Controlla nel registro l'URI che non è valido, aggiorna l'URI nella ricetta, quindi riprova a eseguire la distribuzione.

S3\$1ARTIFACT\$1URI\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'URI Amazon S3 di un artefatto in una ricetta non è valido. Controlla nel registro l'URI che non è valido, aggiorna l'URI nella ricetta, quindi riprova a eseguire la distribuzione.

DOCKER\$1ARTIFACT\$1URI\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'URI Docker di un artefatto in una ricetta non è valido. Controlla nel registro l'URI che non è valido, aggiorna l'URI nella ricetta, quindi riprova a eseguire la distribuzione.

EMPTY\$1ARTIFACT\$1URI  
Potresti ricevere questo errore quando l'URI di un artefatto non è specificato in una ricetta. Controlla nel registro l'elemento a cui manca un URI, aggiorna l'URI nella ricetta, quindi riprova a eseguire la distribuzione.

EMPTY\$1ARTIFACT\$1SCHEME  
Potresti ricevere questo errore quando uno schema URI non è definito per un artefatto. Controlla nel registro l'URI che non è valido, aggiorna l'URI nella ricetta, quindi riprova a eseguire la distribuzione.

UNSUPPORTED\$1ARTIFACT\$1SCHEME  
Potresti ricevere questo errore quando uno schema URI non è supportato dalla versione nucleus in esecuzione. O un URI non è valido o devi aggiornare la versione del nucleo. Se l'URI non è valido, controlla nel registro l'URI che non è valido, aggiorna l'URI nella ricetta, quindi riprova a eseguire la distribuzione.

RECIPE\$1MISSING\$1MANIFEST  
Potresti ricevere questo errore quando la sezione manifest non è inclusa nella ricetta. Aggiungi il manifesto alla ricetta e riprova a eseguire la distribuzione.

RECIPE\$1MISSING\$1ARTIFACT\$1HASH\$1ALGORITHM  
Potresti ricevere questo errore quando un artefatto non locale viene specificato all'interno di una ricetta senza un algoritmo hash. Aggiungi l'algoritmo all'artefatto e poi riprova con la richiesta.

ARTIFACT\$1CHECKSUM\$1MISMATCH  
Potresti ricevere questo errore quando un artefatto scaricato ha un digest diverso da quello specificato nella ricetta. Assicurati che la ricetta contenga il digest corretto, quindi riprova a eseguire la distribuzione. Per ulteriori informazioni, consulta [Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.](troubleshooting.md#core-error-failed-to-download-artifact-checksum-mismatch-exception).

COMPONENT\$1DEPENDENCY\$1NOT\$1VALID  
Potresti ricevere questo errore quando il tipo di dipendenza specificato in una ricetta di distribuzione non è valido. Controlla la ricetta e poi riprova la richiesta.

CONFIG\$1INTERPOLATE\$1ERROR  
Potresti ricevere questo errore durante l'interpolazione di una variabile di ricetta. Controlla il registro per i dettagli.

IO\$1MAPPING\$1ERROR  
Potresti ricevere questo errore quando si verifica un I/O errore durante l'analisi del documento o della ricetta di distribuzione. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

## AWS errore del componente, errore del componente utente, errore del componente
<a name="component-error"></a>

I seguenti codici di errore vengono restituiti quando si verifica un problema con un componente. Il tipo di errore effettivo riportato dipende dal componente specifico che ha generato l'errore. Se il nucleo Greengrass identifica il componente come fornito da AWS IoT Greengrass, restituisce. `AWS_COMPONENT_ERROR` Se il componente viene identificato come componente utente, viene restituito il nucleo Greengrass. `USER_COMPONENT_ERROR` Se il nucleo di Greengrass non lo sa, ritorna. `COMPONENT_ERROR`

COMPONENT\$1UPDATE\$1ERROR  
Potresti ricevere questo errore quando un componente non si aggiorna durante una distribuzione. Controlla eventuali codici di errore aggiuntivi o controlla il registro per vedere cosa ha causato l'errore.

COMPONENT\$1ROTTO  
Potresti ricevere questo errore quando un componente si rompe durante una distribuzione. Controlla il registro dei componenti per i dettagli dell'errore, quindi riprova a eseguire la distribuzione.

REMOVE\$1COMPONENT\$1ERROR  
Potresti ricevere questo errore quando il nucleo non è in grado di rimuovere un componente durante una distribuzione. Controlla il registro per i dettagli dell'errore, quindi riprova a eseguire la distribuzione.

COMPONENT\$1BOOTSTRAP\$1TIMEOUT  
Potresti ricevere questo errore quando l'attività di bootstrap di un componente impiega più tempo del timeout configurato. Aumenta il timeout o riduci il tempo di esecuzione dell'attività di bootstrap, quindi riprova a eseguire la distribuzione.

COMPONENT\$1BOOTSTRAP\$1ERROR  
Potresti ricevere questo errore quando l'attività di bootstrap di un componente presenta un errore. Controlla il registro per i dettagli dell'errore, quindi riprova a eseguire la distribuzione.

COMPONENT\$1CONFIGURATION\$1NOT\$1VALID  
Potresti ricevere questo errore quando il nucleo non è in grado di convalidare la configurazione distribuita per il componente. Controlla il registro per i dettagli dell'errore, quindi riprova a eseguire la distribuzione.

## Errore del dispositivo
<a name="device-error"></a>

IO\$1WRITE\$1ERROR  
Potresti ricevere questo errore durante la scrittura su un file. Controlla il registro per i dettagli.

IO\$1READ\$1ERROR  
Potresti ricevere questo errore durante la lettura da un file. Controlla il registro per i dettagli.

DISK\$1SPACE\$1CRITICAL  
Potresti ricevere questo errore quando lo spazio su disco non è sufficiente per completare una richiesta di distribuzione. È necessario disporre di almeno 20 Mb di spazio disponibile o sufficiente per contenere un artefatto più grande. Liberate spazio su disco e riprovate a eseguire la distribuzione.

IO\$1FILE\$1ATTRIBUTE\$1ERROR  
Potresti ricevere questo errore quando la dimensione del file esistente non può essere recuperata dal file system. Controlla il registro per i dettagli.

SET\$1PERMISSION\$1ERROR  
Potresti ricevere questo errore quando le autorizzazioni non possono essere impostate su una directory di artifact o artifact scaricata. Controlla il registro per i dettagli.

IO\$1UNZIP\$1ERROR  
Potresti ricevere questo errore quando un artefatto non può essere decompresso. Controlla il registro per i dettagli.

LOCAL\$1RECIPE\$1NOT\$1FOUND  
Potresti ricevere questo errore quando non riesci a trovare la copia locale di un file di ricette. Prova di nuovo a eseguire la distribuzione.

LOCAL\$1RECIPE\$1CORRUPTED  
Potresti ricevere questo errore quando la copia locale della ricetta è cambiata da quando è stata scaricata. Elimina la copia esistente della ricetta e riprova a eseguire la distribuzione.

LOCAL\$1RECIPE\$1METADATA\$1NOT\$1FOUND  
Potresti ricevere questo errore quando non riesci a trovare la copia locale del file di metadati della ricetta. Prova di nuovo a eseguire la distribuzione.

LAUNCH\$1DIRECTORY\$1CORRUPTED  
Potresti ricevere questo errore quando la directory utilizzata per avviare Greengrass nucleus (`/greengrass/v2/alts/current`) è stata modificata dall'ultima volta che il nucleo è stato avviato. Riavviate il nucleo e riprovate a eseguire la distribuzione.

HASHING\$1ALGORITHM\$1AVAILABLE  
Potresti ricevere questo errore quando la distribuzione Java del dispositivo non supporta l'algoritmo di hashing richiesto o quando l'algoritmo hash specificato nella ricetta di un componente non è valido.

DEVICE\$1CONFIG\$1NOT\$1VALID\$1FOR\$1ARTIFACT\$1DOWNLOAD  
Potresti ricevere questo errore quando c'è un errore nella configurazione del dispositivo che ha impedito alla distribuzione di scaricare l'artefatto da Amazon S3 o dal cloud Greengrass. Controlla nel registro la presenza di un errore di configurazione specifico, quindi riprova a eseguire la distribuzione.

## Errore di dipendenza
<a name="dependency-error"></a>

DOCKER\$1ERROR  
Potresti ricevere questo errore quando estrai un'immagine Docker. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

DOCKER\$1SERVICE\$1AVAILABLE  
Potresti ricevere questo errore quando Greengrass non riesce ad accedere al registro Docker. Controlla il registro per verificare la presenza di un errore specifico, quindi riprova a eseguire la distribuzione.

DOCKER\$1LOGIN\$1ERROR  
Potresti ricevere questo errore quando si verifica un errore imprevisto durante l'accesso a Docker. Controlla il registro per verificare la presenza di un errore specifico, quindi riprova a eseguire la distribuzione.

DOCKER\$1PULL\$1ERROR  
Potresti ricevere questo errore quando si verifica un errore imprevisto durante l'estrazione di un'immagine Docker dal registro. Controlla il registro per verificare la presenza di un errore specifico, quindi riprova a eseguire la distribuzione.

DOCKER\$1IMAGE\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'immagine Docker richiesta non esiste. Controlla il registro per verificare la presenza di un errore specifico e riprova a eseguire la distribuzione.

DOCKER\$1IMAGE\$1QUERY\$1ERROR  
Potresti ricevere questo errore quando si verifica un errore imprevisto durante l'interrogazione di Docker per le immagini disponibili. Controlla nel registro l'errore specifico e riprova a eseguire la distribuzione.

S3\$1ERROR  
Potresti ricevere questo errore durante il download di un elemento Amazon S3. Controlla eventuali codici di errore o log aggiuntivi per ulteriori dettagli.

S3\$1RESOURCE\$1NOT\$1FOUND  
Potresti ricevere questo errore quando un'operazione Amazon S3 restituisce un errore 404. Controlla eventuali codici di errore o log aggiuntivi per ulteriori dettagli.

S3\$1BAD\$1REQUEST  
Potresti ricevere questo errore quando un'operazione Amazon S3 restituisce un errore 400. Verifica la presenza di un errore specifico nel registro e riprova a eseguire la richiesta.

## Errore HTTP
<a name="http-error"></a>

HTTP\$1REQUEST\$1ERROR  
Potresti ricevere questo errore quando si è verificato un errore durante la richiesta HTTP. Controlla il registro per l'errore specifico.

DOWNLOAD\$1DEPLOYMENT\$1DOCUMENT\$1ERROR  
Potresti ricevere questo errore quando si è verificato un errore HTTP durante il download del documento di distribuzione. Controlla il registro per l'errore HTTP specifico.

GET\$1GREENGRASS\$1ARTIFACT\$1SIZE\$1ERROR  
Potresti ricevere questo errore quando si verifica un errore HTTP durante l'acquisizione della dimensione di un elemento di un componente pubblico. Controlla il registro per l'errore HTTP specifico.

DOWNLOAD\$1GREENGRASS\$1ARTIFACT\$1ERROR  
Potresti ricevere questo errore quando si verifica un errore HTTP durante il download di un elemento di un componente pubblico. Controlla nel registro l'errore HTTP specifico.

## Errore di rete
<a name="network-error"></a>

ERRORE DI RETE  
Potresti ricevere questo errore quando si verifica un problema di connessione durante una distribuzione. Verifica la connessione del dispositivo a Internet e riprova a eseguire la distribuzione.

## Errore Nucleus
<a name="nucleus-error"></a>

RICHIESTA\$1CATTIVA  
Potresti ricevere questo errore quando un'operazione AWS cloud restituisce un errore 400. Controlla il log per vedere quale API ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

NUCLEUS\$1VERSION\$1NOT\$1FOUND  
Potresti ricevere questo errore quando un dispositivo principale non riesce a trovare la versione del nucleo attivo. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

NUCLEUS\$1RESTART\$1FAILURE  
Potresti ricevere questo errore quando il nucleus non si riavvia durante una distribuzione che richiede il riavvio del nucleus. Controlla il log del loader per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

INSTALLED\$1COMPONENT\$1NOT\$1FOUND  
Potresti ricevere questo errore quando il nucleo non riesce a localizzare un componente installato. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

DEPLOYMENT\$1DOCUMENT\$1NOT\$1VALID  
Potresti ricevere questo errore quando il dispositivo riceve un documento di distribuzione non valido. Controlla eventuali codici di errore aggiuntivi o controlla il registro per vedere cosa ha causato l'errore.

EMPTY\$1DEPLOYMENT\$1REQUEST  
Potresti ricevere questo errore quando un dispositivo riceve una richiesta di distribuzione vuota. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

DEPLOYMENT\$1DOCUMENT\$1PARSE\$1ERROR  
Potresti ricevere questo errore quando il formato della richiesta di distribuzione non corrisponde al formato previsto. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

COMPONENT\$1METADATA\$1NOT\$1VALID\$1IN\$1DEPLOYMENT  
Potresti ricevere questo errore quando la richiesta di distribuzione contiene metadati del componente non validi. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

LAUNCH\$1DIRECTORY\$1CORRUPTED  
È possibile che si verifichi questo errore quando si sposta un dispositivo Greengrass da un gruppo di oggetti a un altro e poi si torna al gruppo originale con distribuzioni che richiedono il riavvio di Greengrass. Per risolvere l'errore, ricrea la directory di avvio di Greengrass sul dispositivo.  
Per ulteriori informazioni, consulta [Error: com.aws.greengrass.deployment.exceptions.DeploymentException: Unable to process deployment. Greengrass launch directory is not set up or Greengrass is not set up as a system service](troubleshooting.md#deployment-error-unable-to-process-deployment).

## Errore del server
<a name="server-error"></a>

SERVER\$1ERROR  
Potresti ricevere questo errore quando un'operazione di AWS servizio restituisce un errore 500 perché il servizio non è in grado di elaborare la richiesta in questo momento. Riprova la distribuzione più tardi.

S3\$1SERVER\$1ERROR  
Potresti ricevere questo errore quando un'operazione Amazon S3 restituisce un errore 500. Controlla eventuali codici di errore o log aggiuntivi per ulteriori dettagli.

## Errore del servizio cloud
<a name="cloud-service-error"></a>

RESOLVE\$1COMPONENT\$1CANDIDATES\$1BAD\$1RESPONSE  
Potresti ricevere questo errore quando il servizio cloud Greengrass invia una risposta incompatibile all'operazione. `ResolveComponentCandidates` Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

DEPLOYMENT\$1DOCUMENT\$1SIZE\$1EXCEEDED  
Potresti ricevere questo errore quando il documento di distribuzione richiesto supera la quota di dimensione massima. Riduci le dimensioni del documento di distribuzione e riprova a eseguire la distribuzione.

GREENGRASS\$1ARTIFACT\$1SIZE\$1NOT\$1FOUND  
Potresti ricevere questo errore quando Greengrass non riesce a ottenere la dimensione di un elemento di un componente pubblico. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

DEPLOYMENT\$1DOCUMENT\$1NOT\$1VALID  
Potresti ricevere questo errore quando il dispositivo riceve un documento di distribuzione non valido. Controlla eventuali codici di errore aggiuntivi o controlla il registro per vedere cosa ha causato l'errore.

EMPTY\$1DEPLOYMENT\$1REQUEST  
Potresti ricevere questo errore quando un dispositivo riceve una richiesta di distribuzione vuota. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

DEPLOYMENT\$1DOCUMENT\$1PARSE\$1ERROR  
Potresti ricevere questo errore quando il formato della richiesta di distribuzione non corrisponde al formato previsto. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

COMPONENT\$1METADATA\$1NOT\$1VALID\$1IN\$1DEPLOYMENT  
Potresti ricevere questo errore quando la richiesta di distribuzione contiene metadati del componente non validi. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

## Errori generici
<a name="generic-error"></a>

A questi errori generici non è associato un tipo di errore.

DEPLOYMENT\$1INTERRUPTED  
Potresti ricevere questo errore quando una distribuzione non può essere completata a causa di un arresto del nucleo o di un altro evento esterno. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

ARTIFACT\$1DOWNLOAD\$1ERROR  
Potresti ricevere questo errore quando c'è un problema durante il download di un artefatto. Controlla eventuali codici di errore o log aggiuntivi per ulteriori dettagli.

NESSUNA VERSIONE DISPONIBILE DEL COMPONENTE  
Potresti ricevere questo errore quando una versione del componente non esiste nel cloud o localmente o se c'è un conflitto di risoluzione delle dipendenze. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

COMPONENT\$1PACKAGE\$1LOADING\$1ERROR  
Potresti ricevere questo errore quando si verifica un errore nell'elaborazione degli artefatti scaricati. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

CLOUD\$1 API\$1ERROR  
Potresti ricevere questo errore quando si verifica un errore durante la chiamata a un'API di AWS servizio. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

IO\$1ERROR  
Potresti ricevere questo errore quando si verifica un I/O errore durante una distribuzione. Controlla eventuali codici di errore o log aggiuntivi per i dettagli.

COMPONENT\$1UPDATE\$1ERROR  
Potresti ricevere questo errore quando un componente non si aggiorna durante una distribuzione. Controlla eventuali codici di errore aggiuntivi o controlla il registro per vedere cosa ha causato l'errore.

## Errore sconosciuto
<a name="unknown-error"></a>

DEPLOYMENT\$1FAILURE  
Potresti ricevere questo errore quando una distribuzione fallisce perché è stata generata un'eccezione non controllata. Controlla il registro per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus o contatta. Supporto

DEPLOYMENT\$1TYPE\$1NOT\$1VALID  
Potresti ricevere questo errore quando il tipo di distribuzione non è valido. Controlla il log per vedere cosa ha causato l'errore, quindi controlla la pagina di aggiornamento del software nucleus per vedere se il problema è stato corretto in una versione successiva del nucleus, oppure contatta. Supporto

# Codici di stato dettagliati dei componenti
<a name="troubleshooting-component"></a>

Usa i codici di stato e le soluzioni in queste sezioni per risolvere i problemi con i componenti quando usi Greengrass nucleus versione 2.8.0 o successiva.

Molti degli stati descritti in questo argomento riportano informazioni aggiuntive nei Core log. AWS IoT Greengrass Questi registri vengono archiviati nel file system locale del dispositivo principale. Esistono registri per ogni singolo componente. Per informazioni sull'accesso ai log, vedere. [Accedere ai log del file system](monitor-logs.md#access-local-logs)

ERRORE\$1INSTALLAZIONE  
Potresti ricevere questo messaggio quando si verifica un errore durante l'esecuzione di uno script di installazione. Il codice di errore viene riportato nel registro dei componenti. Verifica la presenza di errori nello script di installazione e distribuisci nuovamente il componente.

INSTALL\$1CONFIG\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'installazione di un componente non può essere completata perché la `install` sezione della ricetta non è valida. Controlla la presenza di errori nella sezione di installazione della ricetta e riprova a eseguire la distribuzione.

INSTALL\$1IO\$1ERROR  
È possibile che si verifichi un errore di I/O durante l'installazione di un componente. Controlla il registro degli errori del componente per i dettagli sull'errore.

INSTALL\$1MISSING\$1DEFAULT\$1RUNWITH  
Potresti ricevere questo errore quando non riesci a determinare l'utente o il gruppo da AWS IoT Greengrass utilizzare durante l'installazione di un componente. Assicurati che la `runWith` sezione della procedura di installazione includa un utente o un gruppo valido. 

INSTALL\$1TIMEOUT  
Potresti ricevere questo errore quando lo script di installazione non viene completato entro il periodo di timeout configurato. Aumenta il `Timeout` periodo specificato nella `install` sezione della ricetta o modifica lo script di installazione in modo che finisca entro il timeout configurato.

ERRORE\$1AVVIO  
Potresti ricevere questo messaggio quando si verifica un errore durante l'esecuzione di uno script di avvio. Il codice di errore viene riportato nel registro dei componenti. Verifica la presenza di errori nello script di installazione e distribuisci nuovamente il componente.

STARTUP\$1CONFIG\$1NOT\$1VALID  
Potresti ricevere questo errore quando l'installazione di un componente non può essere completata perché la `startup` sezione della ricetta non è valida. Controlla la presenza di errori nella sezione di avvio della ricetta e riprova a eseguire la distribuzione.

STARTUP\$1IO\$1ERROR  
È possibile che si verifichi un errore di I/O durante l'avvio di un componente. Controlla il registro degli errori del componente per i dettagli sull'errore.

STARTUP\$1MISSING\$1DEFAULT\$1RUNWITH  
Potresti ricevere questo errore quando non riesci a determinare l'utente o il gruppo da AWS IoT Greengrass utilizzare durante l'esecuzione di un componente. Assicurati che la `runWith` sezione della ricetta di avvio includa un utente o un gruppo valido.

STARTUP\$1TIMEOUT  
Potresti ricevere questo errore quando lo script di avvio non viene completato entro il periodo di timeout configurato. Aumenta il `Timeout` periodo specificato nella `startup` sezione della ricetta o modifica lo script di avvio in modo che finisca entro il timeout configurato.

RUN\$1ERROR  
È possibile che si verifichi un errore durante l'esecuzione di uno script di componente. Il codice di errore viene riportato nel registro dei componenti. Verifica la presenza di errori nello script di esecuzione e distribuisci nuovamente il componente.

RUN\$1MISSING\$1DEFAULT\$1RUNWITH  
Potresti ricevere questo errore quando non riesci a determinare l'utente o il gruppo da AWS IoT Greengrass utilizzare durante l'esecuzione di un componente. Assicurati che la `runWith` sezione della ricetta di esecuzione includa un utente o un gruppo valido.

RUN\$1CONFIG\$1NOT\$1VALID  
Potresti ricevere questo errore quando non è possibile eseguire un componente perché la `run` sezione della ricetta non è valida. Controlla la presenza di errori nella sezione di esecuzione della ricetta e riprova a eseguire la distribuzione.

RUN\$1IO\$1ERROR  
È possibile che si verifichi un errore di I/O mentre il componente è in esecuzione. Controlla il registro degli errori del componente per i dettagli sull'errore.

RUN\$1TIMEOUT  
Potresti ricevere questo errore quando lo script di esecuzione non viene completato entro il periodo di timeout configurato. Aumenta il `Timeout` periodo specificato nella `run` sezione della ricetta o modifica lo script di esecuzione in modo che finisca entro il timeout configurato.

SHUTDOWN\$1ERROR  
È possibile che si verifichi un errore durante la chiusura di uno script di componente. Il codice di errore viene riportato nel registro dei componenti. Verifica la presenza di errori nello script di spegnimento e distribuisci nuovamente il componente.

SHUTDOWN\$1TIMEOUT  
Potresti ricevere questo errore quando lo script di spegnimento non viene completato entro il periodo di timeout configurato. Aumenta il `Timeout` periodo specificato nella `shutdown` sezione della ricetta o modifica lo script di esecuzione per completarlo entro il timeout configurato.