

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Resolución de problemas AWS IoT Greengrass V2
<a name="troubleshooting"></a>

Utilice la información y las soluciones de solución de problemas de esta sección para ayudar a resolver los problemas con. AWS IoT Greengrass Version 2

**Topics**
+ [Visualización AWS IoT Greengrass Registros principales de software y componentes](#troubleshoot-with-logs)
+ [AWS IoT Greengrass Problemas principales de software](#greengrass-core-issues)
+ [AWS IoT Greengrass problemas con la nube](#greengrass-cloud-issues)
+ [Problemas de implementación del dispositivo principal](#greengrass-core-deployment-issues)
+ [Problemas con los componentes del dispositivo principal](#greengrass-core-component-issues)
+ [Problemas con los componentes de la función de Lambda del dispositivo principal](#greengrass-core-lambda-function-issues)
+ [Versión del componente descontinuada](#discontinued-component-version)
+ [Problemas con la interfaz de la línea de comandos de Greengrass](#greengrass-cli-issues)
+ [AWS Command Line Interface problemas](#aws-cli-issues)
+ [Códigos de error de implementación detallados](troubleshooting-deployment.md)
+ [Códigos de estado de componentes detallados](troubleshooting-component.md)

## Visualización AWS IoT Greengrass Registros principales de software y componentes
<a name="troubleshoot-with-logs"></a>

El software AWS IoT Greengrass Core escribe registros en el sistema de archivos local que puede usar para ver información en tiempo real sobre el dispositivo principal. También puede configurar los dispositivos principales para que escriban registros en los CloudWatch registros, de modo que pueda solucionar los problemas de los dispositivos principales de forma remota. Estos registros pueden ayudarlo a identificar problemas con los componentes, las implementaciones y los dispositivos principales. Para obtener más información, consulte [Supervisión de los registros de AWS IoT Greengrass](monitor-logs.md).

## AWS IoT Greengrass Problemas principales de software
<a name="greengrass-core-issues"></a>

Solucionar problemas AWS IoT Greengrass de software principal. 

**Topics**
+ [ThrottlingException desde ListDeployments la API](#ThrottlingException)
+ [No se ha podido configurar el dispositivo principal](#unable-to-set-up-core-device)
+ [No se puede iniciar el AWS IoT Greengrass El software principal como servicio del sistema](#unable-to-start-system-service)
+ [No se puede configurar el núcleo como un servicio del sistema](#unable-to-set-up-system-service)
+ [No se puede conectar a AWS IoT Core](#core-error-unable-to-connect-to-aws-iot)
+ [Error de falta de memoria](#java-out-of-memory)
+ [No se puede instalar la CLI de Greengrass](#unable-to-install-greengrass-cli)
+ [El usuario root no puede ejecutar](#user-not-allowed-to-execute)
+ [com.aws.greengrass.lifecyclemanager. GenericExternalService: No se ha podido determinar si se va a ejecutar con user/group](#missing-default-run-with-user)
+ [No se pudo mapear un segmento desde un objeto compartido: operación no permitida](#tmp-folder-noexec)
+ [No se pudo configurar el servicio de Windows](#failed-to-set-up-windows-service)
+ [com.aws.greengrass.util.exceptions. TLSAuthException: No se pudo obtener el administrador de confianza](#failed-to-get-trust-manager)
+ [com.aws.greengrass.deployment. IotJobsHelper: No hay conexión disponible durante la suscripción al tema de descripciones de Iot Jobs. Lo volverá a intentar en algún momento](#iot-jobs-no-connection-available)
+ [software.amazon.awssdk.services.iam.model. IamException: El token de seguridad incluido en la solicitud no es válido](#error-invalid-security-token)
+ [software.amazon.awssdk.services.iot.model. IotException: Usuario: el usuario no está autorizado a realizar: iot: < > GetPolicy](#missing-automatic-provisioning-permissions)
+ [Error: com.aws.greengrass.shadowmanager.sync.model. FullShadowSyncRequest: No se pudo ejecutar la solicitud cloud shadow get](#shadow-manager-error-could-not-execute-shadow-get-request)
+ [Greengrass no admite la < operación > aws.greengrass\#](#ipc-operation-not-supported)
+ [java.io. FileNotFoundException: < stream-manager-store-root-dir /stream\_manager\_metadata\_store (permiso denegado>)](#stream-manager-store-root-folder-not-found)
+ [com.aws.greengrass.security.provider.pkcs11. PKCS11CryptoKeyService: La clave privada o el certificado con etiqueta no existen < >](#pkcs11-provider-error-private-key-or-certificate-does-not-exist)
+ [software.amazon.awssdk.services.secretsmanager.model. SecretsManagerException: Usuario: el usuario no está autorizado a realizar: secretsmanager: on resource: arn < > GetSecretValue < >](#secret-manager-error-not-authorized-to-perform-get-secret-value)
+ [software.amazon.awssdk.services.secretsmanager.model. SecretsManagerException: No se permite el acceso a KMS](#secret-manager-error-no-kms-access)
+ [java.lang. NoClassDefFoundError:// com/awsgreengrass/securityCryptoKeySpi](#hardware-security-incompatible-nucleus-version)
+ [com.aws.greengrass.security.provider.pkcs11. PKCS11CryptoKeyService: CKR\_OPERATION\_NOT\_INITIALIZED](#ckr-operation-not-initialized)
+ [El dispositivo central de Greengrass está atascado en el núcleo v2.12.3](#v2.12.3-revise-deployment)
+ [Problema con la plantilla systemd de Greengrass nucleus v2.14.0](#v2.14.0-systemd-template)

### ThrottlingException desde ListDeployments la API
<a name="ThrottlingException"></a>

`ThrottlingException` de la API `ListDeployments`: es posible que observe esto cuando tenga una gran cantidad de implementaciones. 

Para resolver este problema, siga uno de estos pasos:
+ Si usa el SDK, especifique el MaxResult parámetro. Por ejemplo, para [JavaSDK](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/greengrassv2/model/ListDeploymentsRequest.html#maxResults) con un valor pequeño (por ejemplo, 5).
+ Puede usar [AWS Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html) para solicitar un aumento del límite de velocidad de la API `DescribeJob`. Puedes ir a la consola de cuotas de servicio, seleccionar las cuotas AWS IoT y el nombre del límite es **DescribeJob throttle limit**. Puede aumentarlo de 10 a 50.

### No se ha podido configurar el dispositivo principal
<a name="unable-to-set-up-core-device"></a>

Si el instalador del software AWS IoT Greengrass principal falla y no puedes configurar un dispositivo principal, es posible que tengas que desinstalar el software y volver a intentarlo. Para obtener más información, consulte [Desinstale el AWS IoT Greengrass Software principal](uninstall-greengrass-core-v2.md).

### No se puede iniciar el AWS IoT Greengrass El software principal como servicio del sistema
<a name="unable-to-start-system-service"></a>

Si el software AWS IoT Greengrass principal no se inicia, [compruebe los registros de servicio del sistema](monitor-logs.md#access-system-service-logs) para identificar el problema. Un problema habitual es que Java no esté disponible en la variable de entorno PATH (Linux) o en la variable de sistema PATH (Windows).

### No se puede configurar el núcleo como un servicio del sistema
<a name="unable-to-set-up-system-service"></a>

Es posible que aparezca este error si el instalador del software AWS IoT Greengrass principal no se configura AWS IoT Greengrass como un servicio del sistema. En los dispositivos Linux, este error suele producirse si el dispositivo principal no tiene el sistema de inicio [systemd](https://en.wikipedia.org/wiki/Systemd). El instalador puede configurar correctamente el software AWS IoT Greengrass principal aunque no pueda configurar el servicio del sistema.

Realice una de las siguientes acciones:
+ Configure y ejecute el software AWS IoT Greengrass principal como un servicio del sistema. Debe configurar el software como un servicio del sistema para poder utilizar todas las características de AWS IoT Greengrass. Puede instalar [systemd](https://en.wikipedia.org/wiki/Systemd) o utilizar un sistema de inicio diferente. Para obtener más información, consulte [Configuración del núcleo de Greengrass como un servicio del sistema](configure-greengrass-core-v2.md#configure-system-service).
+ Ejecute el software AWS IoT Greengrass principal sin un servicio de sistema. Puede ejecutar el software mediante un script de cargador que el instalador configura en la carpeta raíz de Greengrass. Para obtener más información, consulte [Ejecute el software AWS IoT Greengrass Core sin un servicio de sistema](run-greengrass-core-v2.md#run-greengrass-core-no-system-service).

### No se puede conectar a AWS IoT Core
<a name="core-error-unable-to-connect-to-aws-iot"></a>

Es posible que aparezca este error cuando el software AWS IoT Greengrass principal no se pueda conectar AWS IoT Core para recuperar los trabajos de implementación, por ejemplo. Haga lo siguiente:
+ Comprueba que tu dispositivo principal se pueda conectar a Internet y AWS IoT Core. Para obtener más información sobre el AWS IoT Core punto final al que se conecta el dispositivo, consulte[Configurar el software AWS IoT Greengrass principal](configure-greengrass-core-v2.md).
+ Comprueba que el dispositivo AWS IoT principal utilice un certificado que permita los `iot:Subscribe` permisos `iot:Connect` `iot:Publish``iot:Receive`, y.
+ Si su dispositivo principal usa un [proxy de red](configure-greengrass-core-v2.md#configure-network-proxy), compruebe que el dispositivo principal tenga un [rol de dispositivo](device-service-role.md) y que este rol conceda los permisos `iot:Connect`, `iot:Publish`, `iot:Receive` y `iot:Subscribe`.

### Error de falta de memoria
<a name="java-out-of-memory"></a>

Este error suele producirse si el dispositivo no tiene memoria suficiente para asignar un objeto en el montón de Java. En los dispositivos con memoria limitada, es posible que tenga que especificar un tamaño máximo de pila para controlar la asignación de memoria. Para obtener más información, consulte [Control de la asignación de memoria con las opciones de JVM](configure-greengrass-core-v2.md#jvm-tuning).

### No se puede instalar la CLI de Greengrass
<a name="unable-to-install-greengrass-cli"></a>

Es posible que veas el siguiente mensaje de consola cuando utilices el `--deploy-dev-tools` argumento en el comando de instalación de 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
```

Esto ocurre cuando el componente CLI de Greengrass no está instalado porque el dispositivo principal es miembro de un grupo de objetos que tiene una implementación existente. Si ve este mensaje, puede implementar manualmente el componente CLI de Greengrass (`aws.greengrass.Cli`) en el dispositivo para instalar la CLI de Greengrass. Para obtener más información, consulte [Instalación de la CLI de Greengrass](install-gg-cli.md).

### El usuario root no puede ejecutar
<a name="user-not-allowed-to-execute"></a>

Es posible que aparezca este error cuando el usuario que ejecuta el software AWS IoT Greengrass principal (normalmente`root`) no tiene permiso para ejecutar `sudo` con ningún usuario ni grupo. Para el usuario `ggc_user` predeterminado del sistema, este error tiene el siguiente aspecto:

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

Compruebe que el archivo `/etc/sudoers` da permiso al usuario para ejecutar `sudo` como otros grupos. El permiso para el usuario en `/etc/sudoers` debería verse como el siguiente ejemplo.

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

### com.aws.greengrass.lifecyclemanager. GenericExternalService: No se ha podido determinar si se va a ejecutar con user/group
<a name="missing-default-run-with-user"></a>

Es posible que aparezca este error cuando el dispositivo principal intente ejecutar un componente y el núcleo de Greengrass no especifique un usuario de sistema predeterminado para ejecutar los componentes.

Para solucionar este problema, configure el núcleo de Greengrass para especificar el usuario del sistema predeterminado que ejecuta los componentes. Para obtener más información, consulte [Configuración del usuario que ejecuta los componentes](configure-greengrass-core-v2.md#configure-component-user) y [Configuración del usuario del componente predeterminado](configure-greengrass-core-v2.md#configure-default-component-user).

### No se pudo mapear un segmento desde un objeto compartido: operación no permitida
<a name="tmp-folder-noexec"></a>

Es posible que aparezca este error si el software AWS IoT Greengrass principal no se inicia porque la `/tmp` carpeta está montada con `noexec` permisos. La [biblioteca Common Runtime (CRT) de AWS](https://github.com/awslabs/aws-crt-java) usa la carpeta `/tmp` de forma predeterminada.

Realice una de las siguientes acciones:
+ Ejecute el siguiente comando para volver a montar la carpeta `/tmp` con permisos `exec` e inténtelo de nuevo.

  ```
  sudo mount -o remount,exec /tmp
  ```
+ Si ejecuta Greengrass nucleus v2.5.0 o posterior, puede configurar una opción de JVM para cambiar la carpeta que utiliza la biblioteca CRT. AWS Puede especificar el `jvmOptions` parámetro en la configuración del componente núcleo de Greengrass en una implementación o al instalar el software AWS IoT Greengrass Core. {{/path/to/use}}Sustitúyalo por la ruta a una carpeta que pueda usar la biblioteca AWS CRT.

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

### No se pudo configurar el servicio de Windows
<a name="failed-to-set-up-windows-service"></a>

Es posible que veas este error si instalas el software AWS IoT Greengrass Core en un dispositivo Microsoft Windows 2016. El software AWS IoT Greengrass principal no es compatible con Windows 2016; para obtener una lista de los sistemas operativos compatibles, consulte[Plataformas admitidas](greengrass-nucleus-component.md#greengrass-v2-supported-platforms).

Si debe utilizar Windows 2016, puede hacer lo siguiente:

1. Descomprima el archivo de instalación AWS IoT Greengrass de Core descargado

1. Abra el archivo `bin/greengrass.xml.template` en el directorio `Greengrass`.

1. Agregue la etiqueta `<autoRefresh>` al final del archivo justo antes de la etiqueta `</service>`.

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

### com.aws.greengrass.util.exceptions. TLSAuthException: No se pudo obtener el administrador de confianza
<a name="failed-to-get-trust-manager"></a>

Es posible que aparezca este error al instalar el software AWS IoT Greengrass principal sin un archivo de entidad emisora de certificados (CA) raíz.

```
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
```

Compruebe que ha especificado un archivo de CA raíz válido con el parámetro `rootCaPath` en el archivo de configuración que ha proporcionado al instalador. Para obtener más información, consulte [Instalación del software AWS IoT Greengrass Core](install-greengrass-core-v2.md).

### com.aws.greengrass.deployment. IotJobsHelper: No hay conexión disponible durante la suscripción al tema de descripciones de Iot Jobs. Lo volverá a intentar en algún momento
<a name="iot-jobs-no-connection-available"></a>

Es posible que veas este mensaje de advertencia cuando el dispositivo principal no pueda conectarse para suscribirse AWS IoT Core a las notificaciones de tareas de implementación. Haga lo siguiente:
+ Compruebe que el dispositivo principal esté conectado a Internet y pueda acceder al punto final de AWS IoT datos que configuró. Para obtener más información acerca de los puntos de conexión que utilizan los dispositivos principales, consulte [Cómo permitir el tráfico del dispositivo a través de un proxy o firewall](allow-device-traffic.md).
+ Compruebe los registros de Greengrass para ver si hay otros errores que revelen otras causas principales.

### software.amazon.awssdk.services.iam.model. IamException: El token de seguridad incluido en la solicitud no es válido
<a name="error-invalid-security-token"></a>

Es posible que aparezca este error al [instalar el software AWS IoT Greengrass principal con el aprovisionamiento automático](quick-installation.md) y el instalador utilice un token de AWS sesión que no es válido. Haga lo siguiente:
+ Si utiliza credenciales de seguridad temporales, compruebe que el token de sesión es correcto y que está copiando y pegando el token de sesión completo.
+ Si utiliza credenciales de seguridad de larga duración, compruebe que el dispositivo no tenga un token de sesión de una época en la que utilizó credenciales temporales. Haga lo siguiente:

  1. Ejecute el siguiente comando para anular la configuración de la variable de entorno del token de sesión.

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

     ```
     unset AWS_SESSION_TOKEN
     ```

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

     ```
     set AWS_SESSION_TOKEN=
     ```

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

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

------

  1. Compruebe si el archivo de AWS credenciales,`~/.aws/credentials`, contiene un token de sesión,`aws_session_token`. Si es así, elimine esa línea del archivo.

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

También puede instalar el software AWS IoT Greengrass Core sin proporcionar AWS credenciales. Para obtener más información, consulte [Instale el software AWS IoT Greengrass principal con aprovisionamiento manual de recursos](manual-installation.md) o [Instale el software AWS IoT Greengrass principal con aprovisionamiento AWS IoT de flota](fleet-provisioning.md).

### software.amazon.awssdk.services.iot.model. IotException: Usuario: el usuario no está autorizado a realizar: iot: < > GetPolicy
<a name="missing-automatic-provisioning-permissions"></a>

Es posible que aparezca este error al [instalar el software AWS IoT Greengrass principal con el aprovisionamiento automático](quick-installation.md) y el instalador utilice AWS credenciales que no tienen los permisos necesarios. Para obtener más información sobre los permisos necesarios, consulte [Política de IAM mínima para que el instalador aprovisione recursos](provision-minimal-iam-policy.md).

Compruebe los permisos de la identidad de IAM de las credenciales y otorgue a la identidad de IAM los permisos necesarios que falten.

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

Es posible que veas este error cuando utilices el [componente administrador de sombras](shadow-manager-component.md) para [sincronizar las sombras del dispositivo con ellas AWS IoT Core](sync-shadows-with-iot-core.md). El código de estado HTTP 403 indica que este error se produjo porque la AWS IoT política del dispositivo principal no concede permiso para realizar llamadas`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)
```

Para sincronizar con las sombras locales AWS IoT Core, la AWS IoT política del dispositivo principal debe conceder los siguientes permisos:
+ `iot:GetThingShadow`
+ `iot:UpdateThingShadow`
+ `iot:DeleteThingShadow`

Comprueba la AWS IoT política del dispositivo principal y añade los permisos necesarios que falten. Para obtener más información, consulte los siguientes temas:
+ [AWS IoT Core acciones políticas](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) en la *Guía para AWS IoT desarrolladores*
+ [Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy)

### Greengrass no admite la < operación > aws.greengrass\#
<a name="ipc-operation-not-supported"></a>

Es posible que aparezca este error cuando utilice una [operación de comunicación entre procesos (IPC)](interprocess-communication.md) en un componente personalizado de Greengrass y el componente requerido AWS proporcionado no esté instalado en el dispositivo principal.

Para solucionar este problema, añada el componente necesario como una [dependencia en la receta de componentes](component-recipe-reference.md#recipe-reference-component-dependencies), de modo que el software AWS IoT Greengrass principal instale el componente necesario al implementar el componente.
+ [Recupera los valores secretos](ipc-secret-manager.md): `aws.greengrass.SecretManager`
+ [Interactúa con las sombras locales](ipc-local-shadows.md): `aws.greengrass.ShadowManager`
+ [Administre las implementaciones y los componentes locales](ipc-local-deployments-components.md): `aws.greengrass.Cli` versión 2.6.0 o posterior
+ [Autentice y autorice los dispositivos DE cliente](ipc-client-device-auth.md): `aws.greengrass.clientdevices.Auth` versión 2.2.0 o posterior

### java.io. FileNotFoundException: < stream-manager-store-root-dir /stream\_manager\_metadata\_store (permiso denegado>)
<a name="stream-manager-store-root-folder-not-found"></a>

Es posible que vea este error en el archivo de registro del administrador de flujos (`aws.greengrass.StreamManager.log`) cuando configura el [administrador de flujos](stream-manager-component.md) para que use una carpeta raíz que no existe o que no tiene los permisos correctos. Para obtener más información sobre cómo configurar esta carpeta, consulte [configuración del administrador de flujos](stream-manager-component.md#stream-manager-component-configuration).

### com.aws.greengrass.security.provider.pkcs11. PKCS11CryptoKeyService: La clave privada o el certificado con etiqueta no existen < >
<a name="pkcs11-provider-error-private-key-or-certificate-does-not-exist"></a>

Este error se produce cuando el [componente proveedor PKCS \#11](pkcs11-provider-component.md) no puede encontrar ni cargar la clave privada o el certificado que especificó al configurar el software AWS IoT Greengrass principal para que utilice un [módulo de seguridad de hardware (HSM](hardware-security.md)). Haga lo siguiente:
+ Compruebe que la clave privada y el certificado estén almacenados en el HSM mediante la ranura, el PIN de usuario y la etiqueta de objeto para los que ha configurado el software AWS IoT Greengrass Core.
+ Compruebe que la clave privada y el certificado utilizan la misma etiqueta de objeto en el HSM.
+ Si su HSM admite identificadores de objeto, compruebe que la clave privada y el certificado utilicen el mismo identificador de objeto en el HSM.

Consulte la documentación de su HSM para obtener información sobre cómo consultar los detalles sobre los tokens de seguridad del HSM. Si necesita cambiar la ranura, la etiqueta del objeto o el identificador del objeto por un token de seguridad, consulte la documentación de su HSM para obtener información sobre cómo hacerlo.

### software.amazon.awssdk.services.secretsmanager.model. SecretsManagerException: Usuario: el usuario no está autorizado a realizar: secretsmanager: on resource: arn < > GetSecretValue < >
<a name="secret-manager-error-not-authorized-to-perform-get-secret-value"></a>

Este error puede producirse cuando se utiliza el [componente de administrador de secretos](secret-manager-component.md) para implementar un secreto. AWS Secrets Manager Si el [rol de IAM de intercambio de token](device-service-role.md) del dispositivo principal no otorga permiso para obtener el secreto, la implementación falla y los registros de Greengrass incluyen este error.

**Cómo autorizar a un dispositivo principal a descargar un secreto**

1. Agregue el permiso `secretsmanager:GetSecretValue` al rol de intercambio de token del dispositivo principal. En el siguiente ejemplo de declaración de política, se concede permiso para obtener el valor de un secreto.

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

   Para obtener más información, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

1. Vuelve a aplicar la implementación al dispositivo principal. Realice una de las siguientes acciones:
   + Revise la implementación sin cambios. El dispositivo principal intenta volver a descargar el secreto cuando recibe la implementación revisada. Para obtener más información, consulte [Revisión de las implementaciones](revise-deployments.md).
   + Reinicie el software AWS IoT Greengrass principal para volver a intentar la implementación. Para obtener más información, consulte [Ejecute el software AWS IoT Greengrass principal](run-greengrass-core-v2.md)

   La implementación se realiza correctamente si el administrador de secretos descarga el secreto correctamente.

### software.amazon.awssdk.services.secretsmanager.model. SecretsManagerException: No se permite el acceso a KMS
<a name="secret-manager-error-no-kms-access"></a>

Este error puede producirse cuando se utiliza el [componente de administrador de secretos](secret-manager-component.md) para implementar un AWS Secrets Manager secreto cifrado mediante una AWS Key Management Service clave. Si el [rol de IAM de intercambio de token](device-service-role.md) del dispositivo principal no otorga permiso para descifrar el secreto, la implementación falla y los registros de Greengrass incluyen este error.

Para solucionar el problema, agregue el permiso `kms:Decrypt` al rol de intercambio de token del dispositivo principal. Para obtener más información, consulte los siguientes temas:
+ [Cifrado y descifrado de secretos ](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) en la *Guía del usuario de AWS Secrets Manager *
+ [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md)

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

Es posible que veas este error cuando intentes instalar el software AWS IoT Greengrass Core con [seguridad de hardware](hardware-security.md) y utilices una versión anterior del núcleo de Greengrass que no admite la integración de seguridad de hardware. Para usar la integración de seguridad de hardware, debe usar el núcleo de Greengrass versión 2.5.3 o posterior.

### com.aws.greengrass.security.provider.pkcs11. PKCS11CryptoKeyService: CKR\_OPERATION\_NOT\_INITIALIZED
<a name="ckr-operation-not-initialized"></a>

Es posible que aparezca este error cuando utilice la biblioteca TPM2 al ejecutar Core como un servicio del sistema. AWS IoT Greengrass 

Este error indica que debe agregar una variable de entorno que proporcione la ubicación del almacén PKCS \#11 en el archivo de servicio AWS IoT Greengrass Core systemd. 

Para obtener más información, consulte la sección Requisitos de la documentación del componente [Proveedor PKCS\#11](pkcs11-provider-component.md).

### El dispositivo central de Greengrass está atascado en el núcleo v2.12.3
<a name="v2.12.3-revise-deployment"></a>

Si su dispositivo principal de Greengrass no revisa la implementación de la versión 2.12.3 de núcleo, es posible que tenga que descargar y reemplazar el archivo `Greengrass.jar` por la versión 2.12.2 del núcleo de Greengrass. Haga lo siguiente:

1. Ejecute el siguiente comando en su dispositivo principal de Greengrass para detener el software de Greengrass Core.

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

   ```
   sudo systemctl stop greengrass
   ```

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

   ```
   sc stop "greengrass"
   ```

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

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

------

1. En su dispositivo principal, descargue el AWS IoT Greengrass software en un archivo denominado. `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. Descomprime el software AWS IoT Greengrass principal en una carpeta de tu dispositivo. {{GreengrassInstaller}}Sustitúyalo por la carpeta que desee usar.

------
#### [ 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. Ejecute el siguiente comando para anular el archivo JAR de Greengrass de la versión 2.12.3 del núcleo por el archivo JAR de Greengrass de la versión 2.12.2 del núcleo.

------
#### [ 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. Ejecute el siguiente comando para iniciar el software de Greengrass Core.

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

   ```
   sudo systemctl start greengrass
   ```

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

   ```
   sc start "greengrass"
   ```

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

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

------

### Problema con la plantilla systemd de Greengrass nucleus v2.14.0
<a name="v2.14.0-systemd-template"></a>

Es posible que se encuentre con este problema si ha instalado la versión 2.14.0 del núcleo de Greengrass en un dispositivo Linux con su plantilla de servicio systemd predeterminada. Haga lo siguiente:

1. En su dispositivo principal de Greengrass, ejecute el siguiente comando para revertir el archivo de servicio de systemd a la forma en que estaba en la versión 2.13.0 y versiones anteriores del núcleo.

------
#### [ 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. Aplique los cambios.

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

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

------

## AWS IoT Greengrass problemas con la nube
<a name="greengrass-cloud-issues"></a>

Usa la siguiente información para solucionar problemas con la AWS IoT Greengrass consola y la API. Cada entrada corresponde a un mensaje de error que puede aparecer al realizar una acción.

### Se produjo un error (AccessDeniedException) al llamar a la CreateComponentVersion operación: el usuario: arn:aws:iam: < :123456789012:user/ username no está autorizado a realizar la operación: null >
<a name="cloud-error-create-component-version-not-authorized-to-perform-null"></a>

Es posible que aparezca este error al crear una versión de componente desde la consola o durante la operación. AWS IoT Greengrass [CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html)

Este error indica que su receta no es válida en formato JSON o YAML. Compruebe la sintaxis de su receta, corrija cualquier problema de sintaxis e inténtelo de nuevo. Puede usar un corrector de sintaxis JSON o YAML en línea para identificar los problemas de sintaxis en su receta.

### Entrada no válida: se encontraron los siguientes errores en los artefactos: {<s3 ArtifactUri > = No se puede acceder al recurso de artefacto especificado}
<a name="cloud-error-specified-artifact-resource-cannot-be-accessed"></a>

Es posible que aparezca este error al crear una versión de un componente desde la AWS IoT Greengrass consola o durante la [CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html)operación. Este error indica que un artefacto de S3 en la receta del componente no es válido.

Haga lo siguiente:
+ Compruebe que el depósito de S3 esté en el mismo Región de AWS lugar en el que creó el componente. AWS IoT Greengrass no admite solicitudes de artefactos de componentes entre regiones.
+ Compruebe que el URI del artefacto es una URL de objeto S3 válida y compruebe que el artefacto existe en esa URL de objeto S3.
+ Comprueba que tienes Cuenta de AWS permiso para acceder al artefacto en la URL del objeto S3.

### Estado de despliegue INACTIVO
<a name="cloud-error-inactive-deployment"></a>

Es posible que obtengas un estado de `INACTIVE` despliegue cuando llames a la [ListDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListDeployments.html)API sin las AWS IoT políticas dependientes requeridas. Debe tener los permisos necesarios para obtener un estado de implementación preciso. Puede encontrar las acciones dependientes consultando las [acciones definidas por AWS IoT Greengrass V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotgreengrassv2.html#awsiotgreengrassv2-actions-as-permissions) y siguiendo los permisos necesarios para `ListDeployments`. Sin los AWS IoT permisos dependientes necesarios, seguirás viendo el estado de la implementación, pero es posible que veas un estado de implementación incorrecto de`INACTIVE`.

### CreateDeployment devuelve una respuesta correcta pero GetDeployment devuelve un error 404
<a name="cloud-error-create-deployment-returns-200-get-deployment-returns-404"></a>

Es posible que aparezca este problema al llamar a la [CreateDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html)operación de despliegue en una AWS IoT cosa o grupo de cosas. La `CreateDeployment` llamada devuelve un código `200` de estado con un identificador de despliegue válido. Sin embargo, cuando llamas [GetDeployment](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_GetDeployment.html)con ese ID de despliegue, recibes un `ResourceNotFoundException` error. La AWS IoT Greengrass consola muestra la página «Implementación no encontrada» para la URL de implementación. Es posible que la implementación anterior del destino también muestre un `INACTIVE` estado sin reemplazo.

Este problema puede producirse cuando varias `CreateDeployment` solicitudes se dirigen al AWS IoT mismo objeto al mismo tiempo. Una condición de carrera puede provocar que la nube no registre el despliegue. El dispositivo principal sigue recibiendo y aplicando el despliegue a través de la sombra del AWS IoT dispositivo, pero el servicio AWS IoT Greengrass en la nube no lo registra. Una vez que se produzca este problema, también podría afectar a las implementaciones posteriores en el mismo objetivo.

Haga lo siguiente para resolver y evitar este problema:
+ Evita enviar `CreateDeployment` solicitudes simultáneas que tengan como objetivo el AWS IoT mismo objetivo. Serialice sus solicitudes de despliegue o añada un retraso entre ellas para asegurarse de que solo una `CreateDeployment` llamada se dirija a un objeto específico a la vez.
+ Si este problema ya afecta a su objetivo, es posible que las implementaciones posteriores sigan arrojando errores 404. Para resolver este problema, elimine el registro de despliegue obsoleto del destino afectado para que el siguiente despliegue pueda continuar con normalidad.

## Problemas de implementación del dispositivo principal
<a name="greengrass-core-deployment-issues"></a>

Solución de problemas en las implementaciones de los dispositivos principales de Greengrass. Cada entrada corresponde a un mensaje de registro que puede que vea en su dispositivo principal.

**Topics**
+ [Error: com.aws.greengrass.componentmanager.exceptions. PackageDownloadException: No se pudo descargar el artefacto](#core-error-failed-to-download-artifact-package-download-exception)
+ [Error: com.aws.greengrass.componentmanager.exceptions. ArtifactChecksumMismatchException: No se pudo comprobar la integridad del artefacto descargado. Probablemente debido a la corrupción de los archivos.](#core-error-failed-to-download-artifact-checksum-mismatch-exception)
+ [Error: com.aws.greengrass.componentmanager.exceptions. NoAvailableComponentVersionException: No se pudo negociar la versión del < nombre del componente con la nube y no hay ninguna > versión local aplicable que cumpla los requisitos < >](#core-error-no-available-component-version)
+ [software.amazon.awssdk.services.greengrassv2data.model. ResourceNotFoundException: La última versión de Component ComponentName no afirma ser compatible con el núcleo de la plataforma < > < DevicePlatform >](#deployment-error-no-platform-compatibility)
+ [com.aws.greengrass.componentmanager.exceptions. PackagingException: El despliegue intenta actualizar el núcleo de la versión AWS.Greengrass.Nucleus a la < versión AWS.Greengrass.Nucleus, pero no se incluyó ningún componente del tipo Nucleus como componente de > destino < >](#deployment-error-nucleus-minor-version-update)
+ [Error: com.aws.greengrass.deployment.exceptions. DeploymentException: No se pudo procesar la implementación. El directorio de inicio de Greengrass no está configurado o Greengrass no está configurado como un servicio del sistema](#deployment-error-unable-to-process-deployment)
+ [Información: com.aws.greengrass.deployment.exceptions. RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service devolvió un error al obtener la configuración de despliegue completa](#core-error-getting-full-deployment-configuration)
+ [Advertencia: com.aws.greengrass.deployment. DeploymentService: No se pudo obtener la jerarquía de los grupos de cosas](#core-warning-failed-to-get-thing-group-hierarchy)
+ [Información: com.aws.greengrass.deployment. DeploymentDocumentDownloader: Llamar a la nube de Greengrass para obtener una configuración de despliegue completa](#core-info-repetitive-get-full-deployment-configuration)
+ [Causado por: software.amazon.awssdk.services.greengrassv2data.model. GreengrassV2DataException: null (servicio: GreengrassV2Data, código de estado: 403, ID de solicitud: some\_request\_id, ID de solicitud extendida: null) < >](#greengrassv2dataexception)

### Error: com.aws.greengrass.componentmanager.exceptions. PackageDownloadException: No se pudo descargar el artefacto
<a name="core-error-failed-to-download-artifact-package-download-exception"></a>

Es posible que aparezca este error cuando el software AWS IoT Greengrass principal no puede descargar un artefacto componente cuando el dispositivo principal realiza una implementación. La implementación falla como resultado de este error.

Cuando recibe este error, el registro también incluye un rastreo de pila que puede usar para identificar el problema específico. Cada una de las siguientes entradas corresponde a un mensaje que puede que vea en el rastreo de pila del mensaje de error `Failed to download artifact`.

**Topics**
+ [Software.Amazon.AWSSDK.Services.s3.model.s3Excepción: null (servicio: S3, código de estado: 403, ID de solicitud: null,...)](#core-error-failed-to-download-artifact-s3-permissions)
+ [Software.Amazon.AWSSDK.Services.s3.model.s3Excepción: acceso denegado (servicio: S3), código de estado: 403, ID de solicitud: RequestID < >](#core-error-failed-to-download-artifact-get-bucket-location-403)

#### Software.Amazon.AWSSDK.Services.s3.model.s3Excepción: null (servicio: S3, código de estado: 403, ID de solicitud: null,...)
<a name="core-error-failed-to-download-artifact-s3-permissions"></a>

[El error puede incluir este rastreo de PackageDownloadException pila en los siguientes casos:](#core-error-failed-to-download-artifact-package-download-exception)
+ El artefacto del componente no está disponible en la URL del objeto de S3 que especificó en la receta del componente. Compruebe que ha subido el artefacto al bucket de S3 y que el URI del artefacto coincide con la URL del objeto de S3 del artefacto en el bucket.
+ La [función de intercambio de fichas](device-service-role.md) del dispositivo principal no permite que el software AWS IoT Greengrass principal descargue el artefacto componente desde la URL del objeto S3 que se especifique en la receta del componente. Compruebe que la función de intercambio de token permita `s3:GetObject` de la URL del objeto de S3 en la que el artefacto está disponible.

#### Software.Amazon.AWSSDK.Services.s3.model.s3Excepción: acceso denegado (servicio: S3), código de estado: 403, ID de solicitud: RequestID < >
<a name="core-error-failed-to-download-artifact-get-bucket-location-403"></a>

[El error puede incluir este seguimiento de pila cuando el dispositivo principal no tiene permiso para llamar. PackageDownloadException ](#core-error-failed-to-download-artifact-package-download-exception) `s3:GetBucketLocation` El mensaje de error incluye uno de los siguientes mensajes.

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

Compruebe que el [rol de intercambio de token](device-service-role.md) permita `s3:GetBucketLocation` para el bucket de S3 en la que el artefacto está disponible.

### Error: com.aws.greengrass.componentmanager.exceptions. ArtifactChecksumMismatchException: No se pudo comprobar la integridad del artefacto descargado. Probablemente debido a la corrupción de los archivos.
<a name="core-error-failed-to-download-artifact-checksum-mismatch-exception"></a>

Es posible que aparezca este error cuando el software AWS IoT Greengrass principal no puede descargar un artefacto componente cuando el dispositivo principal realiza una implementación. La implementación falla porque la suma de verificación del archivo de artefactos descargado no coincide con la suma de verificación que AWS IoT Greengrass se calculó al crear el componente.

Haga lo siguiente:
+ Compruebe si el archivo de artefactos ha cambiado en el bucket de S3 donde lo aloja. Si el archivo ha cambiado desde que creó el componente, restáurelo a la versión anterior que esperaba el dispositivo principal. Si no puede restaurar el archivo a su versión anterior o si desea utilizar la nueva versión del archivo, cree una nueva versión del componente con el archivo de artefactos.
+ Compruebe la conexión a Internet del dispositivo principal. Este error puede producirse si el archivo del artefacto se daña mientras se descarga. Cree una implementación nueva e inténtelo de nuevo.

### Error: com.aws.greengrass.componentmanager.exceptions. NoAvailableComponentVersionException: No se pudo negociar la versión del < nombre del componente con la nube y no hay ninguna > versión local aplicable que cumpla los requisitos < >
<a name="core-error-no-available-component-version"></a>

Es posible que aparezca este error cuando un dispositivo principal no encuentre una versión de componente que cumpla con los requisitos de las implementaciones de ese dispositivo principal. El dispositivo principal comprueba el componente en el AWS IoT Greengrass servicio y en el dispositivo local. El mensaje de error incluye el destino de cada implementación y los requisitos de versión de esa implementación para el componente. El destino de la implementación puede ser un objeto, un grupo de objetos o `LOCAL_DEPLOYMENT`, que represente la implementación local en el dispositivo principal.

Este error se puede producir en los siguientes escenarios:
+ El dispositivo principal es el objetivo de varias implementaciones que tienen requisitos de versión de componentes contradictorios. Por ejemplo, el dispositivo principal puede ser el objetivo de varias implementaciones que incluyen un componente `com.example.HelloWorld`, en las que una implementación requiere la versión 1.0.0 y la otra requiere la versión 1.0.1. Es imposible tener un componente que cumpla ambos requisitos, por lo que la implementación falla.
+ La versión del componente no existe en el AWS IoT Greengrass servicio ni en el dispositivo local. Es posible que el componente se haya eliminado, por ejemplo.
+ Existen versiones de componentes que cumplen con los requisitos de la versión, pero ninguna es compatible con la plataforma del dispositivo principal.
+ La AWS IoT política del dispositivo principal no concede el `greengrass:ResolveComponentCandidates` permiso. Busque `Status Code: 403` en el registro de errores para identificar este problema. Para resolver este problema, agregue el permiso `greengrass:ResolveComponentCandidates` a la política AWS IoT del dispositivo principal. Para obtener más información, consulte [AWS IoT Política mínima para los dispositivos AWS IoT Greengrass V2 principales](device-auth.md#greengrass-core-minimal-iot-policy).

Para resolver este problema, revise las implementaciones para incluir versiones de componentes compatibles o eliminar los incompatibles. Para obtener más información sobre cómo revisar las implementaciones en la nube, consulte [Revisión de las implementaciones](revise-deployments.md). Para obtener información sobre cómo revisar implementaciones locales, consulte el comando [Crear implementaciones de la CLI de AWS IoT Greengrass](gg-cli-deployment.md#deployment-create).

### software.amazon.awssdk.services.greengrassv2data.model. ResourceNotFoundException: La última versión de Component ComponentName no afirma ser compatible con el núcleo de la plataforma < > < DevicePlatform >
<a name="deployment-error-no-platform-compatibility"></a>

Es posible que aparezca este error al implementar un componente en un dispositivo principal y el componente no muestre una plataforma que sea compatible con la plataforma del dispositivo principal. Realice una de las siguientes acciones:
+ Si el componente es un componente personalizado de Greengrass, puede actualizarlo para que sea compatible con el dispositivo principal. Agregue un nuevo manifiesto que coincida con la plataforma del dispositivo principal o actualice un manifiesto existente para que coincida con la plataforma del dispositivo principal. Para obtener más información, consulte [AWS IoT Greengrass referencia de recetas de componentes](component-recipe-reference.md).
+ Si el componente lo proporciona AWS, compruebe si otra versión del componente es compatible con el dispositivo principal. Si ninguna versión es compatible, póngase en contacto con nosotros mediante [AWS re:Post](https://repost.aws/) usando la [etiqueta AWS IoT Greengrass](https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass) o póngase en contacto con [Soporte](https://aws.amazon.com/contact-us/).

### com.aws.greengrass.componentmanager.exceptions. PackagingException: El despliegue intenta actualizar el núcleo de la versión AWS.Greengrass.Nucleus a la < versión AWS.Greengrass.Nucleus, pero no se incluyó ningún componente del tipo Nucleus como componente de > destino < >
<a name="deployment-error-nucleus-minor-version-update"></a>

Es posible que aparezca este error al implementar un componente que depende del [núcleo de Greengrass](greengrass-nucleus-component.md) y el dispositivo principal ejecute una versión del núcleo de Greengrass anterior a la última versión secundaria disponible. Este error se produce porque el software AWS IoT Greengrass Core intenta actualizar automáticamente los componentes a la última versión compatible. Sin embargo, el software AWS IoT Greengrass Core impide que el núcleo de Greengrass se actualice a una nueva versión secundaria, ya que varios de los componentes AWS proporcionados dependen de versiones secundarias específicas del núcleo de Greengrass. Para obtener más información, consulte [Comportamiento de actualización del núcleo de Greengrass](update-greengrass-core-v2.md#ota-update-behavior-nucleus).

Debe [revisar la implementación](revise-deployments.md) para especificar la versión del núcleo de Greengrass que quiere usar. Realice una de las siguientes acciones:
+ Revise la implementación para especificar la versión del núcleo de Greengrass que ejecuta actualmente el dispositivo principal.
+ Revise la implementación para especificar una versión secundaria posterior del núcleo de Greengrass. Si elige esta opción, también debe actualizar las versiones de todos los componentes AWS proporcionados que dependen de versiones secundarias específicas del núcleo de Greengrass. Para obtener más información, consulte [Componentes proporcionados por AWS](public-components.md).

### Error: com.aws.greengrass.deployment.exceptions. DeploymentException: No se pudo procesar la implementación. El directorio de inicio de Greengrass no está configurado o Greengrass no está configurado como un servicio del sistema
<a name="deployment-error-unable-to-process-deployment"></a>

Es posible que vea este error cuando mueva un dispositivo de Greengrass de un grupo de objetos a otro y luego de vuelta al grupo original con implementaciones que requieren que Greengrass se reinicie. 

Para resolver este problema, vuelva a crear el directorio de inicio del dispositivo. También recomendamos encarecidamente actualizar el núcleo de Greengrass a la versión 2.9.6 o posterior.

El siguiente es un script de Linux para recrear el directorio de inicio. Guarde el script en un archivo denominado `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
```

Para ejecutar el script, ejecute el siguiente 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
```

### Información: com.aws.greengrass.deployment.exceptions. RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service devolvió un error al obtener la configuración de despliegue completa
<a name="core-error-getting-full-deployment-configuration"></a>

Es posible que aparezca este error cuando el dispositivo principal reciba un documento de implementación de gran tamaño, es decir, un documento de implementación de más de 7 KB (en el caso de las implementaciones dirigidas a objetos) o 31 KB (en el caso de las implementaciones dirigidas a grupos de objetos). Para recuperar un documento de despliegue de gran tamaño, la AWS IoT política del dispositivo principal debe permitir el `greengrass:GetDeploymentConfiguration` permiso. Este error puede producirse cuando el dispositivo principal no tiene este permiso. Cuando se produce este error, la implementación se reintenta indefinidamente y su estado es **En curso** (`IN_PROGRESS`).

Para resolver este problema, añade el `greengrass:GetDeploymentConfiguration` permiso a la AWS IoT política del dispositivo principal. Para obtener más información, consulte [Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy).

### Advertencia: com.aws.greengrass.deployment. DeploymentService: No se pudo obtener la jerarquía de los grupos de cosas
<a name="core-warning-failed-to-get-thing-group-hierarchy"></a>

Es posible que veas esta advertencia cuando el dispositivo principal reciba una implementación y la AWS IoT política del dispositivo principal no permita el `greengrass:ListThingGroupsForCoreDevice` permiso. Cuando crea una implementación, el dispositivo principal usa este permiso para identificar sus grupos de objetos y eliminar componentes de cualquier grupo de objetos que haya eliminado del dispositivo principal. Si el dispositivo principal ejecuta [el núcleo de Greengrass](greengrass-nucleus-component.md) versión 2.5.0, se produce un error en la implementación. Si el dispositivo principal ejecuta el núcleo de Greengrass versión 2.5.1 o posterior, la implementación continúa, pero no elimina los componentes. Para obtener más información acerca de comportamientos de eliminación de grupos de objeto, consulte [Implemente AWS IoT Greengrass componentes en los dispositivos](manage-deployments.md).

Para actualizar el comportamiento del dispositivo principal a fin de eliminar componentes de los grupos de cosas de los que se elimina el dispositivo principal, añada el `greengrass:ListThingGroupsForCoreDevice` permiso a la AWS IoT política del dispositivo principal. Para obtener más información, consulte [Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy).

### Información: com.aws.greengrass.deployment. DeploymentDocumentDownloader: Llamar a la nube de Greengrass para obtener una configuración de despliegue completa
<a name="core-info-repetitive-get-full-deployment-configuration"></a>

Es posible que vea este mensaje de información impreso varias veces sin ningún error, ya que el dispositivo principal registra el error a nivel de registro `DEBUG`. Este problema puede producirse cuando el dispositivo principal recibe un documento de implementación de gran tamaño. Cuando se produce este error, la implementación se reintenta indefinidamente y su estado es **En curso** (`IN_PROGRESS`). Para obtener más información sobre cómo resolver este problema, consulte [esta entrada de solución de problemas](#core-error-getting-full-deployment-configuration).

### Causado por: software.amazon.awssdk.services.greengrassv2data.model. GreengrassV2DataException: null (servicio: GreengrassV2Data, código de estado: 403, ID de solicitud: some\_request\_id, ID de solicitud extendida: null) < >
<a name="greengrassv2dataexception"></a>

Es posible que se muestre este error cuando la API de un plano de datos no tiene el permiso `iot:Connect`. Si no tiene la política correcta, recibirá un `GreengrassV2DataException: 403`. Para crear una política de permisos, siga estas instrucciones: [Cree una AWS IoT política](fleet-provisioning-setup.md#create-iot-policy).

## Problemas con los componentes del dispositivo principal
<a name="greengrass-core-component-issues"></a>

Solución de problemas en los componentes de los dispositivos principales de Greengrass.

**Topics**
+ [Advertencia: «<comando>» no se reconoce como un comando interno o externo](#component-warn-command-not-recognized)
+ [El script de Python no registra los mensajes](#python-component-no-log-output)
+ [La configuración de los componentes no se actualiza al cambiar la configuración predeterminada](#update-component-configuration-to-default-configuration)
+ [awsiot.greengrasscoreipc.model. UnauthorizedError](#ipc-unauthorized-error)
+ [com.aws.greengrass.authorization.exceptions. AuthorizationException: El identificador de política «id» duplicado para la «lista de componentes» principal < > < >](#ipc-duplicate-authorization-policy-ids)
+ [com.aws.greengrass.tes. CredentialRequestHandler: Error al recuperar AwsCredentials desde TES (HTTP 400)](#token-exchange-service-credentials-http-400)
+ [com.aws.greengrass.tes. CredentialRequestHandler: Error al recuperar datos AwsCredentials del TES (HTTP 403)](#token-exchange-service-credentials-http-403)
+ [com.aws.greengrass.tes. CredentialsProviderError: No se pudieron cargar las credenciales de ningún proveedor](#token-exchange-service-credentials-provider-error)
+ [Se recibió un error al intentar recuperar los metadatos del ECS: no se pudo conectar a la URL del punto final: «token» < ExchangeServiceEndpoint >](#token-exchange-service-not-running)
+ [CopyFrom: < ConfigurationPath ya > es un contenedor, no una hoja](#configuration-key-is-container-cannot-become-leaf)
+ [com.aws.greengrass.componentmanager.plugins.docker.exceptions. DockerLoginException: Error al iniciar sesión en el registro con las credenciales: «El código auxiliar ha recibido datos incorrectos».](#docker-login-stub-received-bad-data)
+ [java.io.IOException: No se puede ejecutar el programa «cmd»...: [LogonUser] La contraseña de esta cuenta ha caducado.](#windows-account-password-expired)
+ [aws.greengrass. StreamManager: El instante supera el instante mínimo o máximo](#stream-manager-instant-exceeds-maximun-minimum)

### Advertencia: «<comando>» no se reconoce como un comando interno o externo
<a name="component-warn-command-not-recognized"></a>

Es posible que veas este error en los registros de un componente de Greengrass cuando el software AWS IoT Greengrass principal no ejecute un comando en el script de ciclo de vida del componente. El estado del componente pasa a ser `BROKEN`, resultado de este error. Este error puede producirse si el usuario del sistema que ejecuta el componente, por ejemplo, `ggc_user`, no encuentra el ejecutable del comando en las carpetas [PATH](https://en.wikipedia.org/wiki/PATH_(variable)).

En los dispositivos Windows, compruebe que la carpeta que contiene el ejecutable pertenece a la `PATH` del sistema que ejecuta el componente. Si no aparece en la `PATH`, realice una de las siguientes opciones:
+ Agregue la carpeta del ejecutable a la variable del sistema `PATH`, que está disponible para todos los usuarios. A continuación, reinicie el componente.

  Si ejecuta Greengrass nucleus 2.5.0, después de actualizar la variable de `PATH` sistema, debe reiniciar el software AWS IoT Greengrass Core para ejecutar los componentes con la actualización. `PATH` Si el software AWS IoT Greengrass principal no utiliza la actualización `PATH` después de reiniciar el software, reinicie el dispositivo e inténtelo de nuevo. Para obtener más información, consulte [Ejecute el software AWS IoT Greengrass principal](run-greengrass-core-v2.md).
+ Agregue la carpeta del ejecutable a la variable de usuario `PATH` del sistema que ejecuta el componente.

### El script de Python no registra los mensajes
<a name="python-component-no-log-output"></a>

Los dispositivos principales de Greengrass recopilan registros que puede utilizar para identificar problemas con los componentes. Si los mensajes del script `stdout` y `stderr` de Python no aparecen en los registros de sus componentes, es posible que deba vaciar el búfer o deshabilitar el almacenamiento en búfer para estos flujos de salida estándar en Python. Realice uno de los siguientes procedimientos:
+ Ejecute Python con el argumento [-u](https://docs.python.org/3/using/cmdline.html#cmdoption-u) para deshabilitar el almacenamiento en búfer en `stdout` y `stderr`.

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

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

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

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

------
+ Utilice [Setenv](component-recipe-reference.md#lifecycle-setenv-definition) en la receta de su componente para establecer la variable de entorno [PYTHONUNBUFFERED](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED) en una cadena que no esté vacía. Esta variable de entorno deshabilita el almacenamiento en búfer en `stdout` y `stderr`.
+ Vacíe el búfer de los flujos `stdout` o `stderr`. Realice una de las siguientes acciones:
  + Vacíe un mensaje al imprimirlo.

    ```
    import sys
    
    print('Hello, error!', file=sys.stderr, flush=True)
    ```
  + Vacíe un mensaje después de imprimirlo. Puede enviar varios mensajes antes de vaciar el flujo.

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

Para obtener más información acerca de cómo verificar que el script de Python genera mensajes de registro, consulte [Supervisión de los registros de AWS IoT Greengrass](monitor-logs.md).

### La configuración de los componentes no se actualiza al cambiar la configuración predeterminada
<a name="update-component-configuration-to-default-configuration"></a>

Al cambiar la `DefaultConfiguration` en la receta de un componente, la nueva configuración predeterminada no sustituirá a la configuración existente del componente durante la implementación. Para aplicar la nueva configuración predeterminada, debe restablecer la configuración del componente a sus valores predeterminados. Al implementar el componente, especifique una sola cadena vacía como [restablecimiento de actualización](update-component-configurations.md#reset-configuration-update).

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

**Restablecer las rutas**  

```
[""]
```

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

El siguiente comando crea una implementación a un dispositivo principal.

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

El archivo `reset-configuration-deployment.json` contiene el siguiente 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 ]

El siguiente comando de la [CLI de Greengrass](greengrass-cli-component.md) crea una implementación local en un dispositivo principal.

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

El archivo `reset-configuration-deployment.json` contiene el siguiente documento JSON.

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

------

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

Es posible que vea este error en los registros de un componente de Greengrass cuando el componente no tiene permiso para realizar una operación de IPC en un recurso. Para conceder permiso a un componente para llamar a una operación de IPC, defina una política de autorización de IPC en la configuración del componente. Para obtener más información, consulte [Autorización de los componentes para realizar operaciones de IPC](interprocess-communication.md#ipc-authorization-policies).

**sugerencia**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
Si cambia `DefaultConfiguration` en la receta de un componente, debe restablecer la configuración del componente a su nueva configuración predeterminada. Al implementar el componente, especifique una sola cadena vacía como [restablecimiento de actualización](update-component-configurations.md#reset-configuration-update). Para obtener más información, consulte [La configuración de los componentes no se actualiza al cambiar la configuración predeterminada](#update-component-configuration-to-default-configuration).

### com.aws.greengrass.authorization.exceptions. AuthorizationException: El identificador de política «id» duplicado para la «lista de componentes» principal < > < >
<a name="ipc-duplicate-authorization-policy-ids"></a>

Es posible que aparezca este error si varias políticas de autorización de IPC, incluidos todos los componentes del dispositivo principal, utilizan el mismo identificador de política.

Compruebe las políticas de autorización de IPC de sus componentes, corrija los duplicados e inténtelo de nuevo. Para crear identificadores de política únicos, le recomendamos que combine el nombre del componente, el nombre del servicio de IPC y un contador. Para obtener más información, consulte [Autorización de los componentes para realizar operaciones de IPC](interprocess-communication.md#ipc-authorization-policies).

**sugerencia**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
Si cambia `DefaultConfiguration` en la receta de un componente, debe restablecer la configuración del componente a su nueva configuración predeterminada. Al implementar el componente, especifique una sola cadena vacía como [restablecimiento de actualización](update-component-configurations.md#reset-configuration-update). Para obtener más información, consulte [La configuración de los componentes no se actualiza al cambiar la configuración predeterminada](#update-component-configuration-to-default-configuration).

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

Es posible que aparezca este error cuando un dispositivo principal no puede obtener AWS las credenciales del [servicio de intercambio de fichas](interact-with-aws-services.md). El código de estado HTTP 400 indica que este error se produjo porque la [función de IAM de intercambio de fichas](device-service-role.md) del dispositivo principal no existe o no tiene una relación de confianza que permita al proveedor de AWS IoT credenciales asumirla.

Haga lo siguiente:

1. Identifique la función de intercambio de token que utiliza el dispositivo principal. El mensaje de error incluye el alias de la AWS IoT función del dispositivo principal, que apunta a la función de intercambio de fichas. Ejecuta el siguiente comando en tu ordenador de desarrollo y {{MyGreengrassCoreTokenExchangeRoleAlias}} sustitúyelo por el nombre del alias del AWS IoT rol que aparece en el mensaje de error.

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

   La respuesta incluye el nombre de recurso de Amazon (ARN) del rol de IAM de intercambio de 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. Compruebe si el rol existe. Ejecuta el siguiente comando y {{MyGreengrassV2TokenExchangeRole}} sustitúyelo por el nombre del rol de intercambio de fichas.

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

   Si el comando devuelve un error `NoSuchEntity`, el rol no existe y debe crearlo. Para obtener más información acerca de cómo crear y configurar el rol, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

1. Compruebe que el rol tenga una relación de confianza que permita al proveedor de AWS IoT credenciales asumirlo. La respuesta del paso anterior contiene un `AssumeRolePolicyDocument`, que define las relaciones de confianza del rol. El rol debe definir una relación de confianza que permite a `credentials.iot.amazonaws.com` asumir el rol. Este documento debería verse similar al siguiente ejemplo.

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

****  

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

------

   Si las relaciones de confianza del rol no permiten asumir `credentials.iot.amazonaws.com`, debe agregar esta relación de confianza al rol. Para obtener más información, consulte [Modificación de un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) en la *Guía del usuario de AWS Identity and Access Management *.

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

Es posible que aparezca este error cuando un dispositivo principal no puede obtener AWS las credenciales del [servicio de intercambio de fichas](interact-with-aws-services.md). El código de estado HTTP 403 indica que este error se produjo porque las AWS IoT políticas del dispositivo principal no conceden el `iot:AssumeRoleWithCertificate` permiso para el alias de AWS IoT rol del dispositivo principal.

Revisa las AWS IoT políticas del dispositivo principal y añade el `iot:AssumeRoleWithCertificate` permiso para el alias de AWS IoT rol del dispositivo principal. El mensaje de error incluye el alias de AWS IoT rol actual del dispositivo principal. Para obtener más información sobre este permiso y sobre cómo actualizar las AWS IoT políticas del dispositivo principal, consulte [AWS IoT Política mínima para los dispositivos AWS IoT Greengrass V2 principales](device-auth.md#greengrass-core-minimal-iot-policy) y[Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy).

### com.aws.greengrass.tes. CredentialsProviderError: No se pudieron cargar las credenciales de ningún proveedor
<a name="token-exchange-service-credentials-provider-error"></a>

Es posible que aparezca este error cuando el componente intente solicitar AWS credenciales y no pueda conectarse al [servicio de intercambio de fichas](interact-with-aws-services.md).

Haga lo siguiente:
+ Compruebe que el componente declara una dependencia del componente del servicio de intercambio de token, `aws.greengrass.TokenExchangeService`. Si no es así, agregue la dependencia y vuelva a implementar el componente.
+ Si el componente se ejecuta en docker, asegúrese de aplicar la configuración de red y las variables de entorno correctas, según [Utilice AWS las credenciales en los componentes del contenedor de Docker (Linux)](run-docker-container.md#docker-container-token-exchange-service).
+ [Si el componente está escrito en Nodejs, defina dns.set en. DefaultResultOrder](https://nodejs.org/docs/latest/api/dns.html#dnssetdefaultresultorderorder) **ipv4first**
+ Compruebe si hay `/etc/hosts` para una entrada que comience por `::1` y contenga `localhost`. Elimine la entrada para ver si provocó que el componente se conectara al servicio de intercambio de token en una dirección incorrecta.

### Se recibió un error al intentar recuperar los metadatos del ECS: no se pudo conectar a la URL del punto final: «token» < ExchangeServiceEndpoint >
<a name="token-exchange-service-not-running"></a>

Es posible que aparezca este error cuando el componente no ejecuta el [servicio de intercambio de tokens](interact-with-aws-services.md) y un componente intenta solicitar AWS credenciales.

Haga lo siguiente:
+ Compruebe que el componente declara una dependencia del componente del servicio de intercambio de token, `aws.greengrass.TokenExchangeService`. Si no es así, agregue la dependencia y vuelva a implementar el componente.
+ Compruebe si el componente utiliza AWS credenciales `install` durante su ciclo de vida. AWS IoT Greengrass no garantiza la disponibilidad del servicio de intercambio de fichas durante el `install` ciclo de vida. Actualice el componente para trasladar el código que usa las credenciales de AWS en el ciclo de vida `startup` o `run`, a continuación, vuelva a implementar el componente.

### CopyFrom: < ConfigurationPath ya > es un contenedor, no una hoja
<a name="configuration-key-is-container-cannot-become-leaf"></a>

Es posible que aparezca este error al cambiar un valor de configuración de un tipo de contenedor (una lista o un objeto) a un tipo que no es de contenedor (cadena, número o booleano). Haga lo siguiente:

1. Compruebe la receta del componente para ver si su configuración predeterminada establece ese valor de configuración en una lista o un objeto. Si es así, elimine o cambie ese valor de configuración.

1. Cree una implementación para restablecer ese valor de configuración a su valor predeterminado. Para obtener más información, consulte [Crear implementaciones](create-deployments.md) y [Actualización de las configuraciones de los componentes](update-component-configurations.md).

A continuación, puede establecer ese valor de configuración en una cadena, un número o un booleano.

### com.aws.greengrass.componentmanager.plugins.docker.exceptions. DockerLoginException: Error al iniciar sesión en el registro con las credenciales: «El código auxiliar ha recibido datos incorrectos».
<a name="docker-login-stub-received-bad-data"></a>

Es posible que aparezca este error en los registros del núcleo de Greengrass cuando el [componente administrador de aplicaciones de Docker](docker-application-manager-component.md) intenta descargar una imagen de Docker de un repositorio privado de Amazon Elastic Container Registry (Amazon ECR). Este error se produce si utiliza el [ayudante de credenciales de Docker](https://github.com/docker/docker-credential-helpers) (`docker-credential-wincred`) `wincred`. Como resultado, Amazon ECR no puede almacenar las credenciales de inicio de sesión.

Realice una de las siguientes acciones:
+ Si no utiliza el ayudante de credenciales de Docker `wincred`, elimine el programa `docker-credential-wincred` del dispositivo principal.
+ Si utiliza el ayudante de credenciales de Docker `wincred`, haga lo siguiente:

  1. Cambie el nombre del programa `docker-credential-wincred` en el dispositivo principal. Sustituya `wincred` por un nombre nuevo para el ayudante de credenciales de Docker de Windows. Por ejemplo, puede cambiarle el nombre a `docker-credential-wincredreal`.

  1. Actualice la opción `credsStore` en el archivo de configuración de Docker (`.docker/config.json`) para usar el nuevo nombre del ayudante de credenciales de Docker de Windows. Por ejemplo, si ha cambiado el nombre del programa a `docker-credential-wincredreal`, actualice la opción `credsStore` a `wincredreal`.

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

### java.io.IOException: No se puede ejecutar el programa «cmd»...: [LogonUser] La contraseña de esta cuenta ha caducado.
<a name="windows-account-password-expired"></a>

Es posible que aparezca este error en un dispositivo principal de Windows cuando el usuario del sistema que ejecuta los procesos del componente, por ejemplo `ggc_user`, tiene una contraseña caducada. Como resultado, el software AWS IoT Greengrass principal no puede ejecutar los procesos de los componentes como ese usuario del sistema.

**Cómo actualizar la contraseña de un usuario del sistema de Greengrass**

1. Ejecute el siguiente comando como administrador para establecer la contraseña del usuario. {{ggc\_user}}Sustitúyalo por el usuario del sistema y {{password}} sustitúyalo por la contraseña que desee configurar.

   ```
   net user {{ggc_user}} {{password}}
   ```

1. Utilice la [PsExec utilidad](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) para almacenar la nueva contraseña del usuario en la instancia de Credential Manager de la LocalSystem cuenta. {{password}}Sustitúyala por la contraseña de usuario que hayas establecido.

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

**sugerencia**  <a name="windows-password-expiration-tip"></a>
Según su configuración de Windows, es posible que la contraseña del usuario caduque en una fecha futura. Para garantizar que sus aplicaciones de Greengrass sigan funcionando, controle cuándo caduca la contraseña y actualícela antes de que caduque. También puede configurar la contraseña del usuario para que nunca caduque.  
Para comprobar cuándo caducan un usuario y su contraseña, ejecute el siguiente comando.  

  ```
  net user {{ggc_user}} | findstr /C:expires
  ```
Para configurar la contraseña de un usuario para que no caduque nunca, ejecute el siguiente comando.  

  ```
  wmic UserAccount where "Name='{{ggc_user}}'" set PasswordExpires=False
  ```
Si utilizas Windows 10 o una versión posterior, donde el [`wmic`comando está en desuso](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), ejecuta el siguiente PowerShell comando.  

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

### aws.greengrass. StreamManager: El instante supera el instante mínimo o máximo
<a name="stream-manager-instant-exceeds-maximun-minimum"></a>

Al actualizar la versión 2.0.7 del administrador de flujos a una versión entre la versión 2.0.8 y la versión 2.0.11, es posible que aparezca el siguiente error en los registros del componente administrador de flujos si el componente no se inicia. 

```
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}
```

Si implementó el administrador de flujos versión 2.0.7 y desea actualizar a una versión posterior, debe actualizar al administrador de flujos versión 2.0.12 directamente. Para obtener más información sobre el componente administrador de flujos, consulte [Administrador de flujos](stream-manager-component.md).

## Problemas con los componentes de la función de Lambda del dispositivo principal
<a name="greengrass-core-lambda-function-issues"></a>

Solución de problemas con los componentes de la función de Lambda en los dispositivos principales.

**Topics**
+ [Los siguientes subsistemas del grupo C no están montados: dispositivos, memoria](#lambda-cgroups-not-mounted)
+ [ipc\_client.py:64, error HTTP 400: solicitud incorrecta, B'no existe ninguna suscripción para la fuente label-or-lambda-arn y el asunto label-or-lambda-arn < > < >](#v1-lambda-no-subscription-exists)

### Los siguientes subsistemas del grupo C no están montados: dispositivos, memoria
<a name="lambda-cgroups-not-mounted"></a>

Es posible que vea este error al ejecutar una función de Lambda en contenedores en los siguientes casos:
+ El dispositivo principal no tiene cgroup v1 activado para la memoria o los cgroups del dispositivo.
+ El dispositivo principal tiene habilitada la versión 2 de cgroups. Las funciones de Lambda de Greengrass requieren cgroups v1 y los cgroups v1 y v2 se excluyen mutuamente.

Para habilitar cgroups v1, inicie el dispositivo con los siguientes parámetros del kernel de Linux.

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

**sugerencia**  
En una Raspberry Pi, edite el archivo `/boot/cmdline.txt` para configurar los parámetros del núcleo del dispositivo.

### ipc\_client.py:64, error HTTP 400: solicitud incorrecta, B'no existe ninguna suscripción para la fuente label-or-lambda-arn y el asunto label-or-lambda-arn < > < >
<a name="v1-lambda-no-subscription-exists"></a>

Es posible que aparezca este error al ejecutar una función Lambda de la versión 1, que utiliza el SDK AWS IoT Greengrass principal, en un dispositivo principal de la versión 2 sin especificar una suscripción en el componente del [router de suscripciones anterior](legacy-subscription-router-component.md). Para solucionar este problema, implemente y configure el enrutador de suscripciones antiguo para especificar las suscripciones necesarias. Para obtener más información, consulte [Cómo importar una función de Lambda V1](set-up-v2-test-device.md#run-v1-lambda-functions).

## Versión del componente descontinuada
<a name="discontinued-component-version"></a>

Es posible que vea una notificación en su panel de estado personal (PHD) cuando se deje de fabricar una versión de un componente de su dispositivo principal. La versión del componente envía esta notificación a su PHD en un plazo de 60 minutos desde su descontinuación.

Para ver qué implementaciones necesita revisar, haga lo siguiente mediante la AWS Command Line Interface:

1. Ejecute el siguiente comando para obtener una lista de sus dispositivos principales.

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

1. Ejecute el siguiente comando para recuperar el estado de los componentes en cada dispositivo principal del Paso 1. Reemplace `{{coreDeviceName}}` con el nombre de cada dispositivo principal para consultar.

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

1. Reúna los dispositivos principales con la versión de componentes discontinuada instalada en los pasos anteriores.

1. Ejecute el siguiente comando para recuperar el estado de todos los trabajos de implementación para un dispositivo principal del Paso 3. Reemplace `{{coreDeviceName}}` por el nombre del dispositivo principal que se va a consultar.

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

   La respuesta contiene la lista de trabajos de implementación para el dispositivo principal. Puede revisar la implementación para elegir otra versión del componente. Para obtener información sobre cómo revisar las implementaciones, consulte [Revisar las implementaciones](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html).

## Problemas con la interfaz de la línea de comandos de Greengrass
<a name="greengrass-cli-issues"></a>

Solucionar problemas con la [CLI de Greengrass](gg-cli.md).

**Topics**
+ [java.lang. RuntimeException: No se puede crear el cliente ipc](#greengrass-cli-unable-to-create-ipc-client)

### java.lang. RuntimeException: No se puede crear el cliente ipc
<a name="greengrass-cli-unable-to-create-ipc-client"></a>

Es posible que vea este error al ejecutar un comando de la CLI de Greengrass y especificar una carpeta raíz diferente a la que está instalado el software AWS IoT Greengrass principal.

Realice una de las siguientes acciones para establecer la ruta raíz y `{{/greengrass/v2}}` sustitúyala por la ruta a la instalación del software AWS IoT Greengrass principal:<a name="greengrass-cli-set-root-path"></a>
+ Establezca la variable de entorno `GGC_ROOT_PATH` en `{{/greengrass/v2}}`.
+ Agregue los argumentos `--ggcRootPath {{/greengrass/v2}}` a su comando como se muestra en el siguiente ejemplo.

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

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

Solucionar AWS CLI problemas para. AWS IoT Greengrass V2

**Topics**
+ [Error: elección no válida: 'greengrassv2'](#aws-cli-invalid-choice-greengrassv2)

### Error: elección no válida: 'greengrassv2'
<a name="aws-cli-invalid-choice-greengrassv2"></a>

Es posible que aparezca este error al ejecutar un AWS IoT Greengrass V2 comando con AWS CLI (por ejemplo,`aws greengrassv2 list-core-devices`).

Este error indica que tienes una versión de la AWS CLI que no es compatible AWS IoT Greengrass V2. Para AWS IoT Greengrass V2 utilizarla con AWS CLI, debe tener una de las siguientes versiones o una posterior:<a name="minimum-aws-cli-versions"></a>
+ Versión AWS CLI V1 mínima: v1.18.197
+ Versión AWS CLI V2 mínima: v2.1.11

**sugerencia**  <a name="tip-check-aws-cli-version"></a>
Puede ejecutar el siguiente comando para comprobar la versión de la AWS CLI que dispone.  

```
aws --version
```

Para resolver este problema, actualícelo AWS CLI a una versión posterior que sea compatible AWS IoT Greengrass V2. Para obtener más información, consulte [Instalar, actualizar y desinstalar la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) en la *Guía del usuario de AWS Command Line Interface *.