

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 문제 해결 AWS IoT Greengrass V2
<a name="troubleshooting"></a>

이 섹션의 문제 해결 정보 및 솔루션을 사용하여 문제를 해결할 수 있습니다 AWS IoT Greengrass Version 2.

**Topics**
+ [AWS IoT Greengrass 코어 소프트웨어 및 구성 요소 로그 보기](#troubleshoot-with-logs)
+ [AWS IoT Greengrass 핵심 소프트웨어 문제](#greengrass-core-issues)
+ [AWS IoT Greengrass 클라우드 문제](#greengrass-cloud-issues)
+ [코어 디바이스 배포 문제](#greengrass-core-deployment-issues)
+ [코어 디바이스 구성 요소 문제](#greengrass-core-component-issues)
+ [코어 디바이스 Lambda 함수 구성 요소 문제](#greengrass-core-lambda-function-issues)
+ [구성 요소 버전 중단](#discontinued-component-version)
+ [Greengrass 명령줄 인터페이스 문제](#greengrass-cli-issues)
+ [AWS Command Line Interface 문제](#aws-cli-issues)
+ [세부 배포 오류 코드](troubleshooting-deployment.md)
+ [세부 구성 요소 상태 코드](troubleshooting-component.md)

## AWS IoT Greengrass 코어 소프트웨어 및 구성 요소 로그 보기
<a name="troubleshoot-with-logs"></a>

 AWS IoT Greengrass 코어 소프트웨어는 코어 디바이스에 대한 실시간 정보를 보는 데 사용할 수 있는 로그를 로컬 파일 시스템에 기록합니다. 또한 코어 디바이스가 CloudWatch Logs에 로그를 쓰도록 구성하여 원격으로 코어 디바이스의 문제를 해결할 수도 있습니다. 이러한 로그는 구성 요소, 배포, 코어 디바이스 관련 문제를 식별하는 데 도움이 될 수 있습니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

## AWS IoT Greengrass 핵심 소프트웨어 문제
<a name="greengrass-core-issues"></a>

 AWS IoT Greengrass 코어 소프트웨어 문제를 해결합니다.

**Topics**
+ [ListDeployments API에서 ThrottlingException 발생](#ThrottlingException)
+ [코어 디바이스를 설정할 수 없음](#unable-to-set-up-core-device)
+ [AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 시작할 수 없음](#unable-to-start-system-service)
+ [nucleus를 시스템 서비스로 설정할 수 없음](#unable-to-set-up-system-service)
+ [에 연결할 수 없음 AWS IoT Core](#core-error-unable-to-connect-to-aws-iot)
+ [메모리 부족 오류](#java-out-of-memory)
+ [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)
+ [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)

### ListDeployments API에서 ThrottlingException 발생
<a name="ThrottlingException"></a>

`ListDeployments` API에서 `ThrottlingException` 발생: 많은 수의 배포가 계정에 있는 경우 이 오류가 발생할 수 있습니다.

이 문제를 해결하려면 다음 중 한 가지 방법을 사용합니다.
+ SDK를 사용하는 경우 MaxResult 파라미터를 지정합니다. 예: [Java SDK](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/greengrassv2/model/ListDeploymentsRequest.html#maxResults)에서 작은 값(예: 5)으로 설정.
+ [AWS Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html)를 사용하여 `DescribeJob` API의 속도 제한을 늘리도록 요청합니다. 서비스 할당량 콘솔로 이동하여 할당량을 선택하고 AWS IoT 제한 이름은 **DescribeJob 제한**입니다. 기본값 10을 50으로 증가시킬 수 있습니다.

### 코어 디바이스를 설정할 수 없음
<a name="unable-to-set-up-core-device"></a>

 AWS IoT Greengrass 코어 소프트웨어 설치 관리자가 실패하고 코어 디바이스를 설정할 수 없는 경우 소프트웨어를 제거하고 다시 시도해야 할 수 있습니다. 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 제거](uninstall-greengrass-core-v2.md) 단원을 참조하십시오.

### AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 시작할 수 없음
<a name="unable-to-start-system-service"></a>

 AWS IoT Greengrass 코어 소프트웨어가 시작되지 않는 경우 [시스템 서비스 로그를 확인하여](monitor-logs.md#access-system-service-logs) 문제를 식별합니다. 일반적인 문제 중 하나는 PATH 환경 변수(Linux) 또는 PATH 시스템 변수(Windows)에서 Java를 사용할 수 없는 경우입니다.

### nucleus를 시스템 서비스로 설정할 수 없음
<a name="unable-to-set-up-system-service"></a>

 AWS IoT Greengrass 코어 소프트웨어 설치 관리자가 시스템 서비스로 설정되지 않은 경우이 오류가 표시될 AWS IoT Greengrass 수 있습니다. Linux 디바이스에서 이 오류는 일반적으로 코어 디바이스에 [systemd](https://en.wikipedia.org/wiki/Systemd) init 시스템이 없는 경우에 발생합니다. 설치 관리자는 시스템 서비스를 설정하지 못하더라도 AWS IoT Greengrass 코어 소프트웨어를 성공적으로 설정할 수 있습니다.

다음 중 하나를 수행하세요.
+  AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 구성하고 실행합니다. AWS IoT Greengrass의 모든 기능을 사용하려면 소프트웨어를 시스템 서비스로 구성해야 합니다. [systemd](https://en.wikipedia.org/wiki/Systemd)를 설치하거나 다른 init 시스템을 사용할 수 있습니다. 자세한 내용은 [Greengrass nucleus를 시스템 서비스로 구성](configure-greengrass-core-v2.md#configure-system-service) 단원을 참조하십시오.
+ 시스템 서비스 없이 AWS IoT Greengrass 코어 소프트웨어를 실행합니다. 설치 관리자가 Greengrass 루트 폴더에 설정한 로더 스크립트를 사용하여 소프트웨어를 실행할 수 있습니다. 자세한 내용은 [시스템 서비스 없이 AWS IoT Greengrass 코어 소프트웨어 실행](run-greengrass-core-v2.md#run-greengrass-core-no-system-service) 단원을 참조하십시오.

### 에 연결할 수 없음 AWS IoT Core
<a name="core-error-unable-to-connect-to-aws-iot"></a>

예를 들어 AWS IoT Greengrass 코어 소프트웨어가 배포 작업을 검색하기 AWS IoT Core 위해에 연결할 수 없는 경우이 오류가 표시될 수 있습니다. 해결 방법:
+ 코어 디바이스가 인터넷 및에 연결할 수 있는지 확인합니다 AWS IoT Core. 디바이스가 연결되는 AWS IoT Core 엔드포인트에 대한 자세한 내용은 섹션을 참조하세요[AWS IoT Greengrass 코어 소프트웨어 구성](configure-greengrass-core-v2.md).
+ 코어 디바이스의 AWS IoT 사물이 `iot:Connect`, `iot:Publish``iot:Receive`, 및 `iot:Subscribe` 권한을 허용하는 인증서를 사용하는지 확인합니다.
+ 코어 디바이스가 [네트워크 프록시](configure-greengrass-core-v2.md#configure-network-proxy)를 사용하는 경우 코어 디바이스에 [디바이스 역할](device-service-role.md)이 있고 해당 역할이 `iot:Connect`, `iot:Publish`, `iot:Receive`, `iot:Subscribe` 권한을 허용하는지 확인하세요.

### 메모리 부족 오류
<a name="java-out-of-memory"></a>

이 오류는 일반적으로 디바이스에 Java 힙에 객체를 할당할 메모리가 충분하지 않은 경우에 발생합니다. 메모리가 제한된 디바이스에서는 메모리 할당을 제어하기 위해 최대 힙 크기를 지정해야 할 수도 있습니다. 자세한 내용은 [JVM 옵션으로 메모리 할당 제어](configure-greengrass-core-v2.md#jvm-tuning) 단원을 참조하십시오.

### Greengrass CLI를 설치할 수 없음
<a name="unable-to-install-greengrass-cli"></a>

 AWS IoT Greengrass Core용 설치 명령에서 `--deploy-dev-tools` 인수를 사용하면 다음 콘솔 메시지가 표시될 수 있습니다.

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

이는 코어 디바이스가 기존 배포가 있는 사물 그룹의 멤버이기 때문에 Greengrass CLI 구성 요소가 설치되지 않은 경우에 발생합니다. 이 메시지가 표시되면 Greengrass CLI 구성 요소(`aws.greengrass.Cli`)를 디바이스에 수동으로 배포하여 Greengrass CLI를 설치할 수 있습니다. 자세한 내용은 [Greengrass CLI 설치](install-gg-cli.md) 단원을 참조하십시오.

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

 AWS IoT Greengrass 코어 소프트웨어를 실행하는 사용자(일반적으로 `root`)에게 `sudo` 사용자 및 그룹에서 실행할 권한이 없는 경우이 오류가 표시될 수 있습니다. 기본 `ggc_user` 시스템 사용자의 경우 이 오류는 다음과 같이 표시됩니다.

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

`/etc/sudoers` 파일이 사용자에게 `sudo`를 다른 그룹으로 실행할 수 있는 권한을 부여하는지 확인합니다. `/etc/sudoers`의 사용자에 대한 권한은 다음 예제와 유사해야 합니다.

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

코어 디바이스가 구성 요소를 실행하려고 하는데 Greengrass nucleus가 구성 요소를 실행하는 데 사용할 기본 시스템 사용자를 지정하지 않으면 이 오류가 발생할 수 있습니다.

이 문제를 해결하려면 구성 요소를 실행하는 기본 시스템 사용자를 지정하도록 Greengrass nucleus를 구성하세요. 자세한 내용은 [구성 요소를 실행하는 사용자 구성](configure-greengrass-core-v2.md#configure-component-user) 및 [기본 구성 요소 사용자 구성](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>

`/tmp` 폴더가 `noexec` 권한으로 마운트되어 코어 AWS IoT Greengrass 소프트웨어가 시작되지 않으면이 오류가 표시될 수 있습니다. [AWS 공통 런타임(CRT) 라이브러리](https://github.com/awslabs/aws-crt-java)는 기본적으로 `/tmp` 폴더를 사용합니다.

다음 중 하나를 수행하세요.
+ 다음 명령을 실행하여 `exec` 권한이 있는 `/tmp` 폴더를 다시 탑재하고 다시 시도하세요.

  ```
  sudo mount -o remount,exec /tmp
  ```
+ Greengrass nucleus v2.5.0 이상을 실행하는 경우 JVM 옵션을 설정하여 AWS CRT 라이브러리가 사용하는 폴더를 변경할 수 있습니다. 배포의 Greengrass nucleus 구성 요소 구성에서 또는 AWS IoT Greengrass 코어 소프트웨어를 설치할 때 `jvmOptions` 파라미터를 지정할 수 있습니다. */path/to/use*를 AWS CRT 라이브러리가 사용할 수 있는 폴더의 경로로 바꿉니다.

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

### Windows 서비스를 설정하지 못함
<a name="failed-to-set-up-windows-service"></a>

Microsoft Windows 2016 디바이스에 AWS IoT Greengrass 코어 소프트웨어를 설치하는 경우이 오류가 발생할 수 있습니다. AWS IoT Greengrass 코어 소프트웨어는 Windows 2016에서 지원되지 않습니다. 지원되는 운영 체제 목록은 섹션을 참조하세요[지원하는 플랫폼](greengrass-nucleus-component.md#greengrass-v2-supported-platforms).

Windows 2016을 사용하려면 먼저 다음과 같이 해야 합니다.

1. 다운로드한 AWS IoT Greengrass 코어 설치 아카이브의 압축을 풉니다.

1. `Greengrass` 디렉터리에서 `bin/greengrass.xml.template` 파일을 엽니다.

1. `<autoRefresh>` 태그 바로 앞 파일의 끝에 `</service>` 태그를 추가합니다.

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

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

루트 인증 기관(CA) 파일 없이 AWS IoT Greengrass 코어 소프트웨어를 설치할 때이 오류가 발생할 수 있습니다.

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

설치 관리자가 제공하는 구성 파일에 `rootCaPath` 파라미터를 사용하여 유효한 루트 CA 파일을 지정했는지 확인하세요. 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 설치](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>

코어 디바이스가 배포 작업 알림을 구독 AWS IoT Core 하기 위해에 연결할 수 없는 경우이 경고 메시지가 표시될 수 있습니다. 해결 방법:
+ 코어 디바이스가 인터넷에 연결되어 있고 구성한 AWS IoT 데이터 엔드포인트에 도달할 수 있는지 확인합니다. 코어 디바이스가 사용하는 엔드포인트에 대한 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 섹션을 참조하세요.
+ Greengrass 로그에서 기타 근본 원인을 알려주는 다른 오류가 있는지 확인하세요.

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

[자동 프로비저닝으로 AWS IoT Greengrass 코어 소프트웨어를 설치하고](quick-installation.md) 설치 관리자가 유효하지 않은 AWS 세션 토큰을 사용하는 경우이 오류가 발생할 수 있습니다. 해결 방법:
+ 임시 보안 인증을 사용하는 경우 세션 토큰이 올바르고 전체 세션 토큰을 복사하고 붙여넣고 있는지 확인하세요.
+ 장기 보안 자격 증명을 사용하는 경우 이전에 임시 자격 증명을 사용한 시점의 세션 토큰이 디바이스에 없는지 확인하세요. 해결 방법:

  1. 세션 토큰 환경 변수의 설정을 해제하려면 다음 명령을 실행하세요.

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

     ```
     unset AWS_SESSION_TOKEN
     ```

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

     ```
     set AWS_SESSION_TOKEN=
     ```

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

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

------

  1.  AWS 자격 증명 파일에 세션 토큰가 `~/.aws/credentials`포함되어 있는지 확인합니다`aws_session_token`. 그렇다면 파일에서 해당 줄을 제거합니다.

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

자격 AWS 증명을 제공하지 않고도 AWS IoT Greengrass 코어 소프트웨어를 설치할 수도 있습니다. 자세한 내용은 [수동 리소스 프로비저닝을 사용하여 AWS IoT Greengrass 코어 소프트웨어 설치](manual-installation.md) 또는 [AWS IoT 플릿 프로비저닝을 사용하여 AWS IoT Greengrass 코어 소프트웨어 설치](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>

[자동 프로비저닝으로 AWS IoT Greengrass 코어 소프트웨어를 설치하고](quick-installation.md) 설치 관리자가 필요한 권한이 없는 AWS 자격 증명을 사용하는 경우이 오류가 발생할 수 있습니다. 필요한 권한에 대한 자세한 내용은 [설치 관리자가 리소스를 프로비저닝하기 위한 최소 IAM 정책](provision-minimal-iam-policy.md) 섹션을 참조하세요.

자격 증명의 IAM ID에 대한 권한을 확인하고 필요한 권한이 누락된 경우 해당 IAM ID에 부여합니다.

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

[섀도 관리자 구성 요소를](shadow-manager-component.md) 사용하여 [디바이스 섀도와 동기화하면이 오류가 표시될 수 있습니다 AWS IoT Core](sync-shadows-with-iot-core.md). HTTP 403 상태 코드는 코어 디바이스의 AWS IoT 정책이를 호출할 수 있는 권한을 부여하지 않기 때문에이 오류가 발생했음을 나타냅니다`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)
```

로컬 섀도 AWS IoT Core우를와 동기화하려면 코어 디바이스의 AWS IoT 정책에서 다음 권한을 부여해야 합니다.
+ `iot:GetThingShadow`
+ `iot:UpdateThingShadow`
+ `iot:DeleteThingShadow`

코어 디바이스의 AWS IoT 정책을 확인하고 누락된 필수 권한을 추가합니다. 자세한 내용은 다음을 참조하세요.
+ *AWS IoT 개발자 안내서*의 [AWS IoT Core 정책 작업](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) 
+ [코어 디바이스의 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>

사용자 지정 Greengrass 구성 요소에서 [프로세스 간 통신(IPC) 작업을](interprocess-communication.md) 사용하고 필수 AWS제공 구성 요소가 코어 디바이스에 설치되지 않은 경우이 오류가 발생할 수 있습니다.

이 문제를 해결하려면 구성 요소 [레시피에 필수 구성 요소를 종속성](component-recipe-reference.md#recipe-reference-component-dependencies)으로 추가하여 구성 요소를 배포할 때 AWS IoT Greengrass 코어 소프트웨어가 필수 구성 요소를 설치하도록 합니다.
+ [암호 값 검색](ipc-secret-manager.md) – `aws.greengrass.SecretManager`
+ [로컬 섀도와 상호 작용](ipc-local-shadows.md) – `aws.greengrass.ShadowManager`
+ [로컬 배포 및 구성 요소 관리](ipc-local-deployments-components.md) – `aws.greengrass.Cli` v2.6.0 이상
+ [클라이언트 디바이스 인증 및 권한 부여](ipc-client-device-auth.md) – `aws.greengrass.clientdevices.Auth` v2.2.0 이상

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

존재하지 않거나 올바른 권한이 없는 루트 폴더를 사용하도록 [스트림 관리자](stream-manager-component.md)를 구성하는 경우 스트림 관리자 로그 파일(`aws.greengrass.StreamManager.log`)에 이 오류가 발생할 수 있습니다. 이 폴더를 구성하는 방법에 대한 자세한 내용은 [스트림 관리자 구성](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>

이 오류는 [PKCS\$111 공급자 구성 요소가](pkcs11-provider-component.md) [하드웨어 보안 모듈(HSM)](hardware-security.md)을 사용하도록 AWS IoT Greengrass 코어 소프트웨어를 구성할 때 지정한 프라이빗 키 또는 인증서를 찾거나 로드할 수 없을 때 발생합니다. 해결 방법:
+ 사용할 AWS IoT Greengrass 코어 소프트웨어를 구성하는 슬롯, 사용자 PIN 및 객체 레이블을 사용하여 프라이빗 키와 인증서가 HSM에 저장되어 있는지 확인합니다.
+ 프라이빗 키와 인증서가 HSM에서 동일한 객체 레이블을 사용하는지 확인하세요.
+ HSM에서 객체 ID를 지원하는 경우 프라이빗 키와 인증서가 HSM에서 동일한 객체 ID를 사용하는지 확인하세요.

HSM의 보안 토큰에 대한 세부 정보를 쿼리하는 방법을 알아보려면 해당 HSM의 설명서를 확인하세요. 보안 토큰의 슬롯, 객체 레이블 또는 객체 ID를 변경해야 하는 경우 HSM의 설명서를 확인하여 변경 방법을 알아보세요.

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

이 오류는 [보안 암호 관리자 구성 요소를](secret-manager-component.md) 사용하여 AWS Secrets Manager 보안 암호를 배포할 때 발생할 수 있습니다. 코어 디바이스의 [토큰 교환 IAM 역할](device-service-role.md)이 암호를 가져올 수 있는 권한을 부여하지 않으면 배포가 실패하고 Greengrass 로그에 이 오류가 포함됩니다.

**코어 디바이스가 암호를 다운로드하도록 승인하려면**

1. 코어 디바이스의 토큰 교환 역할에 `secretsmanager:GetSecretValue` 권한을 추가합니다. 다음 예제 정책 설명문에서는 암호의 값을 가져올 수 있는 권한을 부여합니다.

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

   자세한 내용은 [코어 디바이스가 AWS 서비스와 상호 작용할 수 있도록 권한 부여](device-service-role.md) 단원을 참조하십시오.

1. 코어 디바이스에 배포를 다시 적용합니다. 다음 중 하나를 수행하세요.
   + 변경 없이 배포를 수정합니다. 코어 디바이스는 수정된 배포를 수신하는 경우 암호를 다시 다운로드하려고 합니다. 자세한 내용은 [배포 수정](revise-deployments.md) 단원을 참조하십시오.
   +  AWS IoT Greengrass 코어 소프트웨어를 다시 시작하여 배포를 다시 시도합니다. 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 실행](run-greengrass-core-v2.md) 섹션을 참조하세요.

   보안 암호 관리자가 보안 암호를 성공적으로 다운로드하면 배포가 성공합니다.

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

이 오류는 [보안 암호 관리자 구성 요소를](secret-manager-component.md) 사용하여 키로 암호화된 AWS Secrets Manager 보안 암호를 배포할 때 발생할 수 있습니다 AWS Key Management Service . 코어 디바이스의 [토큰 교환 IAM 역할](device-service-role.md)이 암호를 해독할 수 있는 권한을 부여하지 않으면 배포가 실패하고 Greengrass 로그에 이 오류가 포함됩니다.

이 문제를 해결하려면 코어 디바이스의 토큰 교환 역할에 `kms:Decrypt` 권한을 추가합니다. 자세한 내용은 다음을 참조하세요.
+ *AWS Secrets Manager 사용 설명서*의 [암호 암호화 및 해독](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)
+ [코어 디바이스가 AWS 서비스와 상호 작용할 수 있도록 권한 부여](device-service-role.md)

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

[하드웨어 보안](hardware-security.md)으로 AWS IoT Greengrass 코어 소프트웨어를 설치하려고 하고 하드웨어 보안 통합을 지원하지 않는 이전 Greengrass nucleus 버전을 사용하는 경우이 오류가 발생할 수 있습니다. 하드웨어 보안 통합을 사용하려면 Greengrass nucleus v2.5.3 이상을 사용해야 합니다.

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

 AWS IoT Greengrass Core를 시스템 서비스로 실행할 때 TPM2 라이브러리를 사용하면이 오류가 발생할 수 있습니다.

이 오류는 AWS IoT Greengrass 코어 시스템 서비스 파일에 PKCS\$111 저장소의 위치를 제공하는 환경 변수를 추가해야 함을 나타냅니다.

자세한 내용은 [PKCS\$111 공급자](pkcs11-provider-component.md) 구성 요소 설명서의 요구 사항 섹션을 참조하세요.

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

Greengrass 코어 디바이스가 nucleus 버전 2.12.3에서 배포를 수정하지 않는 경우 다운로드하여 `Greengrass.jar` 파일을 Greengrass nucleus 버전 2.12.2로 바꾸어야 할 수 있습니다. 해결 방법:

1. Greengrass 코어 디바이스에서 다음 명령을 실행하여 Greengrass 코어 소프트웨어를 중지합니다.

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

   ```
   sudo systemctl stop greengrass
   ```

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

   ```
   sc stop "greengrass"
   ```

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

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

------

1. 코어 디바이스에서 AWS IoT Greengrass 소프트웨어를 라는 파일에 다운로드합니다`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. 디바이스의 폴더에 AWS IoT Greengrass 코어 소프트웨어의 압축을 풉니다. *GreengrassInstaller*를 사용하려는 폴더로 바꿉니다.

------
#### [ 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. 다음 명령을 실행하여 nucleus 버전 2.12.3 Greengrass JAR 파일을 nucleus 버전 2.12.2 Greengrass JAR 파일로 재정의합니다.

------
#### [ 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. 다음 명령을 실행하여 Greengrass 코어 소프트웨어를 시작합니다.

------
#### [ 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>

이 문제는 Linux 디바이스에 Greengrass nucleus v2.14.0을 기본 systemd 서비스 템플릿으로 설치한 경우 발생할 수 있습니다. 해결 방법:

1. Greengrass 코어 디바이스에서 다음 명령을 실행하여 systemd 서비스 파일을 nucleus v2.13.0 이전 버전과 동일한 상태로 되돌립니다.

------
#### [ 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. 변경 사항을 적용합니다.

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

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

------

## AWS IoT Greengrass 클라우드 문제
<a name="greengrass-cloud-issues"></a>

다음 정보를 사용하여 AWS IoT Greengrass 콘솔 및 API 관련 문제를 해결합니다. 각 항목은 작업을 수행할 때 표시될 수 있는 오류 메시지에 해당합니다.

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

 AWS IoT Greengrass 콘솔에서 또는 [CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html) 작업을 사용하여 구성 요소 버전을 생성할 때이 오류가 발생할 수 있습니다.

이 오류는 레시피가 유효한 JSON 또는 YAML이 아님을 나타냅니다. 레시피의 구문을 확인하고 구문 문제를 해결한 다음 다시 시도하세요. 온라인 JSON 또는 YAML 구문 검사기를 사용하여 레시피에서 구문 문제를 식별할 수 있습니다.

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

 AWS IoT Greengrass 콘솔에서 또는 [CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html) 작업을 사용하여 구성 요소 버전을 생성할 때이 오류가 발생할 수 있습니다. 이 오류는 구성 요소 레시피의 S3 아티팩트가 유효하지 않음을 나타냅니다.

해결 방법:
+ S3 버킷이 구성 요소를 생성하는 AWS 리전 곳과 동일한에 있는지 확인합니다. AWS IoT Greengrass 는 구성 요소 아티팩트에 대한 리전 간 요청을 지원하지 않습니다.
+ 아티팩트 URI가 유효한 S3 객체 URL인지 확인하고 해당 S3 객체 URL에 아티팩트가 있는지 확인하세요.
+  AWS 계정 에 S3 객체 URL에서 아티팩트에 액세스할 수 있는 권한이 있는지 확인합니다.

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

필요한 종속 AWS IoT 정책 없이 [ListDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListDeployments.html) API를 호출하면 `INACTIVE` 배포 상태가 될 수 있습니다. 정확한 배포 상태를 가져오려면 필요한 권한이 있어야 합니다. [AWS IoT Greengrass V2에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotgreengrassv2.html#awsiotgreengrassv2-actions-as-permissions)을 살펴보고 `ListDeployments`에 필요한 권한을 따르면 종속 작업을 찾을 수 있습니다. 필요한 종속 AWS IoT 권한이 없으면 여전히 배포 상태가 표시되지만의 부정확한 배포 상태가 표시될 수 있습니다`INACTIVE`.

## 코어 디바이스 배포 문제
<a name="greengrass-core-deployment-issues"></a>

Greengrass 코어 디바이스의 배포 문제를 해결하세요. 각 항목은 코어 디바이스에 표시될 수 있는 로그 메시지에 해당합니다.

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

 AWS IoT Greengrass 코어 디바이스가 배포를 적용할 때 코어 소프트웨어가 구성 요소 아티팩트를 다운로드하지 못하면이 오류가 발생할 수 있습니다. 이 오류로 인해 배포가 실패합니다.

이러한 오류가 발생하는 경우 로그에 특정 문제를 식별하는 데 사용할 수 있는 스택 추적도 포함됩니다. 다음 각 항목은 `Failed to download artifact` 오류 메시지의 스택 추적에 표시될 수 있는 메시지에 해당합니다.

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

다음 경우에는 [PackageDownloadException 오류](#core-error-failed-to-download-artifact-package-download-exception)에 이 스택 추적이 포함될 수 있습니다.
+ 구성 요소의 레시피에 지정한 S3 객체 URL에서 구성 요소 아티팩트를 사용할 수 없습니다. 아티팩트를 S3 버킷에 업로드했고 아티팩트 URI가 버킷에 있는 아티팩트의 S3 객체 URL과 일치하는지 확인하세요.
+ 코어 디바이스의 [토큰 교환 역할은](device-service-role.md) AWS IoT Greengrass 코어 소프트웨어가 구성 요소의 레시피에 지정한 S3 객체 URL에서 구성 요소 아티팩트를 다운로드하도록 허용하지 않습니다. 토큰 교환 역할이 아티팩트를 사용할 수 있는 S3 객체 URL에 대해 `s3:GetObject`를 허용하는지 확인하세요.

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

코어 디바이스에 `s3:GetBucketLocation`을 직접적으로 호출할 권한이 없는 경우 [PackageDownloadException 오류](#core-error-failed-to-download-artifact-package-download-exception)에 이 스택 추적이 포함될 수 있습니다. 오류 메시지에는 다음 메시지도 포함되어 있습니다.

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

코어 디바이스의 [토큰 교환 역할](device-service-role.md)이 아티팩트를 사용할 수 있는 S3 버킷에 대해 `s3:GetBucketLocation`을 허용하는지 확인하세요.

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

 AWS IoT Greengrass 코어 디바이스가 배포를 적용할 때 코어 소프트웨어가 구성 요소 아티팩트를 다운로드하지 못하면이 오류가 발생할 수 있습니다. 다운로드한 아티팩트 파일의 체크섬이 구성 요소를 생성할 때 AWS IoT Greengrass 계산된 체크섬과 일치하지 않기 때문에 배포가 실패합니다.

해결 방법:
+ 아티팩트 파일을 호스팅하는 S3 버킷에서 아티팩트 파일이 변경되었는지 확인하세요. 구성 요소를 생성한 후 파일이 변경된 경우 코어 디바이스에서 예상하는 이전 버전으로 복원하세요. 파일을 이전 버전으로 복원할 수 없거나 파일의 새 버전을 사용하려면 아티팩트 파일로 구성 요소의 새 버전을 생성합니다.
+ 코어 디바이스의 인터넷 연결을 확인하세요. 아티팩트 파일이 다운로드하는 동안 손상된 경우 이 오류가 발생할 수 있습니다. 새 배포를 생성하고 다시 시도하세요.

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

코어 디바이스에서 해당 코어 디바이스에 대한 배포 요구 사항을 충족하는 구성 요소 버전을 찾을 수 없는 경우 이 오류가 발생할 수 있습니다. 코어 디바이스는 AWS IoT Greengrass 서비스 및 로컬 디바이스에서 구성 요소를 확인합니다. 오류 메시지는 각 배포의 대상과 해당 배포의 구성 요소에 대한 버전 요구 사항을 포함합니다. 배포 대상은 코어 디바이스의 로컬 배포를 나타내는 사물, 사물 그룹 또는 `LOCAL_DEPLOYMENT`일 수 있습니다.

이 문제는 다음 경우에 발생할 수 있습니다.
+ 코어 디바이스는 구성 요소 버전 요구 사항이 충돌하는 여러 배포의 대상입니다. 예를 들어 코어 디바이스는 `com.example.HelloWorld` 구성 요소가 포함된 여러 배포의 대상으로 한 배포에는 버전 1.0.0이 필요하고 다른 배포에는 버전 1.0.1이 필요할 수 있습니다. 두 가지 요구 사항을 모두 충족하는 구성 요소를 보유하는 것은 불가능하므로 배포가 실패합니다.
+ 구성 요소 버전이 AWS IoT Greengrass 서비스 또는 로컬 디바이스에 존재하지 않습니다. 예를 들어 구성 요소가 삭제되었을 수 있습니다.
+ 버전 요구 사항을 충족하는 구성 요소 버전이 있지만 어느 것도 코어 디바이스의 플랫폼과 호환되지 않습니다.
+ 코어 디바이스의 AWS IoT 정책은 `greengrass:ResolveComponentCandidates` 권한을 부여하지 않습니다. 오류 로그에서 `Status Code: 403`을 찾아 이 문제를 식별합니다. 이 문제를 해결하려면 코어 디바이스의 AWS IoT 정책에 `greengrass:ResolveComponentCandidates` 권한을 추가합니다. 자세한 내용은 [AWS IoT Greengrass V2 코어 디바이스에 대한 최소 AWS IoT 정책](device-auth.md#greengrass-core-minimal-iot-policy) 단원을 참조하십시오.

이 문제를 해결하려면 호환되는 구성 요소 버전을 포함하도록 배포를 수정하거나 호환되지 않는 구성 요소 버전을 제거합니다. 클라우드 배포를 수정하는 방법에 대한 자세한 내용은 [배포 수정](revise-deployments.md) 섹션을 참조하세요. 로컬 배포를 수정하는 방법에 대한 자세한 내용은 [AWS IoT Greengrass CLI 배포 생성](gg-cli-deployment.md#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>

코어 디바이스에 구성 요소를 배포할 때 구성 요소가 코어 디바이스의 플랫폼과 호환되는 플랫폼을 나열하지 않는 경우 이 오류가 발생할 수 있습니다. 다음 중 하나를 수행하세요.
+ 구성 요소가 사용자 지정 Greengrass 구성 요소인 경우 코어 디바이스와 호환되도록 구성 요소를 업데이트할 수 있습니다. 코어 디바이스의 플랫폼과 일치하는 새로운 매니페스트를 추가하거나 코어 디바이스의 플랫폼과 일치하도록 기존 매니페스트를 업데이트하세요. 자세한 내용은 [AWS IoT Greengrass 구성 요소 레시피 참조](component-recipe-reference.md) 단원을 참조하십시오.
+ 에서 구성 요소를 제공하는 경우 구성 요소의 다른 버전이 코어 디바이스와 호환되는지 AWS확인합니다. 호환되는 버전이 없는 경우 [AWS IoT Greengrass 태그](https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass)를 사용하여 [AWS re:Post](https://repost.aws/)에 문의하거나 [지원](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>

[Greengrass nucleus](greengrass-nucleus-component.md)에 따라 달라지는 구성 요소를 배포하고 코어 디바이스가 사용 가능한 최신 마이너 버전보다 이전의 Greengrass nucleus 버전을 실행하는 경우 이 오류가 발생할 수 있습니다. 이 오류는 AWS IoT Greengrass 코어 소프트웨어가 구성 요소를 호환되는 최신 버전으로 자동 업데이트하려고 하기 때문에 발생합니다. 그러나 AWS IoT Greengrass 코어 소프트웨어는 Greengrass nucleus의 특정 마이너 버전에 따라 여러 AWS제공 구성 요소가 달라지기 때문에 Greengrass nucleus가 새 마이너 버전으로 업데이트되는 것을 방지합니다. 자세한 내용은 [Greengrass nucleus 업데이트 동작](update-greengrass-core-v2.md#ota-update-behavior-nucleus) 단원을 참조하십시오.

사용하려는 Greengrass nucleus 버전을 지정하려면 [배포를 수정](revise-deployments.md)해야 합니다. 다음 중 하나를 수행하세요.
+ 코어 디바이스가 현재 실행하는 Greengrass nucleus 버전을 지정하도록 배포를 수정하세요.
+ Greengrass nucleus의 이후 마이너 버전을 지정하도록 배포를 수정하세요. 이 옵션을 선택하는 경우 Greengrass nucleus의 특정 마이너 버전에 따라 AWS제공되는 구성 요소의 버전도 업데이트해야 합니다. 자세한 내용은 [AWS 제공 구성 요소](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>

Greengrass 디바이스를 한 그룹에서 다른 그룹으로 이동한 다음 Greengrass를 다시 시작해야 하는 배포를 사용하여 원래 그룹으로 다시 돌아오는 경우 이 오류가 발생할 수 있습니다.

이 문제를 해결하려면 디바이스의 시작 디렉터리를 다시 생성합니다. 또한 Greengrass nucleus 버전 2.9.6 이상으로 업그레이드하는 것이 좋습니다.

다음은 시작 디렉터리를 다시 생성하기 위한 Linux 스크립트입니다. `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
```

이 스크립트를 실행하려면 다음 명령을 실행합니다.

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

코어 디바이스가 7KB(사물을 대상으로 하는 배포의 경우) 또는 31KB(사물 그룹을 대상으로 하는 배포의 경우)보다 큰 용량의 배포 문서인 큰 배포 문서를 수신하는 경우 이 오류가 발생할 수 있습니다. 대규모 배포 문서를 검색하려면 코어 디바이스의 AWS IoT 정책에서 `greengrass:GetDeploymentConfiguration` 권한을 허용해야 합니다. 코어 디바이스에 해당 권한이 없는 경우 이 오류가 발생할 수 있습니다. 이 오류가 발생하면 배포는 무기한으로 다시 시도되며 그 상태는 **진행 중**(`IN_PROGRESS`)입니다.

이 문제를 해결하려면 코어 디바이스의 AWS IoT 정책에 `greengrass:GetDeploymentConfiguration` 권한을 추가합니다. 자세한 내용은 [코어 디바이스의 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>

코어 디바이스가 배포를 수신하고 코어 디바이스의 AWS IoT 정책에서 `greengrass:ListThingGroupsForCoreDevice` 권한을 허용하지 않는 경우이 경고가 표시될 수 있습니다. 배포를 생성하는 경우 코어 디바이스는 이 권한을 사용하여 사물 그룹을 식별하고 코어 디바이스를 제거한 모든 사물 그룹의 구성 요소를 제거합니다. 코어 디바이스가 [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.0을 실행하는 경우 배포가 실패합니다. 코어 디바이스가 Greengrass nucleus v2.5.1 이상을 실행하는 경우에는 배포가 진행되지만 구성 요소는 제거되지 않습니다. 사물 그룹 제거 동작에 대한 자세한 내용은 [디바이스에 AWS IoT Greengrass 구성 요소 배포](manage-deployments.md) 섹션을 참조하세요.

코어 디바이스를 제거하는 사물 그룹의 구성 요소를 제거하도록 코어 디바이스의 동작을 업데이트하려면 코어 디바이스의 AWS IoT 정책에 `greengrass:ListThingGroupsForCoreDevice` 권한을 추가합니다. 자세한 내용은 [코어 디바이스의 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>

코어 디바이스가 `DEBUG` 로그 수준에서 오류를 기록하므로 이 정보 메시지가 오류 없이 여러 번 인쇄될 수 있습니다. 이 문제는 코어 디바이스가 큰 배포 문서를 수신하는 경우 발생할 수 있습니다. 이 문제가 발생하면 배포는 무기한으로 다시 시도되며 그 상태는 **진행 중**(`IN_PROGRESS`)입니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 [이 문제 해결 항목](#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>

데이터 영역 API에 `iot:Connect` 권한이 없는 경우 이 오류가 발생할 수 있습니다. 올바른 정책이 없는 경우 `GreengrassV2DataException: 403`을 수신하게 됩니다. 권한 정책을 생성하려면 [AWS IoT 정책 생성](fleet-provisioning-setup.md#create-iot-policy) 지침을 따르세요.

## 코어 디바이스 구성 요소 문제
<a name="greengrass-core-component-issues"></a>

코어 디바이스에서 Greengrass 구성 요소 문제를 해결하세요.

**Topics**
+ [Warn: '<command>' is not recognized as an internal or external command](#component-warn-command-not-recognized)
+ [Python 스크립트는 메시지를 기록하지 않습니다.](#python-component-no-log-output)
+ [기본 구성을 변경할 때 구성 요소 구성이 업데이트되지 않음](#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>

 AWS IoT Greengrass 코어 소프트웨어가 구성 요소의 수명 주기 스크립트에서 명령을 실행하지 못하면 Greengrass 구성 요소의 로그에이 오류가 표시될 수 있습니다. 이 오류로 인해 구성 요소의 상태가 `BROKEN`이 됩니다. `ggc_user`와 같은 구성 요소를 실행하는 시스템 사용자가 [경로](https://en.wikipedia.org/wiki/PATH_(variable))의 폴더에서 명령의 실행 파일을 찾을 수 없는 경우 이러한 오류가 발생할 수 있습니다.

Windows 디바이스의 경우 실행 파일이 포함된 폴더가 구성 요소를 실행하는 시스템 사용자의 `PATH`에 있는지 확인하세요. `PATH`에서 누락된 경우 다음 중 하나를 수행합니다.
+ 실행 파일의 폴더를 모든 사용자가 사용할 수 있는 `PATH` 시스템 변수에 추가합니다. 그런 다음 구성 요소를 다시 시작합니다.

  Greengrass nucleus 2.5.0을 실행하는 경우 `PATH` 시스템 변수를 업데이트한 후 AWS IoT Greengrass 코어 소프트웨어를 다시 시작하여 업데이트된 로 구성 요소를 실행해야 합니다`PATH`. 소프트웨어를 다시 시작한 `PATH` 후 AWS IoT Greengrass 코어 소프트웨어가 업데이트된를 사용하지 않는 경우 디바이스를 다시 시작하고 다시 시도하세요. 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 실행](run-greengrass-core-v2.md) 단원을 참조하십시오.
+ 구성 요소를 실행하는 시스템 사용자의 `PATH` 사용자 변수에 실행 파일의 폴더를 추가합니다.

### Python 스크립트는 메시지를 기록하지 않습니다.
<a name="python-component-no-log-output"></a>

Greengrass 코어 디바이스는 구성 요소의 문제를 식별하는 데 사용할 수 있는 로그를 수집합니다. Python 스크립트의 `stdout` 및 `stderr` 메시지가 구성 요소 로그에 표시되지 않는 경우 Python에서 버퍼를 플러시하거나 이러한 표준 출력 스트림에 대한 버퍼링을 비활성화해야 할 수 있습니다. 해결 방법:
+ [-u](https://docs.python.org/3/using/cmdline.html#cmdoption-u) 인수로 Python을 실행하여 `stdout` 및 `stderr`에서 버퍼링을 비활성화합니다.

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

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

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

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

------
+ 구성 요소의 레시피에서 [Setenv](component-recipe-reference.md#lifecycle-setenv-definition)를 사용하여 [PYTHONUNBUFFERED](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED) 환경 변수를 비어 있지 않은 문자열로 설정합니다. 이 환경 변수는 `stdout` 및 `stderr`에서 버퍼링을 비활성화합니다.
+ `stdout` 또는 `stderr` 스트림의 버퍼를 플러시합니다. 다음 중 하나를 수행하세요.
  + 인쇄할 때 메시지를 플러시합니다.

    ```
    import sys
    
    print('Hello, error!', file=sys.stderr, flush=True)
    ```
  + 인쇄 후에 메시지를 플러시합니다. 스트림을 플러시하기 전에 여러 메시지를 전송할 수 있습니다.

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

Python 스크립트가 로그 메시지를 출력하는지 확인하는 방법에 대한 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 섹션을 참조하세요.

### 기본 구성을 변경할 때 구성 요소 구성이 업데이트되지 않음
<a name="update-component-configuration-to-default-configuration"></a>

구성 요소의 레시피에서 `DefaultConfiguration`을 변경하면 배포 중에 새 기본 구성이 구성 요소의 기존 구성을 대체하지 않습니다. 새 기본 구성을 적용하려면 구성 요소의 구성을 기본 설정으로 재설정해야 합니다. 구성 요소를 배포할 때 단일 빈 문자열을 [재설정 업데이트](update-component-configurations.md#reset-configuration-update)로 지정합니다.

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

**재설정 경로**  

```
[""]
```

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

다음 명령은 코어 디바이스에 배포를 생성합니다.

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

`reset-configuration-deployment.json` 파일에는 다음 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 ]

다음 [Greengrass CLI](greengrass-cli-component.md) 명령은 코어 디바이스에 로컬 배포를 생성합니다.

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

`reset-configuration-deployment.json` 파일에는 다음 JSON 문서가 포함되어 있습니다.

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

------

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

구성 요소에 리소스에서 IPC 작업을 수행할 권한이 없는 경우 Greengrass 구성 요소의 로그에 이 오류가 발생할 수 있습니다. 구성 요소에 IPC 작업을 직접 호출할 수 있는 권한을 부여하려면 구성 요소의 구성에서 IPC 권한 부여 정책을 정의합니다. 자세한 내용은 [구성 요소에 IPC 작업을 수행할 수 있는 권한 부여](interprocess-communication.md#ipc-authorization-policies) 단원을 참조하십시오.

**작은 정보**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
구성 요소의 레시피에서 `DefaultConfiguration`을 변경하는 경우 구성 요소의 구성을 새로운 기본 구성으로 재설정해야 합니다. 구성 요소를 배포할 때 단일 빈 문자열을 [재설정 업데이트](update-component-configurations.md#reset-configuration-update)로 지정합니다. 자세한 내용은 [기본 구성을 변경할 때 구성 요소 구성이 업데이트되지 않음](#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>

코어 디바이스의 모든 구성 요소를 포함하여 여러 IPC 권한 부여 정책에서 동일한 정책 ID를 사용하는 경우 이 오류가 발생할 수 있습니다.

구성 요소의 IPC 권한 부여 정책을 확인하고 중복 항목을 수정한 다음 다시 시도하세요. 고유한 정책 ID를 생성하려면 구성 요소 이름, IPC 서비스 이름, 카운터를 결합하는 것이 좋습니다. 자세한 내용은 [구성 요소에 IPC 작업을 수행할 수 있는 권한 부여](interprocess-communication.md#ipc-authorization-policies) 단원을 참조하십시오.

**작은 정보**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
구성 요소의 레시피에서 `DefaultConfiguration`을 변경하는 경우 구성 요소의 구성을 새로운 기본 구성으로 재설정해야 합니다. 구성 요소를 배포할 때 단일 빈 문자열을 [재설정 업데이트](update-component-configurations.md#reset-configuration-update)로 지정합니다. 자세한 내용은 [기본 구성을 변경할 때 구성 요소 구성이 업데이트되지 않음](#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>

코어 디바이스가 [토큰 교환 서비스](interact-with-aws-services.md)에서 AWS 자격 증명을 가져올 수 없는 경우이 오류가 표시될 수 있습니다. HTTP 400 상태 코드는 코어 디바이스의 [토큰 교환 IAM 역할](device-service-role.md)이 존재하지 않거나 자격 AWS IoT 증명 공급자가 이를 수임할 수 있는 신뢰 관계가 없기 때문에이 오류가 발생했음을 나타냅니다.

해결 방법:

1. 코어 디바이스가 사용하는 토큰 교환 역할을 식별합니다. 오류 메시지에는 토큰 교환 AWS IoT 역할을 가리키는 코어 디바이스의 역할 별칭이 포함됩니다. 개발 컴퓨터에서 다음 명령을 실행하고 *MyGreengrassCoreTokenExchangeRoleAlias*를 오류 메시지의 AWS IoT 역할 별칭의 이름으로 바꿉니다.

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

   응답에는 토큰 교환 IAM 역할의 Amazon 리소스 이름(ARN)이 포함되어 있습니다.

   ```
   {
     "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. 역할이 있는지 확인하세요. 다음 명령을 실행하고 *MyGreengrassV2TokenExchangeRole*을 토큰 교환 역할의 이름으로 바꿉니다.

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

   명령이 `NoSuchEntity` 오류를 반환하면 역할이 존재하지 않으므로 이를 생성해야 합니다. 역할을 생성하고 구성하는 방법에 대한 자세한 내용은 [코어 디바이스가 AWS 서비스와 상호 작용할 수 있도록 권한 부여](device-service-role.md) 섹션을 참조하세요.

1. 역할에 자격 AWS IoT 증명 공급자가 역할을 수임할 수 있는 신뢰 관계가 있는지 확인합니다. 이전 단계의 응답에는 역할의 신뢰 관계를 정의하는 `AssumeRolePolicyDocument`가 포함되어 있습니다. 역할은 `credentials.iot.amazonaws.com`이 수임할 수 있도록 허용하는 신뢰 관계를 정의해야 합니다. 이 문서는 다음 예제와 유사할 것입니다.

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

****  

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

------

   역할의 신뢰 관계에서 `credentials.iot.amazonaws.com`이 이를 수임하도록 허용하지 않는 경우 이 신뢰 관계를 역할에 추가해야 합니다. 자세한 내용은AWS Identity and Access Management 사용 설명서의 [역할 수정](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)을 참조하세요.**

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

코어 디바이스가 [토큰 교환 서비스](interact-with-aws-services.md)에서 AWS 자격 증명을 가져올 수 없는 경우이 오류가 표시될 수 있습니다. HTTP 403 상태 코드는 코어 디바이스의 AWS IoT 정책이 코어 디바이스의 AWS IoT 역할 별칭에 대한 `iot:AssumeRoleWithCertificate` 권한을 부여하지 않기 때문에이 오류가 발생했음을 나타냅니다.

코어 디바이스의 AWS IoT 정책을 검토하고 코어 디바이스의 AWS IoT 역할 별칭에 대한 `iot:AssumeRoleWithCertificate` 권한을 추가합니다. 오류 메시지에는 코어 디바이스의 현재 AWS IoT 역할 별칭이 포함됩니다. 이 권한과 코어 디바이스의 AWS IoT 정책을 업데이트하는 방법에 대한 자세한 내용은 [AWS IoT Greengrass V2 코어 디바이스에 대한 최소 AWS IoT 정책](device-auth.md#greengrass-core-minimal-iot-policy) 및 섹션을 참조하세요[코어 디바이스의 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>

구성 요소가 AWS 자격 증명을 요청하려고 하고 [토큰 교환 서비스에](interact-with-aws-services.md) 연결할 수 없는 경우이 오류가 표시될 수 있습니다.

해결 방법:
+ 구성 요소가 토큰 교환 서비스 구성 요소인 `aws.greengrass.TokenExchangeService`에 대한 종속성을 선언하는지 확인하세요. 그렇지 않은 경우 종속성을 추가하고 구성 요소를 다시 배포합니다.
+ 구성 요소가 Docker에서 실행되는 경우 [Docker 컨테이너 구성 요소에서 AWS 자격 증명 사용(Linux)](run-docker-container.md#docker-container-token-exchange-service)에 따라 올바른 네트워크 설정과 환경 변수를 적용해야 합니다.
+ 구성 요소가 NodeJS에서 작성된 경우 [dns.setDefaultResultOrder](https://nodejs.org/docs/latest/api/dns.html#dnssetdefaultresultorderorder)를 **ipv4first**로 설정합니다.
+ `::1`로 시작하고 `localhost`를 포함하는 항목이 있는지 `/etc/hosts`를 검사합니다. 해당 항목을 제거하여 구성 요소가 잘못된 주소의 토큰 교환 서비스에 연결되어 있는지 확인합니다.

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

구성 요소가 [토큰 교환 서비스를](interact-with-aws-services.md) 실행하지 않고 구성 요소가 AWS 자격 증명을 요청하려고 하면이 오류가 표시될 수 있습니다.

해결 방법:
+ 구성 요소가 토큰 교환 서비스 구성 요소인 `aws.greengrass.TokenExchangeService`에 대한 종속성을 선언하는지 확인하세요. 그렇지 않은 경우 종속성을 추가하고 구성 요소를 다시 배포합니다.
+ 구성 요소가 `install` 수명 주기에서 AWS 자격 증명을 사용하는지 확인합니다. AWS IoT Greengrass 는 `install` 수명 주기 동안 토큰 교환 서비스의 가용성을 보장하지 않습니다. AWS 자격 증명을 사용하는 코드를 `startup` 또는 `run` 수명 주기로 이동하도록 구성 요소를 업데이트한 다음 해당 구성 요소를 재배포합니다.

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

구성 값을 컨테이너 유형(목록 또는 객체)에서 비컨테이너 유형(문자열, 숫자 또는 부울)으로 변경하는 경우 이 오류가 발생할 수 있습니다. 해결 방법:

1. 구성 요소의 레시피를 확인하여 기본 구성이 해당 구성 값을 목록 또는 객체로 설정하는지 확인하세요. 해당하는 경우 구성 값을 제거하거나 변경합니다.

1. 배포를 생성하여 해당 구성 값을 기본값으로 재설정합니다. 자세한 내용은 [배포 만들기](create-deployments.md) 및 [구성 요소 구성 업데이트](update-component-configurations.md) 섹션을 참조하세요.

그런 다음 해당 구성 값을 문자열, 숫자 또는 부울로 설정할 수 있습니다.

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

[Docker 애플리케이션 관리자 구성 요소](docker-application-manager-component.md)가 Amazon Elastic Container Registry(Amazon ECR)의 프라이빗 리포지토리에서 Docker 이미지를 다운로드하려고 하는 경우 Greengrass nucleus 로그에서 이 오류가 발생할 수 있습니다. 이 오류는 `wincred` [Docker 자격 증명 도우미](https://github.com/docker/docker-credential-helpers)(`docker-credential-wincred`)를 사용하는 경우 발생합니다. 따라서 Amazon ECR은 로그인 자격 증명을 저장할 수 없습니다.

다음 작업 중 하나를 수행합니다.
+ `wincred` Docker 자격 증명 도우미를 사용하지 않는 경우 코어 디바이스에서 `docker-credential-wincred` 프로그램을 제거합니다.
+ `wincred` Docker 자격 증명 도우미를 사용하는 경우 다음을 수행합니다.

  1. 코어 디바이스에서 `docker-credential-wincred` 프로그램의 이름을 바꿉니다. `wincred`를 Windows Docker 자격 증명 도우미의 새로운 이름으로 바꿉니다. 예를 들어 이름을 `docker-credential-wincredreal`로 바꿀 수 있습니다.

  1. Windows Docker 자격 증명 도우미의 새로운 이름을 사용하도록 Docker 구성 파일(`.docker/config.json`)의 `credsStore` 옵션을 업데이트합니다. 예를 들어 프로그램 이름을 `docker-credential-wincredreal`로 바꾼 경우 `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>

`ggc_user`와 같은 구성 요소의 프로세스를 실행하는 시스템 사용자의 암호가 만료된 경우 Windows 코어 디바이스에서 이 오류가 발생할 수 있습니다. 따라서 AWS IoT Greengrass 코어 소프트웨어가 해당 시스템 사용자로 구성 요소 프로세스를 실행할 수 없습니다.

**Greengrass 시스템 사용자의 암호를 업데이트하려면**

1. 관리자로 다음 명령을 실행하여 사용자의 암호를 설정합니다. *ggc\$1user*를 시스템 사용자로 바꾸고 *암호*를 설정할 암호로 바꿉니다.

   ```
   net user ggc_user password
   ```

1. [PsExec 유틸리티](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec)를 사용하여 사용자의 새로운 암호를 LocalSystem 계정의 자격 증명 관리자 인스턴스에 저장합니다. *암호*를 설정한 사용자의 암호로 바꿉니다.

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

**작은 정보**  <a name="windows-password-expiration-tip"></a>
Windows 구성에 따라 사용자의 암호가 미래의 날짜에 만료되도록 설정할 수 있습니다. Greengrass 애플리케이션이 계속 작동하도록 하려면 암호가 만료되는 시기를 추적하고 만료되기 전에 이를 업데이트합니다. 사용자의 암호가 만료되지 않도록 설정할 수도 있습니다.  
사용자와 암호가 만료되는 시기를 확인하려면 다음 명령을 실행합니다.  

  ```
  net user ggc_user | findstr /C:expires
  ```
사용자의 암호가 만료되지 않도록 설정하려면 다음 명령을 실행합니다.  

  ```
  wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
  ```
[`wmic` 명령이 더 이상 사용되지 않는](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic) Windows 10 이상을 사용하는 경우 다음 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>

스트림 관리자 v2.0.7을 v2.0.8과 v2.0.11 사이의 버전으로 업그레이드할 때 구성 요소가 시작되지 않는 경우 스트림 관리자 구성 요소의 로그에 다음 오류가 발생할 수 있습니다.

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

스트림 관리자 v2.0.7을 배포하고 이후 버전으로 업그레이드하려는 경우 스트림 관리자 v2.0.12로 직접 업그레이드해야 합니다. 스트림 관리자 구성 요소에 대한 자세한 내용은 [스트림 관리자](stream-manager-component.md) 섹션을 참조하세요.

## 코어 디바이스 Lambda 함수 구성 요소 문제
<a name="greengrass-core-lambda-function-issues"></a>

코어 디바이스의 Lambda 함수 구성 요소 문제를 해결하세요.

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

다음 사례에서 컨테이너화된 Lambda 함수를 실행하는 경우 이 오류가 발생할 수 있습니다.
+ 코어 디바이스에 메모리 또는 디바이스 cgroup에 대한 cgroup v1이 활성화되어 있지 않습니다.
+ 코어 디바이스에 cgroup v2가 활성화되어 있습니다. Greengrass Lambda 함수에는 cgroup v1이 필요하며 cgroup v1과 v2는 상호 배타적입니다.

cgroup v1을 활성화하려면 디바이스를 다음 Linux 커널 파라미터로 부팅합니다.

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

**작은 정보**  
Raspberry Pi에서 `/boot/cmdline.txt` 파일을 편집하여 디바이스의 커널 파라미터를 설정합니다.

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

[레거시 구독 라우터 구성](legacy-subscription-router-component.md) 요소에 구독을 지정하지 않고 V2 코어 디바이스에서 AWS IoT Greengrass 코어 SDK를 사용하는 V1 Lambda 함수를 실행할 때이 오류가 발생할 수 있습니다. V2 이 문제를 해결하려면 레거시 구독 라우터를 배포하고 구성하여 필요한 구독을 지정하세요. 자세한 내용은 [V1 Lambda 함수 가져오기](set-up-v2-test-device.md#run-v1-lambda-functions) 단원을 참조하십시오.

## 구성 요소 버전 중단
<a name="discontinued-component-version"></a>

코어 디바이스의 구성 요소 버전이 중단되면 Personal Health Dashboard(PHD)에 알림이 표시될 수 있습니다. 구성 요소 버전은 중단 후 60분 이내에 이 알림을 PHD로 전송합니다.

수정해야 하는 배포를 확인하려면 AWS Command Line Interface를 사용하여 다음을 수행합니다.

1. 다음 명령을 실행하여 코어 디바이스 목록을 가져옵니다.

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

1. 다음 명령을 실행하여 1단계에서 각 코어 디바이스의 구성 요소 상태를 검색합니다. `coreDeviceName`을 쿼리할 각 코어 디바이스의 이름으로 바꿉니다.

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

1. 이전 단계에서 중단된 구성 요소 버전이 설치된 코어 디바이스를 수집합니다.

1. 다음 명령을 실행하여 3단계에서 각 코어 디바이스에 대한 모든 배포 작업의 상태를 검색합니다. `coreDeviceName`을 쿼리할 코어 디바이스의 이름으로 바꿉니다.

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

   응답에 코어 디바이스에 대한 배포 작업의 목록이 포함되어 있습니다. 배포를 수정하여 다른 구성 요소 버전을 선택할 수 있습니다. 배포를 수정하는 방법에 대한 자세한 내용은 [Revise deployments](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html)를 참조하세요.

## Greengrass 명령줄 인터페이스 문제
<a name="greengrass-cli-issues"></a>

[Greengrass CLI](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>

Greengrass CLI 명령을 실행하고 AWS IoT Greengrass 코어 소프트웨어가 설치된 위치와 다른 루트 폴더를 지정하면이 오류가 표시될 수 있습니다.

다음 중 하나를 수행하여 루트 경로를 설정하고를 AWS IoT Greengrass 코어 소프트웨어 설치 경로`/greengrass/v2`로 바꿉니다.<a name="greengrass-cli-set-root-path"></a>
+ `GGC_ROOT_PATH` 환경 변수를 `/greengrass/v2`로 설정합니다.
+ 다음 예제에 표시된 대로 명령에 `--ggcRootPath /greengrass/v2` 인수를 추가합니다.

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

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

에 대한 AWS CLI 문제를 해결합니다 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>

 AWS CLI (예: )를 사용하여 AWS IoT Greengrass V2 명령을 실행하면이 오류가 표시될 수 있습니다`aws greengrassv2 list-core-devices`.

이 오류는가 지원하지 AWS CLI 않는 버전이 있음을 나타냅니다 AWS IoT Greengrass V2. 와 AWS IoT Greengrass V2 함께를 사용하려면 다음 버전 중 하나 이상이 있어야 AWS CLI합니다.<a name="minimum-aws-cli-versions"></a>
+ Minimum AWS CLI V1 버전: v1.18.197
+ Minimum AWS CLI V2 버전: v2.1.11

**작은 정보**  <a name="tip-check-aws-cli-version"></a>
다음 명령을 실행하여 보유한의 버전을 확인할 수 AWS CLI 있습니다.  

```
aws --version
```

이 문제를 해결하려면 AWS CLI 를에서 지원하는 이후 버전으로 업데이트합니다 AWS IoT Greengrass V2. 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [AWS CLI의 설치, 업데이트, 제거](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)를 참조하세요.

# 세부 배포 오류 코드
<a name="troubleshooting-deployment"></a>

이 섹션의 오류 코드와 해결 방법을 사용하여 Greengrass nucleus 버전 2.8.0 이상을 사용하는 경우 구성 요소 배포 관련 문제를 해결합니다.

Greengrass nucleus는 가장 구체적이지 않은 코드부터 가장 구체적인 코드까지 계층 구조로 배포 오류를 보고합니다. 이 계층 구조를 사용하면 배포 오류의 원인을 정확히 파악할 수 있습니다. 예를 들어 다음 오류 계층 구조가 있을 수 있습니다.
+ DEPLOYMENT\$1FAILURE
  + ARTIFACT\$1DOWNLOAD\$1ERROR
    + IO\$1ERROR
      + DISK\$1SPACE\$1CRITICAL

오류 코드는 유형별로 정리되어 있습니다. 각 유형은 발생할 수 있는 오류 클래스를 나타냅니다.는 콘솔, API 및에서 이러한 오류 유형을 AWS IoT Greengrass 보고합니다 AWS CLI. 오류 계층 구조에 보고된 오류에 따라 두 가지 이상의 오류 유형이 있을 수 있습니다. 이전 예제에서 반환된 오류 유형은 `DEVICE_ERROR`입니다.

다음과 같은 유형이 있습니다.
+ **PERMISSION\$1ERROR** – 권한이 필요한 작업에 대한 액세스가 거부되었습니다.
+ **REQUEST\$1ERROR** – 배포 문서의 문제로 인해 오류가 발생했습니다.
+ **COMPONENT\$1RECIPE\$1ERROR** – 구성 요소 레시피의 문제로 인해 오류가 발생했습니다.
+ **AWS\$1COMPONENT\$1ERROR** - AWS 제공된 구성 요소를 시작하거나 제거할 때 오류가 발생했습니다.
+ **USER\$1COMPONENT\$1ERROR** – 사용자 구성 요소를 시작하거나 제거할 때 오류가 발생했습니다.
+ **COMPONENT\$1ERROR** - 구성 요소를 시작하거나 제거할 때 오류가 발생했지만 Greengrass nucleus에서 해당 구성 요소가 AWS 에서 제공한 구성 요소인지 사용자 구성 요소인지 확인할 수 없습니다.
+ **DEVICE\$1ERROR** – 로컬 I/O에 오류가 발생했거나 다른 디바이스 오류가 발생했습니다.
+ **DEPENDENCY\$1ERROR** – 배포가 Amazon S3에서 아티팩트를 다운로드하지 못했거나 ECR 레지스트리에서 이미지를 가져오지 못했습니다.
+ **HTTP\$1ERROR** – HTTP 요청에서 오류가 발생했습니다.
+ **NETWORK\$1ERROR** – 디바이스 네트워크에 오류가 발생했습니다.
+ **NUCLEUS\$1ERROR** – Greengrass nucleus가 구성 요소 또는 활성 nucleus 버전을 찾을 수 없습니다.
+ **SERVER\$1ERROR** – 서버가 요청에 대한 응답으로 500 오류를 반환했습니다.
+ **CLOUD\$1SERVICE\$1ERROR** – AWS IoT Greengrass 클라우드 서비스에서 오류가 발생했습니다.
+ **UNKNOWN\$1ERROR** - 구성 요소에 의해 확인되지 않은 예외가 발생했습니다.

이 섹션의 많은 오류는 AWS IoT Greengrass 코어 로그에 추가 정보를 보고합니다. 이러한 로그는 코어 디바이스의 로컬 파일 시스템에 저장됩니다. AWS IoT Greengrass 코어 코어 소프트웨어 및 각 개별 구성 요소에 대한 로그가 있습니다. 로그 액세스에 대한 자세한 내용은 [파일 시스템 로그 액세스](monitor-logs.md#access-local-logs) 섹션을 참조하세요.

## 권한 오류
<a name="permission-error"></a>

ACCESS\$1DENIED  
권한이 올바르게 설정되지 않았기 때문에 AWS 서비스 작업에서 403 오류를 반환할 때이 오류가 발생할 수 있습니다. 자세한 내용은 더 구체적인 오류 코드에서 확인하세요.

GET\$1DEPLOYMENT\$1CONFIGURATION\$1ACCESS\$1DENIED  
 AWS IoT 정책에서 `GetDeploymentConfiguration` 작업 호출 권한을 허용하지 않는 경우이 오류가 발생할 수 있습니다. 코어 디바이스의 정책에 `greengrass::GetDeploymentConfiguration` 권한을 추가합니다.

GET\$1COMPONENT\$1VERSION\$1ARTIFACT\$1ACCESS\$1DENIED  
코어 디바이스 AWS IoT 정책에서 `greengrass:GetComponentVersionArtifact` 권한을 허용하지 않는 경우이 오류가 발생할 수 있습니다. 코어 디바이스의 정책에 권한을 추가합니다.

RESOLVE\$1COMPONENT\$1CANDIDATES\$1ACCESS\$1DENIED  
코어 디바이스 AWS IoT 정책에서 `greengrass:ResolveComponentCandidates` 권한을 허용하지 않는 경우이 오류가 발생할 수 있습니다. 코어 디바이스의 정책에 권한을 추가합니다.

GET\$1ECR\$1CREDENTIAL\$1ERROR  
배포가 ECR의 프라이빗 레지스트리로 인증할 수 없는 경우 이 오류가 발생할 수 있습니다. 로그에 특정 오류가 있는지 확인한 다음 배포를 다시 시도하세요.

USER\$1NOT\$1AUTHORIZED\$1FOR\$1DOCKER  
Greengrass 사용자에게 Docker를 사용할 권한이 없는 경우 이 오류가 발생할 수 있습니다. Greengrass를 루트로 실행 중이거나 사용자가 `docker` 그룹에 추가되어 있는지 확인합니다. 그런 다음 배포를 다시 시도하세요.

S3\$1ACCESS\$1DENIED  
Amazon S3 작업에서 403 오류를 반환하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

S3\$1HEAD\$1OBJECT\$1ACCESS\$1DENIED  
디바이스의 토큰 교환 역할에서 구성 요소의 레시피에 지정한 S3 객체 URL에서 AWS IoT Greengrass 코어 소프트웨어가 구성 요소 아티팩트를 다운로드하도록 허용하지 않거나 구성 요소 아티팩트를 사용할 수 없는 경우 이 오류가 발생할 수 있습니다. 토큰 교환 역할이 아티팩트를 사용할 수 있는 S3 객체 URL에 대해 `s3:GetObject`를 허용하고 아티팩트가 있는지 확인하세요.

S3\$1GET\$1BUCKET\$1LOCATION\$1ACCESS\$1DENIED  
디바이스의 토큰 교환 역할이 아티팩트를 사용할 수 있는 Amazon S3 버킷에 대한 `s3:GetBucketLocation` 권한을 허용하지 않는 경우 이 오류가 발생할 수 있습니다. 디바이스에서 권한을 허용하는지 확인한 다음 배포를 다시 시도하세요.

S3\$1GET\$1OBJECT\$1ACCESS\$1DENIED  
디바이스의 토큰 교환 역할에서 구성 요소의 레시피에 지정한 S3 객체 URL에서 AWS IoT Greengrass 코어 소프트웨어가 구성 요소 아티팩트를 다운로드하도록 허용하지 않거나 구성 요소 아티팩트를 사용할 수 없는 경우 이 오류가 발생할 수 있습니다. 토큰 교환 역할이 아티팩트를 사용할 수 있는 S3 객체 URL에 대해 `s3:GetObject`를 허용하고 아티팩트가 있는지 확인하세요.

## 요청 오류
<a name="request-error"></a>

NUCLEUS\$1MISSING\$1REQUIRED\$1CAPABILITIES  
배포의 nucleus 버전이 대규모 구성을 다운로드하거나 Linux 리소스 제한을 설정하는 등 요청된 작업을 수행할 수 없는 경우 이 오류가 발생할 수 있습니다. 작업을 지원하는 nucleus 버전으로 배포를 다시 시도하세요.

MULTIPLE\$1NUCLEUS\$1RESOLVED\$1ERROR  
배포에서 여러 nucleus 구성 요소를 배포하려고 하는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

COMPONENT\$1CIRCULAR\$1DEPENDENCY\$1ERROR  
배포의 두 구성 요소가 서로 종속되어 있는 경우 이 오류가 발생할 수 있습니다. 배포의 구성 요소가 서로 의존하지 않도록 구성 요소 설정을 수정하세요.

UNAUTHORIZED\$1NUCLEUS\$1MINOR\$1VERSION\$1UPDATE  
배포의 구성 요소에 nucleus 마이너 버전 업데이트가 필요하지만 해당 버전이 배포에서 지정되지 않은 경우 이 오류가 발생할 수 있습니다. 이는 다른 버전에 의존하는 구성 요소에 대한 마이너 버전을 실수로 업데이트하는 것을 줄이는 데 도움이 됩니다. 배포에 새 마이너 nucleus 버전을 포함하세요.

MISSING\$1DOCKER\$1APPLICATION\$1MANAGER  
Docker 애플리케이션 관리자를 배포하지 않고 Docker 구성 요소를 배포하는 경우 이 오류가 발생할 수 있습니다. 배포에 Docker 애플리케이션 관리자가 포함되어 있는지 확인하세요.

MISSING\$1TOKEN\$1EXCHANGE\$1SERVICE  
배포에서 토큰 교환 서비스를 배포하지 않고 프라이빗 ECR 레지스트리에서 Docker 이미지 아티팩트를 다운로드하려고 하는 경우 이 오류가 발생할 수 있습니다. 배포에 토큰 교환 서비스가 포함되어 있는지 확인하세요.

COMPONENT\$1VERSION\$1REQUIREMENTS\$1NOT\$1MET  
버전 제약 조건이 충돌하거나 구성 요소 버전이 없는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 [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  
 AWS 서비스 작업이 속도 할당량을 초과하면이 오류가 발생할 수 있습니다. 배포를 다시 시도하십시오.

CONFLICTED\$1REQUEST  
배포가 한 번에 두 개 이상의 작업을 수행하려고 하기 때문에 AWS 서비스 작업에서 409 오류를 반환할 때이 오류가 발생할 수 있습니다. 배포를 다시 시도하십시오.

RESOURCE\$1NOT\$1FOUND  
리소스를 찾을 수 없어 AWS 서비스 작업에서 404 오류를 반환할 때이 오류가 발생할 수 있습니다. 로그에서 누락된 리소스가 있는지 확인하세요.

RUN\$1WITH\$1CONFIG\$1NOT\$1VALID  
구성 요소를 실행하기 위해 지정한 `posixUser`, `posixGroup` 또는 `windowsUser` 정보가 유효하지 않은 경우 이 오류가 발생할 수 있습니다. 사용자가 유효한지 확인한 다음 배포를 다시 시도하세요.

UNSUPPORTED\$1REGION  
배포를 위해 지정된 리전을 AWS IoT Greengrass에서 지원하지 않는 경우 이 오류가 발생할 수 있습니다. 리전을 확인하고 배포를 다시 시도하세요.

IOT\$1CRED\$1ENDPOINT\$1NOT\$1VALID  
구성에 지정된 AWS IoT 자격 증명 엔드포인트가 유효하지 않은 경우이 오류가 발생할 수 있습니다. 엔드포인트를 확인하고 요청을 다시 시도하세요.

IOT\$1DATA\$1ENDPOINT\$1NOT\$1VALID  
구성에 지정된 AWS IoT 데이터 엔드포인트가 유효하지 않은 경우이 오류가 발생할 수 있습니다. 엔드포인트를 확인하고 요청을 다시 시도하세요.

S3\$1HEAD\$1OBJECT\$1RESOURCE\$1NOT\$1FOUND  
구성 요소의 레시피에 지정한 S3 객체 URL에서 구성 요소 아티팩트를 사용할 수 없는 경우 이 오류가 발생할 수 있습니다. 아티팩트를 S3 버킷에 업로드했고 아티팩트 URI가 버킷에 있는 아티팩트의 S3 객체 URL과 일치하는지 확인하세요.

S3\$1GET\$1BUCKET\$1LOCATION\$1RESOURCE\$1NOT\$1FOUND  
Amazon S3 버킷을 찾을 수 없는 경우 이 오류가 발생할 수 있습니다. 버킷이 있는지 확인하고 배포를 다시 시도하세요.

S3\$1GET\$1OBJECT\$1RESOURCE\$1NOT\$1FOUND  
구성 요소의 레시피에 지정한 S3 객체 URL에서 구성 요소 아티팩트를 사용할 수 없는 경우 이 오류가 발생할 수 있습니다. 아티팩트를 S3 버킷에 업로드했고 아티팩트 URI가 버킷에 있는 아티팩트의 S3 객체 URL과 일치하는지 확인하세요.

IO\$1MAPPING\$1ERROR  
배포 문서 또는 레시피의 구문을 분석할 때 I/O 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

## 구성 요소 레시피 오류
<a name="component-recipe-error"></a>

RECIPE\$1PARSE\$1ERROR  
레시피 구조에 오류가 있어 배포 레시피의 구문을 분석할 수 없는 경우 이 오류가 발생할 수 있습니다. 레시피의 형식이 올바른지 확인하고 배포를 다시 시도하세요.

RECIPE\$1METADATA\$1PARSE\$1ERROR  
클라우드에서 다운로드한 배포 레시피 메타데이터의 구문을 분석할 수 없는 경우 이 오류가 발생할 수 있습니다. 에 문의하세요 지원.

ARTIFACT\$1URI\$1NOT\$1VALID  
레시피의 아티팩트 URI 형식이 올바르지 않으면 이 오류가 발생할 수 있습니다. 로그에서 유효하지 않은 URI를 확인하고 레시피에서 URI를 업데이트한 다음 배포를 다시 시도하세요.

S3\$1ARTIFACT\$1URI\$1NOT\$1VALID  
레시피에 있는 아티팩트의 Amazon S3 URI가 유효하지 않은 경우 이 오류가 발생할 수 있습니다. 로그에서 유효하지 않은 URI를 확인하고 레시피에서 URI를 업데이트한 다음 배포를 다시 시도하세요.

DOCKER\$1ARTIFACT\$1URI\$1NOT\$1VALID  
레시피에 있는 아티팩트의 Docker URI가 유효하지 않은 경우 이 오류가 발생할 수 있습니다. 로그에서 유효하지 않은 URI를 확인하고 레시피에서 URI를 업데이트한 다음 배포를 다시 시도하세요.

EMPTY\$1ARTIFACT\$1URI  
아티팩트의 URI가 레시피에서 지정되지 않은 경우 이 오류가 발생할 수 있습니다. 로그에서 URI가 누락된 아티팩트를 확인하고 레시피에서 URI를 업데이트한 다음 배포를 다시 시도하세요.

EMPTY\$1ARTIFACT\$1SCHEME  
아티팩트에 대한 URI 체계가 정의되지 않은 경우 이 오류가 발생할 수 있습니다. 로그에서 유효하지 않은 URI를 확인하고 레시피에서 URI를 업데이트한 다음 배포를 다시 시도하세요.

UNSUPPORTED\$1ARTIFACT\$1SCHEME  
실행 중인 nucleus 버전에서 URI 체계를 지원하지 않는 경우 이 오류가 발생할 수 있습니다. URI가 유효하지 않거나 nucleus 버전을 업데이트해야 합니다. URI가 유효하지 않은 경우 로그에서 유효하지 않은 URI를 확인하고 레시피에서 URI를 업데이트한 다음 배포를 다시 시도하세요.

RECIPE\$1MISSING\$1MANIFEST  
매니페스트 섹션이 레시피에 포함되어 있지 않은 경우 이 오류가 발생할 수 있습니다. 레시피에 매니페스트를 추가하고 배포를 다시 시도하세요.

RECIPE\$1MISSING\$1ARTIFACT\$1HASH\$1ALGORITHM  
해시 알고리즘이 없는 레시피 내부에 로컬이 아닌 아티팩트가 지정되어 있는 경우 이 오류가 발생할 수 있습니다. 아티팩트에 알고리즘을 추가한 다음 요청을 다시 시도하세요.

ARTIFACT\$1CHECKSUM\$1MISMATCH  
다운로드한 아티팩트의 다이제스트가 레시피에 지정되어 있는 것과 다른 경우 이 오류가 발생할 수 있습니다. 레시피에 올바른 다이제스트가 포함되어 있는지 확인한 다음 배포를 다시 시도하세요. 자세한 내용은 [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  
배포 레시피에 지정되어 있는 종속성 유형이 유효하지 않은 경우 이 오류가 발생할 수 있습니다. 레시피를 확인한 다음 요청을 다시 시도하세요.

CONFIG\$1INTERPOLATE\$1ERROR  
레시피 변수를 보간하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 로그를 확인하세요.

IO\$1MAPPING\$1ERROR  
배포 문서 또는 레시피의 구문을 분석할 때 I/O 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

## AWS 구성 요소 오류, 사용자 구성 요소 오류, 구성 요소 오류
<a name="component-error"></a>

구성 요소에 문제가 있는 경우 다음 오류 코드가 반환됩니다. 보고되는 실제 오류 유형은 오류가 발생하게 한 특정 구성 요소에 따라 다릅니다. Greengrass nucleus가 구성 요소를에서 제공한 구성 요소로 식별하면 AWS IoT Greengrass를 반환합니다`AWS_COMPONENT_ERROR`. 구성 요소가 사용자 구성 요소로 식별되면 Greengrass nucleus는 `USER_COMPONENT_ERROR`를 반환합니다. Greengrass nucleus에서 알지 못하는 경우 `COMPONENT_ERROR`를 반환합니다.

COMPONENT\$1UPDATE\$1ERROR  
배포 중에 구성 요소가 업데이트되지 않는 경우 이 오류가 발생할 수 있습니다. 추가 오류 코드를 확인하거나 로그를 확인하여 오류의 원인을 확인하세요.

COMPONENT\$1BROKEN  
배포 중에 구성 요소가 손상된 경우 이 오류가 발생할 수 있습니다. 구성 요소 로그에서 오류 세부 정보를 확인한 다음 배포를 다시 시도하세요.

REMOVE\$1COMPONENT\$1ERROR  
배포 중에 nucleus가 구성 요소를 제거할 수 없는 경우 이 오류가 발생할 수 있습니다. 로그에서 오류 세부 정보를 확인한 다음 배포를 다시 시도하세요.

COMPONENT\$1BOOTSTRAP\$1TIMEOUT  
구성 요소의 부트스트랩 태스크가 구성된 제한 시간보다 오래 걸리는 경우 이 오류가 발생할 수 있습니다. 제한 시간을 늘리거나 부트스트랩 태스크의 실행 시간을 줄인 다음 배포를 다시 시도하세요.

COMPONENT\$1BOOTSTRAP\$1ERROR  
구성 요소의 부트스트랩 태스크에 오류가 있는 경우 이 오류가 발생할 수 있습니다. 로그에서 오류 세부 정보를 확인한 다음 배포를 다시 시도하세요.

COMPONENT\$1CONFIGURATION\$1NOT\$1VALID  
Nucleus가 구성 요소에 대해 배포된 구성을 검증할 수 없는 경우 이 오류가 발생할 수 있습니다. 로그에서 오류 세부 정보를 확인한 다음 배포를 다시 시도하세요.

## 디바이스 오류
<a name="device-error"></a>

IO\$1WRITE\$1ERROR  
파일에 쓸 때 이 오류가 발생할 수 있습니다. 자세한 내용은 로그를 확인하세요.

IO\$1READ\$1ERROR  
파일에서 읽을 때 이 오류가 발생할 수 있습니다. 자세한 내용은 로그를 확인하세요.

DISK\$1SPACE\$1CRITICAL  
배포 요청을 완료할 디스크 공간이 충분하지 않은 경우 이 오류가 발생할 수 있습니다. 사용 가능한 공간이 20MB 이상이거나 더 큰 아티팩트를 보관하기에 충분해야 합니다. 디스크 공간을 확보한 다음 배포를 다시 시도하세요.

IO\$1FILE\$1ATTRIBUTE\$1ERROR  
파일 시스템에서 기존 파일 크기를 검색할 수 없는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 로그를 확인하세요.

SET\$1PERMISSION\$1ERROR  
다운로드한 아티팩트 또는 아티팩트 디렉터리에 권한을 설정할 수 없는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 로그를 확인하세요.

IO\$1UNZIP\$1ERROR  
아티팩트의 압축을 해제할 수 없는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 로그를 확인하세요.

LOCAL\$1RECIPE\$1NOT\$1FOUND  
레시피 파일의 로컬 복사본을 찾을 수 없는 경우 이 오류가 발생할 수 있습니다. 배포를 다시 시도하세요.

LOCAL\$1RECIPE\$1CORRUPTED  
레시피 다운로드 이후 로컬 복사본이 변경된 경우 이 오류가 발생할 수 있습니다. 레시피의 기존 복사본을 삭제하고 배포를 다시 시도하세요.

LOCAL\$1RECIPE\$1METADATA\$1NOT\$1FOUND  
레시피 메타데이터 파일의 로컬 복사본을 찾을 수 없는 경우 이 오류가 발생할 수 있습니다. 배포를 다시 시도하세요.

LAUNCH\$1DIRECTORY\$1CORRUPTED  
Greengrass nucleus(`/greengrass/v2/alts/current`)를 시작하는 데 사용된 디렉터리가 마지막으로 nucleus가 시작된 이후 수정되는 경우 이 오류가 발생할 수 있습니다. Nucleus를 다시 시작한 다음 배포를 다시 시도하세요.

HASHING\$1ALGORITHM\$1UNAVAILABLE  
디바이스의 Java 배포에서 필수 해싱 알고리즘을 지원하지 않거나 구성 요소 레시피에 지정된 해시 알고리즘이 유효하지 않은 경우 이 오류가 발생할 수 있습니다.

DEVICE\$1CONFIG\$1NOT\$1VALID\$1FOR\$1ARTIFACT\$1DOWNLOAD  
디바이스 구성에 오류가 있어 배포가 Amazon S3 또는 Greengrass 클라우드에서 아티팩트를 다운로드할 수 없는 경우 이 오류가 발생할 수 있습니다. 로그에서 특정 구성 오류를 확인한 다음 배포를 다시 시도하세요.

## 종속성 오류
<a name="dependency-error"></a>

DOCKER\$1ERROR  
Docker 이미지를 풀링할 때 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

DOCKER\$1SERVICE\$1UNAVAILABLE  
Greengrass가 Docker 레지스트리에 로그인할 수 없는 경우 이 오류가 발생할 수 있습니다. 로그에 특정 오류가 있는지 확인한 다음 배포를 다시 시도하세요.

DOCKER\$1LOGIN\$1ERROR  
Docker에 로그인할 때 예기치 않은 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 로그에 특정 오류가 있는지 확인한 다음 배포를 다시 시도하세요.

DOCKER\$1PULL\$1ERROR  
레지스트리에서 Docker 이미지를 풀링할 때 예기치 않은 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 로그에 특정 오류가 있는지 확인한 다음 배포를 다시 시도하세요.

DOCKER\$1IMAGE\$1NOT\$1VALID  
요청된 Docker 이미지가 없는 경우 이 오류가 발생할 수 있습니다. 로그에서 특정 오류를 확인하고 배포를 다시 시도하세요.

DOCKER\$1IMAGE\$1QUERY\$1ERROR  
Docker에서 사용 가능한 이미지를 쿼리하는 동안 예기치 않은 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 로그에서 특정 오류를 확인하고 배포를 다시 시도하세요.

S3\$1ERROR  
Amazon S3 아티팩트를 다운로드하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

S3\$1RESOURCE\$1NOT\$1FOUND  
Amazon S3 작업에서 404 오류를 반환하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

S3\$1BAD\$1REQUEST  
Amazon S3 작업에서 400 오류를 반환하는 경우 이 오류가 발생할 수 있습니다. 특정 오류에 대한 로그를 확인하고 요청을 다시 시도하세요.

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

HTTP\$1REQUEST\$1ERROR  
HTTP 요청을 하는 동안 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 로그에서 특정 오류를 확인하세요.

DOWNLOAD\$1DEPLOYMENT\$1DOCUMENT\$1ERROR  
배포 문서를 다운로드할 때 HTTP 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 로그에서 특정 HTTP 오류를 확인하세요.

GET\$1GREENGRASS\$1ARTIFACT\$1SIZE\$1ERROR  
퍼블릭 구성 요소 아티팩트의 크기를 가져올 때 HTTP 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 로그에서 특정 HTTP 오류를 확인하세요.

DOWNLOAD\$1GREENGRASS\$1ARTIFACT\$1ERROR  
퍼블릭 구성 요소 아티팩트를 다운로드할 때 HTTP 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 로그에서 특정 HTTP 오류를 확인하세요.

## 네트워크 오류
<a name="network-error"></a>

NETWORK\$1ERROR  
배포 중에 연결 문제가 있는 경우 이 오류가 발생할 수 있습니다. 디바이스가 인터넷에 연결되어 있는지 확인하고 배포를 다시 시도하세요.

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

BAD\$1REQUEST  
 AWS 클라우드 작업이 400 오류를 반환하면이 오류가 발생할 수 있습니다. 로그를 확인하여 오류를 일으킨 API를 확인한 다음 nucleus 소프트웨어 업데이트 페이지를 확인하여 이후 버전의 nucleus에서 문제가 수정되었는지 확인하거나에 문의하세요 지원.

NUCLEUS\$1VERSION\$1NOT\$1FOUND  
코어 디바이스가 활성 nucleus의 버전을 찾을 수 없는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

NUCLEUS\$1RESTART\$1FAILURE  
Nucleus를 다시 시작해야 하는 배포 중에 nucleus가 다시 시작되지 않는 경우 이 오류가 발생할 수 있습니다. 로더 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

INSTALLED\$1COMPONENT\$1NOT\$1FOUND  
Nucleus가 설치된 구성 요소를 찾을 수 없는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

DEPLOYMENT\$1DOCUMENT\$1NOT\$1VALID  
디바이스가 유효하지 않은 배포 문서를 수신하는 경우 이 오류가 발생할 수 있습니다. 추가 오류 코드를 확인하거나 로그를 확인하여 오류의 원인을 확인하세요.

EMPTY\$1DEPLOYMENT\$1REQUEST  
디바이스에서 빈 배포 요청을 수신하는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

DEPLOYMENT\$1DOCUMENT\$1PARSE\$1ERROR  
배포 요청 형식이 예상 형식과 일치하지 않는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

COMPONENT\$1METADATA\$1NOT\$1VALID\$1IN\$1DEPLOYMENT  
배포 요청에 유효하지 않은 구성 요소 메타데이터가 포함되어 있는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

LAUNCH\$1DIRECTORY\$1CORRUPTED  
Greengrass 디바이스를 한 그룹에서 다른 그룹으로 이동한 다음 Greengrass를 다시 시작해야 하는 배포를 사용하여 원래 그룹으로 다시 돌아오는 경우 이 오류가 발생할 수 있습니다. 오류를 해결하려면 디바이스에서 Greengrass의 시작 디렉터리를 다시 생성하세요.  
자세한 내용은 [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) 단원을 참조하십시오.

## 서버 오류
<a name="server-error"></a>

SERVER\$1ERROR  
서비스가 현재 요청을 처리할 수 없기 때문에 AWS 서비스 작업에서 500 오류를 반환할 때이 오류가 발생할 수 있습니다. 나중에 배포를 다시 시도하세요.

S3\$1SERVER\$1ERROR  
Amazon S3 작업에서 500 오류를 반환하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

## 클라우드 서비스 오류
<a name="cloud-service-error"></a>

RESOLVE\$1COMPONENT\$1CANDIDATES\$1BAD\$1RESPONSE  
Greengrass 클라우드 서비스가 `ResolveComponentCandidates` 작업에 호환되지 않는 응답을 보내는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

DEPLOYMENT\$1DOCUMENT\$1SIZE\$1EXCEEDED  
요청된 배포 문서가 최대 크기 할당량을 초과한 경우 이 오류가 발생할 수 있습니다. 배포 문서의 크기를 줄이고 배포를 다시 시도하세요.

GREENGRASS\$1ARTIFACT\$1SIZE\$1NOT\$1FOUND  
Greengrass가 퍼블릭 구성 요소 아티팩트의 크기를 가져올 수 없는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

DEPLOYMENT\$1DOCUMENT\$1NOT\$1VALID  
디바이스가 유효하지 않은 배포 문서를 수신하는 경우 이 오류가 발생할 수 있습니다. 추가 오류 코드를 확인하거나 로그를 확인하여 오류의 원인을 확인하세요.

EMPTY\$1DEPLOYMENT\$1REQUEST  
디바이스에서 빈 배포 요청을 수신하는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

DEPLOYMENT\$1DOCUMENT\$1PARSE\$1ERROR  
배포 요청 형식이 예상 형식과 일치하지 않는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

COMPONENT\$1METADATA\$1NOT\$1VALID\$1IN\$1DEPLOYMENT  
배포 요청에 유효하지 않은 구성 요소 메타데이터가 포함되어 있는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

## 일반 오류
<a name="generic-error"></a>

이러한 일반 오류에는 연결된 오류 유형이 없습니다.

DEPLOYMENT\$1INTERRUPTED  
nucleus 종료 또는 기타 외부 이벤트로 인해 배포를 완료할 수 없는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

ARTIFACT\$1DOWNLOAD\$1ERROR  
아티팩트를 다운로드하는 데 문제가 있는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

NO\$1AVAILABLE\$1COMPONENT\$1VERSION  
구성 요소 버전이 클라우드 또는 로컬에 없거나 종속성 해결 충돌이 있는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

COMPONENT\$1PACKAGE\$1LOADING\$1ERROR  
다운로드한 아티팩트를 처리하는 동안 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

CLOUD\$1API\$1ERROR  
 AWS 서비스 API를 호출하는 동안 오류가 발생하면이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

IO\$1ERROR  
배포 중에 I/O 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 자세한 내용은 추가 오류 코드 또는 로그를 확인하세요.

COMPONENT\$1UPDATE\$1ERROR  
배포 중에 구성 요소가 업데이트되지 않는 경우 이 오류가 발생할 수 있습니다. 추가 오류 코드를 확인하거나 로그를 확인하여 오류의 원인을 확인하세요.

## 알 수 없는 오류
<a name="unknown-error"></a>

DEPLOYMENT\$1FAILURE  
확인되지 않은 예외가 발생하여 배포에 실패하는 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

DEPLOYMENT\$1TYPE\$1NOT\$1VALID  
배포 유형이 유효하지 않은 경우 이 오류가 발생할 수 있습니다. 로그를 확인하여 오류의 원인을 확인한 다음 nucleus 소프트웨어 업데이트 페이지에서 이후 버전의 nucleus에서 문제가 해결되었는지 확인하거나 지원에 문의하세요.

# 세부 구성 요소 상태 코드
<a name="troubleshooting-component"></a>

이 섹션의 상태 코드와 해결 방법을 사용하여 Greengrass nucleus 버전 2.8.0 이상을 사용하는 경우 구성 요소 관련 문제를 해결하세요.

이 주제의 많은 상태는 AWS IoT Greengrass 코어 로그에서 추가 정보를 보고합니다. 이러한 로그는 코어 디바이스의 로컬 파일 시스템에 저장됩니다. 각 개별 구성 요소에 대한 로그가 있습니다. 로그 액세스에 대한 자세한 내용은 [파일 시스템 로그 액세스](monitor-logs.md#access-local-logs) 섹션을 참조하세요.

INSTALL\$1ERROR  
설치 스크립트를 실행하는 동안 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 오류 코드는 구성 요소 로그에서 보고됩니다. 설치 스크립트에서 오류를 확인하고 구성 요소를 다시 배포하세요.

INSTALL\$1CONFIG\$1NOT\$1VALID  
레시피의 `install` 섹션이 유효하지 않아 구성 요소 설치를 완료할 수 없는 경우 이 오류가 발생할 수 있습니다. 레시피의 설치 섹션에서 오류를 확인하고 배포를 다시 시도하세요.

INSTALL\$1IO\$1ERROR  
구성 요소를 설치하는 동안 I/O 오류가 발생하면 이 오류가 발생할 수 있습니다. 오류에 대한 자세한 내용은 구성 요소 오류 로그에서 확인하세요.

INSTALL\$1MISSING\$1DEFAULT\$1RUNWITH  
AWS IoT Greengrass에서 구성 요소를 설치할 때 사용할 사용자 또는 그룹을 결정할 수 없는 경우 이 오류가 발생할 수 있습니다. 설치 레시피의 `runWith` 섹션에 유효한 사용자 또는 그룹이 포함되어 있는지 확인합니다.

INSTALL\$1TIMEOUT  
설치 스크립트가 구성된 제한 시간 내에 완료되지 않은 경우 이 오류가 발생할 수 있습니다. 레시피의 `install` 섹션에 지정된 `Timeout` 기간을 늘리거나 구성된 제한 시간 내에 완료되도록 설치 스크립트를 수정하세요.

STARTUP\$1ERROR  
시작 스크립트를 실행하는 동안 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 오류 코드는 구성 요소 로그에서 보고됩니다. 설치 스크립트에서 오류를 확인하고 구성 요소를 다시 배포하세요.

STARTUP\$1CONFIG\$1NOT\$1VALID  
레시피의 `startup` 섹션이 유효하지 않아 구성 요소 설치를 완료할 수 없는 경우 이 오류가 발생할 수 있습니다. 레시피의 시작 섹션에서 오류를 확인하고 배포를 다시 시도하세요.

STARTUP\$1IO\$1ERROR  
구성 요소를 시작하는 동안 I/O 오류가 발생하면 이 오류가 발생할 수 있습니다. 오류에 대한 자세한 내용은 구성 요소 오류 로그에서 확인하세요.

START\$1MISSING\$1DEFAULT\$1RUNWITH  
AWS IoT Greengrass에서 구성 요소를 실행할 때 사용할 사용자 또는 그룹을 결정할 수 없는 경우 이 오류가 발생할 수 있습니다. 시작 레시피의 `runWith` 섹션에 유효한 사용자 또는 그룹이 포함되어 있는지 확인합니다.

STARTUP\$1TIMEOUT  
시작 스크립트가 구성된 제한 시간 내에 완료되지 않은 경우 이 오류가 발생할 수 있습니다. 레시피의 `startup` 섹션에 지정된 `Timeout` 기간을 늘리거나 구성된 제한 시간 내에 완료되도록 시작 스크립트를 수정하세요.

RUN\$1ERROR  
구성 요소 스크립트를 실행하는 동안 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 오류 코드는 구성 요소 로그에서 보고됩니다. 실행 스크립트에서 오류를 확인하고 구성 요소를 다시 배포하세요.

RUN\$1MISSING\$1DEFAULT\$1RUNWITH  
AWS IoT Greengrass에서 구성 요소를 실행할 때 사용할 사용자 또는 그룹을 결정할 수 없는 경우 이 오류가 발생할 수 있습니다. 실행 레시피의 `runWith` 섹션에 유효한 사용자 또는 그룹이 포함되어 있는지 확인합니다.

RUN\$1CONFIG\$1NOT\$1VALID  
레시피의 `run` 섹션이 유효하지 않아 구성 요소를 실행할 수 없는 경우 이 오류가 발생할 수 있습니다. 레시피의 실행 섹션에서 오류를 확인하고 배포를 다시 시도하세요.

RUN\$1IO\$1ERROR  
구성 요소가 실행되는 동안 I/O 오류가 발생하면 이 오류가 발생할 수 있습니다. 오류에 대한 자세한 내용은 구성 요소 오류 로그에서 확인하세요.

RUN\$1TIMEOUT  
실행 스크립트가 구성된 제한 시간 내에 완료되지 않은 경우 이 오류가 발생할 수 있습니다. 레시피의 `run` 섹션에 지정된 `Timeout` 기간을 늘리거나 구성된 제한 시간 내에 완료되도록 실행 스크립트를 수정하세요.

SHUTDOWN\$1ERROR  
구성 요소 스크립트를 종료하는 동안 오류가 발생하는 경우 이 오류가 발생할 수 있습니다. 오류 코드는 구성 요소 로그에서 보고됩니다. 종료 스크립트에서 오류를 확인하고 구성 요소를 다시 배포하세요.

SHUTDOWN\$1TIMEOUT  
종료 스크립트가 구성된 제한 시간 내에 완료되지 않은 경우 이 오류가 발생할 수 있습니다. 레시피의 `shutdown` 섹션에 지정된 `Timeout` 기간을 늘리거나 구성된 제한 시간 내에 완료되도록 실행 스크립트를 수정하세요.