

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# トラブルシューティング AWS IoT Greengrass V2
<a name="troubleshooting"></a>

このセクションのトラブルシューティング情報と解決策を使用して、 の問題を解決します AWS IoT Greengrass Version 2。

**Topics**
+ [AWS IoT Greengrass Core ソフトウェアとコンポーネントのログを表示する](#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 Core ソフトウェアとコンポーネントのログを表示する
<a name="troubleshoot-with-logs"></a>

 AWS IoT Greengrass Core ソフトウェアは、コアデバイスに関するリアルタイムの情報を表示するために使用できるローカルファイルシステムにログを書き込みます。CloudWatch Logs にログを書き込むようにコアデバイスを設定することもできるため、コアデバイスのトラブルシューティングをリモートで行うことができます。これらのログは、コンポーネント、デプロイ、およびコアデバイスの問題を特定するのに役立ちます。詳細については、「[AWS IoT Greengrass ログのモニタリング](monitor-logs.md)」を参照してください。

## AWS IoT Greengrass ソフトウェアの主な問題
<a name="greengrass-core-issues"></a>

 AWS IoT Greengrass Core ソフトウェアの問題をトラブルシューティングします。

**Topics**
+ [ListDeployments API の ThrottlingException](#ThrottlingException)
+ [コアデバイスをセットアップできない](#unable-to-set-up-core-device)
+ [AWS IoT Greengrass Core ソフトウェアをシステムサービスとして起動できない](#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 パラメータを指定してください。例えば、[JavaSDK](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 のレート制限の制限引き上げをリクエストできます。Service Quotas コンソールに移動 AWS IoT し、 のクォータを選択します。制限名は **DescribeJob スロットル制限**です。10 から 50 まで増やすことができます。

### コアデバイスをセットアップできない
<a name="unable-to-set-up-core-device"></a>

 AWS IoT Greengrass Core ソフトウェアインストーラに障害が発生し、コアデバイスをセットアップできない場合は、ソフトウェアをアンインストールしてもう一度試す必要がある場合があります。詳細については、「[AWS IoT Greengrass Core ソフトウェアをアンインストールする](uninstall-greengrass-core-v2.md)」を参照してください。

### AWS IoT Greengrass Core ソフトウェアをシステムサービスとして起動できない
<a name="unable-to-start-system-service"></a>

 AWS IoT Greengrass Core ソフトウェアが起動しない場合は、[システムサービスログを確認して](monitor-logs.md#access-system-service-logs)問題を特定します。よくある問題の 1 つは、Java が PATH 環境変数 (Linux) または PATH システム変数 (Windows) で使用できない場合です。

### nucleus をシステムサービスとしてセットアップできない
<a name="unable-to-set-up-system-service"></a>

 AWS IoT Greengrass Core ソフトウェアインストーラがシステムサービス AWS IoT Greengrass としての設定に失敗すると、このエラーが表示されることがあります。Linux デバイスでは、このエラーは通常、コアデバイスに [systemd](https://en.wikipedia.org/wiki/Systemd) init システムがない場合に発生します。インストーラは、システムサービスの設定に失敗した場合でも、 AWS IoT Greengrass Core ソフトウェアを正常にセットアップできます。

次のいずれかを行います。
+  AWS IoT Greengrass Core ソフトウェアをシステムサービスとして設定して実行します。 AWS IoT Greengrassのすべての機能を使用するには、ソフトウェアをシステムサービスとして設定する必要があります。[systemd](https://en.wikipedia.org/wiki/Systemd) をインストール、または別の init システムを使用できます。詳細については、「[Greengrass nucleus をシステムサービスとして設定する](configure-greengrass-core-v2.md#configure-system-service)」を参照してください。
+ システムサービスなしで AWS IoT Greengrass Core ソフトウェアを実行します。インストーラが Greengrass ルートフォルダでセットアップしたローダースクリプトを使用して、ソフトウェアを実行できます。詳細については、「[システムサービスなしで AWS IoT Greengrass Core ソフトウェアを実行する](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 Core ソフトウェアがデプロイジョブを取得 AWS IoT Core するために に接続できない場合、このエラーが表示されることがあります。以下の操作を実行します。
+ コアデバイスがインターネットと に接続できることを確認します AWS IoT Core。デバイスが接続する AWS IoT Core エンドポイントの詳細については、「」を参照してください[AWS IoT Greengrass Core ソフトウェアを設定する](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 Core ソフトウェアを実行するユーザー (通常は `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 Core ソフトウェアの起動に失敗すると、このエラーが表示されることがあります。[AWS Common Runtime (CRT) ライブラリ](https://github.com/awslabs/aws-crt-java)では、デフォルトで `/tmp` フォルダを使用します。

次のいずれかを行います。
+ 次のコマンドを実行して、`exec` アクセス許可で `/tmp` フォルダを再マウントし、再試行します。

  ```
  sudo mount -o remount,exec /tmp
  ```
+ Greengrass nucleus v2.5.0 以降を実行する場合は、JVM オプションを設定して、CRT AWS ライブラリが使用するフォルダを変更できます。デプロイまたは AWS IoT Greengrass Core ソフトウェアのインストール時に、Greengrass nucleus コンポーネント設定で `jvmOptions`パラメータを指定できます。*/path/to/use* を、CRT AWS ライブラリが使用できるフォルダへのパスに置き換えます。

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

### Windows サービスのセットアップに失敗しました
<a name="failed-to-set-up-windows-service"></a>

Microsoft Windows 2016 デバイスに AWS IoT Greengrass Core ソフトウェアをインストールすると、このエラーが表示されることがあります。 AWS IoT Greengrass Core ソフトウェアは Windows 2016 ではサポートされていません。サポートされているオペレーティングシステムのリストについては、「」を参照してください[サポートされているプラットフォーム](greengrass-nucleus-component.md#greengrass-v2-supported-platforms)。

Windows 2016 を使用する必要がある場合は、次の操作を実行します。

1. ダウンロードした AWS IoT Greengrass Core インストールアーカイブを解凍する

1. `Greengrass` ディレクトリで、`bin/greengrass.xml.template` ファイルを開きます。

1. `</service>` タグの直前に、ファイルの末尾に `<autoRefresh>` タグを追加します。

   ```
     </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 Core ソフトウェアをインストールすると表示されることがあります。

```
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 Core ソフトウェアをインストールします。](install-greengrass-core-v2.md)」を参照してください。

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

この警告メッセージは、コアデバイスが に接続 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 Core ソフトウェアをインストール](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 Core ソフトウェアをインストールすることもできます。詳細については、[手動リソースプロビジョニングを使用して AWS IoT Greengrass Core ソフトウェアをインストールする](manual-installation.md)または[AWS IoT フリートプロビジョニングを使用して AWS IoT Greengrass Core ソフトウェアをインストールする](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 Core ソフトウェアをインストール](quick-installation.md)し、インストーラが必要なアクセス許可を持たない AWS 認証情報を使用する場合に表示されることがあります。必要なアクセス許可の詳細については、[インストーラがリソースをプロビジョニングするための最小限の IAM ポリシー](provision-minimal-iam-policy.md) を参照してください。

認証情報の IAM アイデンティティに対するアクセス許可を確認し、不足していれば必要なアクセス許可を IAM アイデンティティに付与します。

### 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 Core ソフトウェアが必要なコンポーネントをインストールします。
+ [シークレット値を取得する](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>

このエラーは、[ハードウェアセキュリティモジュール (HSM)](hardware-security.md) を使用するように AWS IoT Greengrass Core ソフトウェアを設定するときに指定したプライベートキーまたは証明書を [PKCS\$111 プロバイダーコンポーネント](pkcs11-provider-component.md)が検出またはロードできない場合に発生します。以下の操作を実行します。
+ 使用する AWS IoT Greengrass Core ソフトウェアを設定するスロット、ユーザー 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 クレットをデプロイするときに発生する可能性があります。コアデバイスの [[token exchange IAM role]](device-service-role.md) (トークン交換 IAM ロール) がシークレットを取得するアクセス許可を付与しない場合、デプロイは失敗し、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 Core ソフトウェアを再起動して、デプロイを再試行します。詳細については、[AWS IoT Greengrass Core ソフトウェアを実行する](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 ユーザーガイド*」の「[Secret encryption and decryption](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>

このエラーは、 AWS IoT Greengrass Core ソフトウェアを[ハードウェアセキュリティ](hardware-security.md)でインストールしようとしたときに、ハードウェアセキュリティ統合をサポートしていない以前の Greengrass nucleus バージョンを使用する場合に表示されることがあります。ハードウェアセキュリティ統合を使用するには、v2.5.3 以降の Greengrass nucleus を使用する必要があります。

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

Core をシステムサービスとして実行するときに TPM2 AWS IoT Greengrass ライブラリを使用すると、このエラーが表示されることがあります。

このエラーは、 AWS IoT Greengrass Core systemd サービスファイル内の 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 Core ソフトウェアを停止します。

------
#### [ 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 Core ソフトウェアをデバイスのフォルダに解凍します。*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 Core ソフトウェアを起動します。

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

   ```
   sudo systemctl start greengrass
   ```

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

   ```
   sc start "greengrass"
   ```

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

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

------

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

デフォルトの systemd サービステンプレートを使用して Linux デバイスに Greengrass nucleus v2.14.0 をインストールした場合、この問題が発生する可能性があります。以下の操作を実行します。

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) オペレーションで表示されることがあります。

このエラーは、recipe が有効な JSON または YAML でないことを示しています。recipe の構文を確認し、構文の問題を修正して、もう一度試してください。オンライン JSON または YAML 構文チェッカーを使用して、recipe の構文の問題を特定できます。

### 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) オペレーションで表示されることがあります。このエラーは、コンポーネント recipe の S3 アーティファクトが有効でないことを示しています。

以下の操作を実行します。
+ S3 バケットがコンポーネントを作成する AWS リージョン のと同じ にあることを確認します。 AWS IoT Greengrass は、コンポーネントアーティファクトのクロスリージョンリクエストをサポートしていません。
+ アーティファクト URI が有効な S3 オブジェクト URL であることを確認し、その S3 オブジェクト URL にアーティファクトが存在することを確認します。
+ に S3 オブジェクト URL でアーティファクトにアクセスするアクセス許可 AWS アカウント があることを確認します。

### 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 コアデバイスがデプロイを適用するときに Core ソフトウェアがコンポーネントアーティファクトをダウンロードできない場合に表示されることがあります。このエラーの結果、デプロイは失敗します。

このエラーが発生した場合、ログにはスタックトレースも含まれ、特定の問題を識別するために使用できます。次の各エントリは、`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 error]](#core-error-failed-to-download-artifact-package-download-exception) (パッケージダウンロード例外エラー) は、次の場合にこのスタックトレースを含めることができます。
+ コンポーネントのアーティファクトは、コンポーネントの recipe で指定した S3 オブジェクト URL では利用できません。アーティファクトを S3 バケットにアップロードしたこと、アーティファクトの URI がバケット内のアーティファクトの S3 オブジェクト URL と一致していることを確認します。
+ コアデバイスの[トークン交換ロール](device-service-role.md)は、 AWS IoT Greengrass Core ソフトウェアがコンポーネントのレシピで指定した 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 コアデバイスがデプロイを適用するときに Core ソフトウェアがコンポーネントアーティファクトをダウンロードできない場合に表示されることがあります。ダウンロードしたアーティファクトファイルのチェックサムが、コンポーネントの作成時に 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 Core ソフトウェアがコンポーネントを最新の互換性のあるバージョンに自動的に更新しようとするために発生します。ただし、いくつかの AWS提供されるコンポーネントは Greengrass nucleus の特定のマイナーバージョンに依存するため、 AWS IoT Greengrass Core ソフトウェアは Greengrass nucleus が新しいマイナーバージョンに更新できないようにします。詳細については、「[Greengrass nucleus の更新動作](update-greengrass-core-v2.md#ota-update-behavior-nucleus)」を参照してください。

[デプロイを改訂](revise-deployments.md)して、使用する Greengrass nucleus バージョンを指定する必要があります。次のいずれかを行います。
+ デプロイを改訂して、コアデバイスが現在実行している 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>

このエラーは、コア デバイスが 7 KB (モノを対象とするデプロイの場合) または 31 KB (モノのグループを対象とするデプロイの場合) を超えるデプロイドキュメントである大規模なデプロイドキュメントを受信した場合に表示されることがあります。大規模なデプロイドキュメントを取得するには、コアデバイスの AWS IoT ポリシーで アクセス`greengrass:GetDeploymentConfiguration`許可を付与する必要があります。このエラーは、コアデバイスにこの権限がない場合に発生する可能性があります。このエラーが発生すると、デプロイは無期限に再試行され、そのステータスは **[In progress]** (進行中) (`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]** (進行中) (`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 Core ソフトウェアがコンポーネントのライフサイクルスクリプトでコマンドの実行に失敗すると、Greengrass コンポーネントのログにこのエラーが表示されることがあります。このエラーの結果、コンポーネントの状態は `BROKEN` になります。このエラーは、`ggc_user` などのコンポーネントを実行するシステムユーザーが [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 内のフォルダでコマンドの実行可能ファイルを見つけられない場合に発生する可能性があります。

Windows デバイスでは、実行可能ファイルを含むフォルダが、コンポーネントを実行するシステムユーザーの `PATH` にあることを確認します。`PATH` から欠落している場合は、次のいずれかを実行します。
+ 実行可能ファイルのフォルダを、すべてのユーザーを利用できる `PATH` システム変数に追加します。次に、コンポーネントを再起動します。

  Greengrass nucleus 2.5.0 を実行する場合は、`PATH`システム変数を更新した後に AWS IoT Greengrass Core ソフトウェアを再起動して、更新された でコンポーネントを実行する必要があります`PATH`。ソフトウェアを再起動`PATH`した後に AWS IoT Greengrass Core ソフトウェアが更新された を使用しない場合は、デバイスを再起動して再試行してください。詳細については、「[AWS IoT Greengrass Core ソフトウェアを実行する](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
  ```

------
+ コンポーネントの recipe で [Setenv](component-recipe-reference.md#lifecycle-setenv-definition) を使用して、[PYTHONUNBUFFERED](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED) 環境変数を空でない文字列に設定します。この環境変数は `stdout` と `stderr` のバッファリングを無効にします。
+ `stdout` または `stderr` Streams のバッファをフラッシュします。次のいずれかを行います。
  + 印刷時にメッセージをフラッシュします。

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

コンポーネントの recipe で `DefaultConfiguration` を変更した場合、デプロイ中に新しいデフォルト設定がコンポーネントの既存の設定を置き換えることはありません。新しいデフォルト設定を適用するには、コンポーネントの設定をデフォルト設定にリセットする必要があります。コンポーネントをデプロイする場合には、[更新のリセット](update-component-configurations.md#reset-configuration-update)として空の文字列を 1 つ指定します。

------
#### [ 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>
コンポーネントの recipe で `DefaultConfiguration` を変更した場合は、コンポーネントの設定を新しいデフォルト設定にリセットする必要があります。コンポーネントをデプロイする場合には、[更新のリセット](update-component-configurations.md#reset-configuration-update)として空の文字列を 1 つ指定します。詳細については、「[デフォルト設定を変更してもコンポーネント設定が更新されません](#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>
コンポーネントの recipe で `DefaultConfiguration` を変更した場合は、コンポーネントの設定を新しいデフォルト設定にリセットする必要があります。コンポーネントをデプロイする場合には、[更新のリセット](update-component-configurations.md#reset-configuration-update)として空の文字列を 1 つ指定します。詳細については、「[デフォルト設定を変更してもコンポーネント設定が更新されません](#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 ユーザーガイド*」の「[IAM とは](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 認証情報を使用しているかどうかを確認します。`install`ライフサイクル中にトークン交換サービスの可用性は保証 AWS IoT Greengrass されません。コンポーネントを更新して、 AWS 認証情報を使用するコードを `startup` または `run` ライフサイクルに移動してからコンポーネントを再デプロイします。

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

このエラーは、設定値をコンテナタイプ (リストまたはオブジェクト) から非コンテナタイプ (文字列、数値、またはブール値) に変更したときに表示されることがあります。以下の操作を実行します。

1. コンポーネントの recipe をチェックして、デフォルト設定で、その設定値がリストまたはオブジェクトに設定されているかどうかを確認します。その場合は、その設定値を削除または変更します。

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 application manager component]](docker-application-manager-component.md) (Docker アプリケーションマネージャーコンポーネント) が Amazon Elastic Container Registry (Amazon ECR) のプライベートリポジトリから Docker イメージをダウンロードしようとすると、Greengrass nucleus ログにこのエラーが表示される場合があります。このエラーは、`wincred` [Docker credential helper](https://github.com/docker/docker-credential-helpers) (Docker 認証情報ヘルパー)(`docker-credential-wincred`) を使用した場合に発生します。その結果、Amazon ECR はログイン認証情報を保存できません。

次のいずれかのアクションを実行します。
+ `wincred` Docker 認証情報ヘルパーを使用しない場合、コアデバイスから `docker-credential-wincred` プログラムを削除してください。
+ `wincred` Docker 認証情報ヘルパーを使用する場合、以下の操作を行います。

  1. コアデバイスの `docker-credential-wincred` プログラムの名前を変更します。`wincred` を Windows Docker 認証情報ヘルパーの新しい名前に置き換えます。例えば、名前を `docker-credential-wincredreal` に変更できます。

  1. Docker 設定 (`.docker/config.json`) の `credsStore` オプションを更新し、Windows Docker 認証情報ヘルパーの新しい名前を使用します。例えば、プログラムの名前を `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 Core ソフトウェアはそのシステムユーザーとしてコンポーネントプロセスを実行できません。

**Greengrass システムユーザーのパスワードを更新するには**

1. 管理者として次のコマンドを実行して、ユーザーのパスワードを設定します。*ggc\$1user* をシステムユーザーに置き換え、*password* を設定するパスワードに置き換えます。

   ```
   net user ggc_user password
   ```

1. [PsExec ユーティリティ](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec)を使用して、ユーザーの新しいパスワードを LocalSystem アカウントの認証情報マネージャーインスタンスに保存します。*password* を設定したユーザーのパスワードに置き換えます。

   ```
   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 は相互に排他的です。

cgroups 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 Core SDK を使用する V1 Lambda 関数を実行すると、このエラーが表示されることがあります。この問題を解決するには、レガシーサブスクリプションルーターをデプロイして設定し、必要なサブスクリプションを指定します。詳細については、「[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
   ```

   レスポンスには、コアデバイスのデプロイジョブのリストが含まれます。デプロイを修正して別のコンポーネントのバージョンを選択できます。デプロイを修正する方法の詳細については、「[デプロイの修正](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 Core ソフトウェアがインストールされている場所とは異なるルートフォルダを指定すると、このエラーが表示されることがあります。

次のいずれかを実行してルートパスを設定し、 を AWS IoT Greengrass Core ソフトウェアインストールへのパス`/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

エラーコードは、複数のタイプに整理されています。各タイプは、発生する可能性のあるエラーのクラスを表します。 AWS IoT Greengrass は、コンソール、API、および でこれらのエラータイプを報告します AWS CLI。エラー階層で報告されるエラーによっては、複数のエラータイプが存在する可能性があります。前述の例では、返されるエラータイプは `DEVICE_ERROR` です。

タイプは次のとおりです。
+ **PERMISSION\$1ERROR** — 許可を必要とするオペレーションへのアクセスが拒否されました。
+ **REQUEST\$1ERROR** — デプロイドキュメント内の問題が原因でエラーが発生しました。
+ **COMPONENT\$1RECIPE\$1ERROR** — コンポーネント recipe の問題が原因でエラーが発生しました。
+ **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 Core ログの追加情報を報告します。これらのログは、コアデバイスのローカルファイルシステムに保存されます。 AWS IoT Greengrass Core コアソフトウェアと個々のコンポーネントのログがあります。ログへのアクセスに関する詳細については、「[ファイル システム ログをアクセス](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  
このエラーは、 AWS IoT Greengrass Core ソフトウェアがコンポーネントの recipe で指定した S3 オブジェクト URL からコンポーネントアーティファクトをダウンロードすることをデバイスのトークン交換ロールが許可しない場合、またはコンポーネントアーティファクトが利用できない場合に表示されることがあります。トークン交換ロールで、アーティファクトが利用可能で、かつ、アーティファクトが存在している S3 オブジェクト URL の `s3:GetObject` が許可されていることを確認してください。

S3\$1GET\$1BUCKET\$1LOCATION\$1ACCESS\$1DENIED  
このエラーは、アーティファクトが利用可能な Amazon S3 バケットに対して、デバイスのトークン交換ロールが `s3:GetBucketLocation` 許可を付与していない場合に表示されることがあります。デバイスが許可を付与していることを確認してから、デプロイを再試行してください。

S3\$1GET\$1OBJECT\$1ACCESS\$1DENIED  
このエラーは、 AWS IoT Greengrass Core ソフトウェアがコンポーネントの recipe で指定した S3 オブジェクト URL からコンポーネントアーティファクトをダウンロードすることをデバイスのトークン交換ロールが許可しない場合、またはコンポーネントアーティファクトが利用できない場合に表示されることがあります。トークン交換ロールで、アーティファクトが利用可能で、かつ、アーティファクトが存在している 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  
このエラーは、デプロイ内の 2 つのコンポーネントが相互に依拠している場合に表示されることがあります。デプロイ内のコンポーネントが相互に依拠しないように、コンポーネントの設定を見直します。

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  
このエラーは、コンポーネントのアーティファクトが、コンポーネントの recipe で指定した S3 オブジェクト URL では利用できない場合に表示されることがあります。アーティファクトを S3 バケットにアップロードしたこと、アーティファクトの URI がバケット内のアーティファクトの S3 オブジェクト URL と一致していることを確認します。

S3\$1GET\$1BUCKET\$1LOCATION\$1RESOURCE\$1NOT\$1FOUND  
このエラーは、Amazon S3 バケットが見つからない場合に表示されることがあります。バケットが存在することを確認して、デプロイを再試行してください。

S3\$1GET\$1OBJECT\$1RESOURCE\$1NOT\$1FOUND  
このエラーは、コンポーネントのアーティファクトが、コンポーネントの recipe で指定した S3 オブジェクト URL では利用できない場合に表示されることがあります。アーティファクトを S3 バケットにアップロードしたこと、アーティファクトの URI がバケット内のアーティファクトの S3 オブジェクト URL と一致していることを確認します。

IO\$1MAPPING\$1ERROR  
このエラーは、デプロイドキュメントまたは recipe を解析しているときに I/O エラーが発生した場合に表示されることがあります。詳細については、その他のエラーコードまたはログを確認してください。

## コンポーネント recipe エラー
<a name="component-recipe-error"></a>

RECIPE\$1PARSE\$1ERROR  
このエラーは、recipe の構造にエラーがあるためにデプロイ recipe を解析できなかった場合に表示されることがあります。recipe が正しくフォーマットされていることを確認して、デプロイを再試行してください。

RECIPE\$1METADATA\$1PARSE\$1ERROR  
このエラーは、クラウドからダウンロードしたデプロイ recipe のメタデータを解析できなかった場合に表示されることがあります。連絡先 サポート。

ARTIFACT\$1URI\$1NOT\$1VALID  
このエラーは、recipe 内のアーティファクト URI が正しくフォーマットされていない場合に表示されることがあります。ログで有効でない URI を確認し、recipe 内の URI を更新してから、デプロイを再試行してください。

S3\$1ARTIFACT\$1URI\$1NOT\$1VALID  
このエラーは、recipe 内のアーティファクトの Amazon S3 URI が有効でない場合に表示されることがあります。ログで有効でない URI を確認し、recipe 内の URI を更新してから、デプロイを再試行してください。

DOCKER\$1ARTIFACT\$1URI\$1NOT\$1VALID  
このエラーは、recipe 内のアーティファクトの Docker URI が有効でない場合に表示されることがあります。ログで有効でない URI を確認し、recipe 内の URI を更新してから、デプロイを再試行してください。

EMPTY\$1ARTIFACT\$1URI  
このエラーは、アーティファクトの URI が recipe で指定されていない場合に表示されることがあります。URI が欠落しているアーティファクトをログで確認し、recipe 内の URI を更新してから、デプロイを再試行してください。

EMPTY\$1ARTIFACT\$1SCHEME  
このエラーは、アーティファクトの URI スキームが定義されていない場合に表示されることがあります。ログで有効でない URI を確認し、recipe 内の URI を更新してから、デプロイを再試行してください。

UNSUPPORTED\$1ARTIFACT\$1SCHEME  
このエラーは、実行中の nucleus バージョンによって URI スキームがサポートされていない場合に表示されることがあります。URI が有効でないか、nucleus のバージョンを更新する必要があります。URI が有効でない場合は、ログで有効でない URI を確認し、recipe 内の URI を更新してから、デプロイを再試行してください。

RECIPE\$1MISSING\$1MANIFEST  
このエラーは、マニフェストセクションが recipe に含まれていない場合に表示されることがあります。マニフェストを recipe に追加して、デプロイを再試行してください。

RECIPE\$1MISSING\$1ARTIFACT\$1HASH\$1ALGORITHM  
このエラーは、ローカルではないアーティファクトがハッシュアルゴリズムのない recipe 内で指定された場合に表示されることがあります。アーティファクトにアルゴリズムを追加してから、リクエストを再試行してください。

ARTIFACT\$1CHECKSUM\$1MISMATCH  
このエラーは、ダウンロードしたアーティファクトのダイジェストが recipe で指定されたものと異なる場合に表示されることがあります。recipe に正しいダイジェストが含まれていることを確認してから、デプロイを再試行してください。詳細については、「[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  
このエラーは、デプロイ recipe で指定された依存関係タイプが有効でない場合に表示されることがあります。recipe を確認してから、リクエストを再試行してください。

CONFIG\$1INTERPOLATE\$1ERROR  
このエラーは、recipe 変数を補間する場合に表示されることがあります。詳細については、ログを確認してください。

IO\$1MAPPING\$1ERROR  
このエラーは、デプロイドキュメントまたは recipe を解析しているときに 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  
このエラーは、デプロイリクエストを完了するのに十分なディスク容量がない場合に表示されることがあります。少なくとも 20 MB の空き容量、またはより大きなアーティファクトを保持するのに十分な容量が必要です。ディスク容量をある程度解放してから、デプロイを再試行してください。

IO\$1FILE\$1ATTRIBUTE\$1ERROR  
このエラーは、既存のファイルサイズをファイルシステムから取得できない場合に表示されることがあります。詳細については、ログを確認してください。

SET\$1PERMISSION\$1ERROR  
このエラーは、ダウンロードしたアーティファクトまたはアーティファクトディレクトリに許可を設定できない場合に表示されることがあります。詳細については、ログを確認してください。

IO\$1UNZIP\$1ERROR  
このエラーは、アーティファクトを解凍できない場合に表示されることがあります。詳細については、ログを確認してください。

LOCAL\$1RECIPE\$1NOT\$1FOUND  
このエラーは、recipe ファイルのローカルコピーが見つからなかった場合に表示されることがあります。デプロイを再試行してください。

LOCAL\$1RECIPE\$1CORRUPTED  
このエラーは、ダウンロード後に recipe のローカルコピーが変更された場合に表示されることがあります。recipe の既存のコピーを削除して、デプロイを再試行してください。

LOCAL\$1RECIPE\$1METADATA\$1NOT\$1FOUND  
このエラーは、recipe メタデータファイルのローカルコピーが見つからなかった場合に表示されることがあります。デプロイを再試行してください。

LAUNCH\$1DIRECTORY\$1CORRUPTED  
このエラーは、Greengrass nucleus (`/greengrass/v2/alts/current`) の起動に使用されたディレクトリが、最後に nucleus が起動された後に変更されている場合に表示されることがあります。nucleus を再起動してから、デプロイを再試行してください。

HASHING\$1ALGORITHM\$1UNAVAILABLE  
このエラーは、デバイスの Java ディストリビューションが必要なハッシュアルゴリズムをサポートしていない場合や、コンポーネント recipe で指定されたハッシュアルゴリズムが有効でない場合に表示されることがあります。

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 Core ログで追加情報を報告します。これらのログは、コアデバイスのローカルファイルシステムに保存されます。個々のコンポーネントごとにログがあります。ログへのアクセスに関する詳細については、「[ファイル システム ログをアクセス](monitor-logs.md#access-local-logs)」を参照してください。

INSTALL\$1ERROR  
これは、インストールスクリプトの実行中にエラーが発生した場合に表示されることがあります。エラーコードはコンポーネントログで報告されます。インストールスクリプトのエラーを確認してコンポーネントを再度デプロイします。

INSTALL\$1CONFIG\$1NOT\$1VALID  
このエラーは、recipe の `install` セクションが有効でないためにコンポーネントのインストールを完了できなかった場合に表示されることがあります。recipe のインストールセクションにエラーがないか確認し、デプロイを再試行します。

INSTALL\$1IO\$1ERROR  
これは、コンポーネントのインストール中に I/O エラーが発生した場合に表示されることがあります。コンポーネントエラーログでエラーの詳細を確認します。

INSTALL\$1MISSING\$1DEFAULT\$1RUNWITH  
このエラーは、AWS IoT Greengrass がコンポーネントのインストール時に使用するユーザーまたはグループを決定できない場合に表示されることがあります。インストール recipe の `runWith` セクションに有効なユーザーまたはグループが含まれていることを確認します。

INSTALL\$1TIMEOUT  
このエラーは、設定したタイムアウト期間内にインストールスクリプトが完了しなかった場合に表示されることがあります。recipe の `install` セクションで指定された `Timeout` 期間を長くするか、設定されたタイムアウト内に完了するようにインストールスクリプトを変更します。

STARTUP\$1ERROR  
これは、起動スクリプトの実行中にエラーが発生した場合に表示されることがあります。エラーコードはコンポーネントログで報告されます。インストールスクリプトのエラーを確認してコンポーネントを再度デプロイします。

STARTUP\$1CONFIG\$1NOT\$1VALID  
このエラーは、recipe の `startup` セクションが有効でないためにコンポーネントのインストールを完了できなかった場合に表示されることがあります。recipe の起動セクションにエラーがないか確認し、デプロイを再試行します。

STARTUP\$1IO\$1ERROR  
これは、コンポーネントの起動中に I/O エラーが発生した場合に表示されることがあります。コンポーネントエラーログでエラーの詳細を確認します。

STARTUP\$1MISSING\$1DEFAULT\$1RUNWITH  
このエラーは、AWS IoT Greengrass がコンポーネントの実行時に使用するユーザーまたはグループを決定できない場合に表示されることがあります。起動 recipe の `runWith` セクションに有効なユーザーまたはグループが含まれていることを確認します。

STARTUP\$1TIMEOUT  
このエラーは、設定したタイムアウト期間内に起動スクリプトが完了しなかった場合に表示されることがあります。recipe の `startup` セクションで指定された `Timeout` 期間を長くするか、設定されたタイムアウト内に完了するように起動スクリプトを変更します。

RUN\$1ERROR  
これは、コンポーネントスクリプトの実行中にエラーが発生した場合に表示されることがあります。エラーコードはコンポーネントログで報告されます。実行スクリプトのエラーを確認してコンポーネントを再度デプロイします。

RUN\$1MISSING\$1DEFAULT\$1RUNWITH  
このエラーは、AWS IoT Greengrass がコンポーネントの実行時に使用するユーザーまたはグループを決定できない場合に表示されることがあります。実行 recipe の `runWith` セクションに有効なユーザーまたはグループが含まれていることを確認します。

RUN\$1CONFIG\$1NOT\$1VALID  
このエラーは、recipe の `run` セクションが有効でないためにコンポーネントを実行できなかった場合に表示されることがあります。recipe の実行セクションにエラーがないか確認し、デプロイを再試行します。

RUN\$1IO\$1ERROR  
これは、コンポーネントの実行中に I/O エラーが発生した場合に表示されることがあります。コンポーネントエラーログでエラーの詳細を確認します。

RUN\$1TIMEOUT  
このエラーは、設定したタイムアウト期間内に実行スクリプトが完了しなかった場合に表示されることがあります。recipe の `run` セクションで指定された `Timeout` 期間を長くするか、設定されたタイムアウト内に完了するように実行スクリプトを変更します。

SHUTDOWN\$1ERROR  
これは、コンポーネントスクリプトのシャットダウン中にエラーが発生した場合に表示されることがあります。エラーコードはコンポーネントログで報告されます。シャットダウンスクリプトのエラーを確認してコンポーネントを再度デプロイします。

SHUTDOWN\$1TIMEOUT  
このエラーは、設定したタイムアウト期間内にシャットダウンスクリプトが完了しなかった場合に表示されることがあります。recipe の `shutdown` セクションで指定された `Timeout` 期間を長くするか、設定されたタイムアウト内に完了するように実行スクリプトを変更します。