

支援終止通知：2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後，您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊，請造訪[從 遷移 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 故障診斷 AWS IoT Greengrass
<a name="gg-troubleshooting"></a>

本節提供疑難排解資訊和可能的解決方案，以協助解決 的問題 AWS IoT Greengrass。

<a name="gg-limits-genref"></a>如需配額 AWS IoT Greengrass （限制） 的資訊，請參閱《》中的 [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/greengrass.html#limits_greengrass)*Amazon Web Services 一般參考*。

## AWS IoT Greengrass 核心問題
<a name="gg-troubleshooting-coreissues"></a>

如果 AWS IoT Greengrass 核心軟體未啟動，請嘗試下列一般疑難排解步驟：
+ 請確定您安裝的二進位檔適用於您的架構。如需詳細資訊，請參閱 [AWS IoT Greengrass 核心軟體](what-is-gg.md#gg-core-download-tab)。
+ 確保核心裝置有可用的本機儲存空間。如需詳細資訊，請參閱[對儲存體問題進行故障診斷](#troubleshooting-storage)。
+ 檢查 `runtime.log` 和 `crash.log` 是否有錯誤訊息。如需詳細資訊，請參閱[日誌故障診斷](#troubleshooting-logs)。

搜尋下列症狀和錯誤，尋找有助於疑難排解 AWS IoT Greengrass 核心問題的資訊。

**Topics**
+ [錯誤：組態檔案缺少 CaPath、CertPath 或 KeyPath。Greengrass 協助程式在 [pid = <pid>] 結束狀態下處理。](#troubleshoot-config-file-version)
+ [錯誤：無法剖析 /<greengrass-root>/config/config.json。](#troubleshoot-config-file-invalid)
+ [錯誤：產生 TLS 組態時發生錯誤：ErrUnknownURIScheme](#troubleshooting-unknown-uri-scheme)
+ [錯誤：執行時間無法開始：無法啟動工作者：容器測試逾時。](#troubleshoot-post-start-health-check)
+ [錯誤：無法在本機 Cloudwatch 叫用 PutLogEvents，logGroup: /GreengrassSystem/connection\_manager，錯誤：RequestError：傳送請求失敗，原因為：Post http://<path>/cloudwatch/logs/: dial tcp <address>: getsockopt：連線遭拒，回應：{ }。](#troubleshoot-cloudwatch-logs)
+ [錯誤：無法建立伺服器，因為：無法載入群組：chmod /<greengrass-root>/ggc/deployment/lambda/arn：aws：lambda：<region>：<account-id>：function：<function-name>：<version>/<file-name>：沒有此類檔案或目錄。](#troubleshoot-lambda-executable-handler)
+ [AWS IoT Greengrass 核心軟體不會在您從沒有容器化的執行變更為在 Greengrass 容器中執行後啟動。](#troubleshoot-no-container)
+ [錯誤：多工緩衝處理應至少為 262144 位元組。](#troubleshoot-spool-size)
+ [錯誤：[ERROR]-雲端傳訊錯誤：嘗試發佈訊息時發生錯誤。{"errorString": "操作逾時"}](#troubleshoot-mqtt-operation-timed-out)
+ [錯誤：container\_linux.go:344：啟動容器程序造成 "process\_linux.go:424：容器 init 造成 \\"rootfs\_linux.go:64：將 \\\\\\"/greengrass/ggc/socket/greengrass\_ipc.sock\\\\\\" 裝載至 rootfs \\\\\\"/greengrass/ggc/packages/<version>/rootfs/merged\\\\\\" (位於 \\\\\\"/greengrass\_ipc.sock\\\\\\") 造成 \\\\\\"stat /greengrass/ggc/socket/greengrass\_ipc.sock: permission denied\\\\\\"\\""。](#troubleshoot-umask-permission)
+ [錯誤：具 PID：<process-id> 的執行中 Greengrass 協助程式。有些系統元件無法啟動。檢查 'runtime.log' 是否有錯誤。](#troubleshoot-system-components)
+ [裝置陰影與雲端不同步。](#troubleshoot-shadow-sync)
+ [錯誤：無法接受 TCP 連線。接受 tcp [::]:8000: accept4: 太多開啟的檔案。](#troubleshoot-file-descriptor-limit)
+ [錯誤：執行時間執行錯誤：無法啟動 lambda 容器。container\_linux.go:259：啟動容器程序造成 "process\_linux.go:345：容器 init 造成 \\"rootfs\_linux.go:50：準備 rootfs 造成 \\\\\\"permission denied\\\\\\"\\""。](#troubleshoot-execute-permissions)
+ [警告：[WARN]-[5]GK 遠端：擷取公有金鑰資料發生錯誤：ErrPrincipalNotConfigured：未設定 MqttCertificate 的私有金鑰。](#troubleshoot-mqttcertificate-warning)
+ [錯誤：嘗試使用角色 arn：aws：iam：：<account-id>：role/<role-name> 存取 s3 url https://<region>-greengrass-updates.s3.<region>.amazonaws.com/core/<architecture>/greengrass-core-<distribution-version>.tar.gz 時，許可遭拒。](#troubleshoot-ota-region-access)
+ [AWS IoT Greengrass 核心設定為使用[網路代理](gg-core.md#alpn-network-proxy)，您的 Lambda 函數無法進行傳出連線。](#troubleshoot-lambda-proxy-network-connections)
+ [此核心位於連線/中斷連線的無限迴圈。runtime.log 檔案包含連線和中斷連線項目的連續系列。](#config-client-id)
+ [錯誤 : 無法啟動 lambda 容器。container\_linux.go: 259: 啟動容器程序導致「process\_linux.go: 345: container init 導致「rootfs\_linux.go: 62: 將「proc」掛載到 rootfs」](#troubleshoot-mount-proc-lambda-container)
+ [【ERROR】-執行時間執行錯誤：無法啟動 lambda 容器。{"errorString"： "無法初始化容器掛載：無法在浮水印上方 dir 中遮罩 greengrass 根目錄：無法在目錄 <ggc-path>： 檔案存在"} 建立遮罩裝置](#troubleshoot-usr-access-root)
+ [【ERROR】-Deployment 失敗。{"deploymentId"： "<deployment-id>"， "errorString"： "container test process with pid <pid> failed： container process status： exit status 1"}](#troubleshoot-usr-access-root-canary)
+ [錯誤：[ERROR -執行時間執行錯誤：無法啟動 lambda 容器。{"errorString"："無法初始化容器掛載：無法為容器建立覆蓋 fs：正在將覆蓋掛載於 /greengrass/ggc/ packages/<ggc-version>/rootfs/merged 失敗：無法利用 args 來源進行掛載=\\"no\_source\\" dest=\\"/greengrass/ggc/packages/<ggc-version>/rootfs/merged\\" fstype=\\"overlay\\" flags=\\"0\\" data=\\"lowerdir=/greengrass/ggc/packages/<ggc-version>/dns:/,upperdir=/greengr ass/ggc/packages/<ggc-version>/rootfs/upper,workdir=/greengrass/ggc/packages/<ggc-version>/rootfs/work\\": too many levels of symbolic links"}](#troubleshoot-symbolic-links)
+ [錯誤 : [DEBUG]-無法取得路由。捨棄訊息。](#troubleshoot-failed-to-get-routes)
+ [錯誤:[Errno 24] 太多開啟的 <lambda-function>，[Errno 24] 太多開啟的檔案](#troubleshoot-too-many-open-files)
+ [錯誤：ds 伺服器無法開始接聽通訊端：接聽 unix <ggc-path>/ggc/socket/greengrass\_ipc.sock： bind： 無效引數](#troubleshoot-install-path-too-long)
+ [【INFO】 (Copier) aws.greengrass.StreamManager：stdout。原因：com.fasterxml.jackson.databind.JsonMappingException：立即超過最小或最大立即](#troubleshoot-stream-manager-instant-exceeds-maximun-minimum)
+ [GPG error: https://dnw9lb6lzp2d8.cloudfront.net stable InRelease: The following signatures were invalid: EXPKEYSIG 68D644ABD2327D47 AWS Greengrass Master Key](#troubleshoot-apt-repository-invalid-signature)

 

### 錯誤：組態檔案缺少 CaPath、CertPath 或 KeyPath。Greengrass 協助程式在 [pid = <pid>] 結束狀態下處理。
<a name="troubleshoot-config-file-version"></a>

**解決方案：**當 AWS IoT Greengrass 核心軟體未啟動`crash.log`時，您可能會在 中看到此錯誤。如果您執行的是 1.6 版或更早的版本，也可能會發生這種情況。執行以下任意一項：
+ 升級至 v1.7 或更新版本。我們建議您一律執行最新版本的 AWS IoT Greengrass Core 軟體。如需下載資訊，請參閱 [AWS IoT Greengrass 核心軟體](what-is-gg.md#gg-core-download-tab)。
+ 使用 AWS IoT Greengrass Core 軟體版本的正確`config.json`格式。如需詳細資訊，請參閱[AWS IoT Greengrass 核心組態檔案](gg-core.md#config-json)。
**注意**  
<a name="find-ggc-version-intro"></a>若要尋找核心裝置上已安裝的 AWS IoT Greengrass 核心軟體版本，請在裝置終端機中執行下列命令。  

  ```
  cd /{{greengrass-root}}/ggc/core/
  sudo ./greengrassd --version
  ```

 

### 錯誤：無法剖析 /<greengrass-root>/config/config.json。
<a name="troubleshoot-config-file-invalid"></a>

**解決方案：**您可以在 AWS IoT Greengrass 核心軟體沒有啟動時查看此錯誤。請確定 [Greengrass 組態檔案](gg-core.md#config-json)使用有效的 JSON 格式。

開啟 `config.json` (位於 `/{{greengrass-root}}/config`) 並驗證 JSON 格式。例如，確保已正確使用逗號。

 

### 錯誤：產生 TLS 組態時發生錯誤：ErrUnknownURIScheme
<a name="troubleshooting-unknown-uri-scheme"></a>

**解決方案：**您可以在 AWS IoT Greengrass 核心軟體沒有啟動時查看此錯誤。請確定 Greengrass 組態檔案中的 [crypto (加密)](gg-core.md#config-json-crypto) 區段中的屬性有效。這個錯誤訊息應提供更多資訊。

開啟 `config.json` (位於 `/{{greengrass-root}}/config`)，並檢查 `crypto` 區段。例如，憑證和金鑰路徑必須使用正確的 URI 格式，並指向正確的位置。

 

### 錯誤：執行時間無法開始：無法啟動工作者：容器測試逾時。
<a name="troubleshoot-post-start-health-check"></a>

**解決方案：**您可以在 AWS IoT Greengrass 核心軟體沒有啟動時查看此錯誤。在 [Greengrass 組態檔案中](gg-core.md#config-json)設定 `postStartHealthCheckTimeout` 屬性。此選用屬性會設定 Greengrass 協助程式等候後置開始健康狀況檢查完成的時間量 (毫秒)。預設值為 30 秒 (30000 毫秒)。

開啟 `config.json` (位於 `/{{greengrass-root}}/config`)。在 `runtime` 物件上，新增 `postStartHealthCheckTimeout` 屬性並將值設為大於 30000。視需要插入逗號以建立有效的 JSON 文件。例如：

```
  ...
  "runtime" : {
    "cgroup" : {
      "useSystemd" : "yes"
    },
    "postStartHealthCheckTimeout" : 40000
  },
  ...
```

 

### 錯誤：無法在本機 Cloudwatch 叫用 PutLogEvents，logGroup: /GreengrassSystem/connection\_manager，錯誤：RequestError：傳送請求失敗，原因為：Post http://<path>/cloudwatch/logs/: dial tcp <address>: getsockopt：連線遭拒，回應：{ }。
<a name="troubleshoot-cloudwatch-logs"></a>

**解決方案：**您可以在 AWS IoT Greengrass 核心軟體沒有啟動時查看此錯誤。如果您在 Raspberry Pi AWS IoT Greengrass 上執行，且所需的記憶體設定尚未完成，就會發生這種情況。如需有關此步驟的詳細資訊，請參閱[此步驟](setup-filter.rpi.md#stretch-step)。

 

### 錯誤：無法建立伺服器，因為：無法載入群組：chmod /<greengrass-root>/ggc/deployment/lambda/arn：aws：lambda：<region>：<account-id>：function：<function-name>：<version>/<file-name>：沒有此類檔案或目錄。
<a name="troubleshoot-lambda-executable-handler"></a>

**解決方案：**您可以在 AWS IoT Greengrass 核心軟體沒有啟動時查看此錯誤。如果您已將 [Lambda 可執行檔](lambda-functions.md#lambda-executables)部署至核心，請檢查 `group.json` 檔案中的函數`Handler`屬性 （位於 /{{greengrass-root}}/ggc/deployment/group)。若處理常式不是您所編譯可執行檔的完全相符名稱，則請以空白 JSON 物件 (`{}`) 取代 `group.json` 檔案的內容，並執行以下命令來啟動 AWS IoT Greengrass：

```
cd /greengrass/ggc/core/
sudo ./greengrassd start
```

然後，使用 [AWS Lambda API](https://docs.aws.amazon.com/cli/latest/reference/lambda/) 更新函數組態的 `handler` 參數，發佈新功能版本和更新別名。如需詳細資訊，請參閱 [AWS Lambda 函數版本控制和別名](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html)。

假設您已透過別名 (建議) 新增函數到 Greengrass，那麼您現在可以重新部署您的群組。(若否，您必須在您的群組定義和訂閱中指向新的函數版本或別名，才能部署群組。)

 

### AWS IoT Greengrass 核心軟體不會在您從沒有容器化的執行變更為在 Greengrass 容器中執行後啟動。
<a name="troubleshoot-no-container"></a>

**解決方案：**檢查您沒有遺漏任何容器相依性。

 

### 錯誤：多工緩衝處理應至少為 262144 位元組。
<a name="troubleshoot-spool-size"></a>

**解決方案：**您可以在 AWS IoT Greengrass 核心軟體沒有啟動時查看此錯誤。開啟 `group.json` 檔案 (位於 `/{{greengrass-root}}/ggc/deployment/group`)、以空的 JSON 物件 (`{}`) 取代檔案的內容，並執行下列命令來啟動 AWS IoT Greengrass：

```
cd /greengrass/ggc/core/
sudo ./greengrassd start
```

然後依照 [在本機儲存快取訊息](gg-core.md#configure-local-storage-cache) 程序中的步驟操作。對於 `GGCloudSpooler` 函數，請務必指定大於或等於 262144 的 `GG_CONFIG_MAX_SIZE_BYTES` 值。

 

### 錯誤：[ERROR]-雲端傳訊錯誤：嘗試發佈訊息時發生錯誤。{"errorString": "操作逾時"}
<a name="troubleshoot-mqtt-operation-timed-out"></a>

**解決方案：**當 Greengrass 核心無法傳送 MQTT 訊息給 AWS IoT Core時，您可能會在 `GGCloudSpooler.log` 中看到此錯誤。如果核心環境的頻寬有限又有高延遲，就可能發生這種情況。如果您執行的是 AWS IoT Greengrass v1.10.2 或更新版本，請嘗試增加 [config.json ](gg-core.md#config-json)檔案中`mqttOperationTimeout`的值。如果該屬性不存在，請將其新增到 `coreThing` 物件。例如：

```
{
  "coreThing": {
    "mqttOperationTimeout": 10,
    "caPath": "root-ca.pem",
    "certPath": "{{hash}}.cert.pem",
    "keyPath": "{{hash}}.private.key",
    ...
  },
  ...
}
```

預設值為 `5`，最小值為 `5`。

 

### 錯誤：container\_linux.go:344：啟動容器程序造成 "process\_linux.go:424：容器 init 造成 \\"rootfs\_linux.go:64：將 \\\\\\"/greengrass/ggc/socket/greengrass\_ipc.sock\\\\\\" 裝載至 rootfs \\\\\\"/greengrass/ggc/packages/<version>/rootfs/merged\\\\\\" (位於 \\\\\\"/greengrass\_ipc.sock\\\\\\") 造成 \\\\\\"stat /greengrass/ggc/socket/greengrass\_ipc.sock: permission denied\\\\\\"\\""。
<a name="troubleshoot-umask-permission"></a>

**解決方案：**當 AWS IoT Greengrass 核心軟體未啟動`runtime.log`時，您可能會在 中看到此錯誤。如果您的 `umask` 高於 `0022`，就會發生此情形。若要解決這個問題，您必須將 `umask` 設定為 `0022` 或更低。數值 `0022` 預設會授予所有人讀取新檔案的許可。

 

### 錯誤：具 PID：<process-id> 的執行中 Greengrass 協助程式。有些系統元件無法啟動。檢查 'runtime.log' 是否有錯誤。
<a name="troubleshoot-system-components"></a>

**解決方案：**您可以在 AWS IoT Greengrass 核心軟體沒有啟動時查看此錯誤。檢查 `runtime.log` 和 `crash.log` 是否有特定的錯誤資訊。如需詳細資訊，請參閱[日誌故障診斷](#troubleshooting-logs)。

 

### 裝置陰影與雲端不同步。
<a name="troubleshoot-shadow-sync"></a>

**解決方案：**確定 AWS IoT Greengrass 具有 [Greengrass 服務角色](service-role.md)中 `iot:UpdateThingShadow`和 `iot:GetThingShadow`動作的許可。如果服務角色使用 `AWSGreengrassResourceAccessRolePolicy` 受管政策，預設會包含這些權限。

請參閱 [陰影同步逾時問題故障診斷](#troubleshooting-shadow-sync)。

 

### 錯誤：無法接受 TCP 連線。接受 tcp [::]:8000: accept4: 太多開啟的檔案。
<a name="troubleshoot-file-descriptor-limit"></a>

**解決方案：**您可以在 `greengrassd` 指令碼輸出中查看此錯誤。如果 AWS IoT Greengrass Core 軟體的檔案描述項限制已達到閾值且必須增加，就會發生這種情況。

使用以下命令，然後重新啟動 AWS IoT Greengrass Core 軟體。

```
ulimit -n 2048
```

**注意**  
在此範例中，將提高限制到 2048。請為您使所用的案例選擇適當的數值。

 

### 錯誤：執行時間執行錯誤：無法啟動 lambda 容器。container\_linux.go:259：啟動容器程序造成 "process\_linux.go:345：容器 init 造成 \\"rootfs\_linux.go:50：準備 rootfs 造成 \\\\\\"permission denied\\\\\\"\\""。
<a name="troubleshoot-execute-permissions"></a>

**解決方案：** AWS IoT Greengrass 直接在根目錄下安裝 ，或確定安裝 AWS IoT Greengrass Core 軟體的目錄及其父目錄具有所有人的`execute`許可。

 

### 警告：[WARN]-[5]GK 遠端：擷取公有金鑰資料發生錯誤：ErrPrincipalNotConfigured：未設定 MqttCertificate 的私有金鑰。
<a name="troubleshoot-mqttcertificate-warning"></a>

**解決方案：** AWS IoT Greengrass 使用通用處理常式來驗證所有安全主體的屬性。`runtime.log` 中的這個警告是預期的，除非您已為本機 MQTT 伺服器指定自訂私有金鑰。如需詳細資訊，請參閱[AWS IoT Greengrass 核心安全主體](gg-sec.md#gg-principals)。

 

### 錯誤：嘗試使用角色 arn：aws：iam：：<account-id>：role/<role-name> 存取 s3 url https://<region>-greengrass-updates.s3.<region>.amazonaws.com/core/<architecture>/greengrass-core-<distribution-version>.tar.gz 時，許可遭拒。
<a name="troubleshoot-ota-region-access"></a>

**解決方案：**您可以在無線 (OTA) 更新失敗時查看此錯誤。在簽署者角色政策中，將目標新增 AWS 區域 為 `Resource`。此簽署者角色用於預先簽署 S3 URL 以進行 AWS IoT Greengrass 軟體更新。如需詳細資訊，請參閱 [S3 URL 簽署者角色](core-ota-update.md#s3-url-signer-role)。

 

### AWS IoT Greengrass 核心設定為使用[網路代理](gg-core.md#alpn-network-proxy)，您的 Lambda 函數無法進行傳出連線。
<a name="troubleshoot-lambda-proxy-network-connections"></a>

**解決方案：**根據您的執行期和 Lambda 函數用來建立連線的可執行檔，您可能也會收到連線逾時錯誤。確保您的 Lambda 函數使用適當的代理組態透過網路 Proxy 進行連線。 會透過 `http_proxy`、 `https_proxy`和 `no_proxy`環境變數，將代理組態 AWS IoT Greengrass 傳遞給使用者定義的 Lambda 函數。存取方式如下面 Python 程式碼片段所示。

```
import os
print(os.environ['http_proxy'])
```

大小寫請與環境中定義的變數相同，例如全部小寫的 `http_proxy` 或全部大寫的 `HTTP_PROXY`。對於這些變數， AWS IoT Greengrass 支援兩者。

**注意**  
大多數用來連線的程式庫 (例如 boto3 或 cURL 和 python `requests` 套件)，預設會使用這些環境變數。

 

### 此核心位於連線/中斷連線的無限迴圈。runtime.log 檔案包含連線和中斷連線項目的連續系列。
<a name="config-client-id"></a>

**解決方案：**如果另一個裝置以硬式編碼為使用核心物件名稱做為對 AWS IoT之 MQTT 連線的用戶端 ID，可能會發生這種情形。相同 中的同時連線 AWS 區域 ，且 AWS 帳戶 必須使用唯一的用戶端 IDs。在預設情況下，核心使用核心物件名稱做為這些連線的用戶端 ID。

若要解決這個問題，您可以變更其他裝置用於連線的用戶端 ID (建議使用)，或覆寫核心的預設值。

**覆寫核心裝置的預設用戶端 ID**

1. 執行下列命令來停止 Greengrass 協助程式：

   ```
   cd /{{greengrass-root}}/ggc/core/
   sudo ./greengrassd stop
   ```

1. 開放 `{{greengrass-root}}/config/config.json` 由 su 使用者編輯。

1. 在 `coreThing` 物件中，新增 `coreClientId` 屬性，並將值設定為您的自訂用戶端 ID。值必須介於 1 到 128 個字元之間。它在 的目前 AWS 區域 中必須是唯一的 AWS 帳戶。

   ```
   "coreClientId": "MyCustomClientId"
   ```

1. 啟動協助程式。

   ```
   cd /{{greengrass-root}}/ggc/core/
   sudo ./greengrassd start
   ```

 

### 錯誤 : 無法啟動 lambda 容器。container\_linux.go: 259: 啟動容器程序導致「process\_linux.go: 345: container init 導致「rootfs\_linux.go: 62: 將「proc」掛載到 rootfs」
<a name="troubleshoot-mount-proc-lambda-container"></a>

**解決方案：**在某些平台上，當 AWS IoT Greengrass 嘗試掛載`/proc`檔案系統以建立 Lambda 容器`runtime.log`時，您可能會在 中看到此錯誤。或可能出現類似錯誤 , 例如 `operation not permitted` 或 `EPERM`。即使依相依性檢查程式指令碼在平台上執行的測試完全通過，這些錯誤也可能會發生。

請嘗試下列其中一種可能的解決方案 :
+ 在 Linux 核心中啟用 `CONFIG_DEVPTS_MULTIPLE_INSTANCES` 選項。
+ 主機上的 `/proc` 掛載選項只能設為 `rw,relatim`。
+ 將 Linux 核心升級至 4.9 版或更新版本。

**注意**  
這個問題與掛載 `/proc` 以提供本機資源存取無關。

 

### 【ERROR】-執行時間執行錯誤：無法啟動 lambda 容器。{"errorString"： "無法初始化容器掛載：無法在浮水印上方 dir 中遮罩 greengrass 根目錄：無法在目錄 <ggc-path>： 檔案存在"} 建立遮罩裝置
<a name="troubleshoot-usr-access-root"></a>

**解決方案：**當部署失敗時，您可能會在 runtime.log 中看到此錯誤。如果 AWS IoT Greengrass 群組中的 Lambda 函數無法存取核心檔案系統中的`/usr`目錄，就會發生此錯誤。

若要解決這個問題，請將本機磁碟區資源新增至群組，然後部署群組。此資源必須：
+ 指定 `/usr` 作為**來源路徑**和**目的地路徑**。
+ 為擁有資源的 Linux 群組自動新增作業系統群組許可。
+ 隸屬於 Lambda 函數，並允許唯讀存取。

 

### 【ERROR】-Deployment 失敗。{"deploymentId"： "<deployment-id>"， "errorString"： "container test process with pid <pid> failed： container process status： exit status 1"}
<a name="troubleshoot-usr-access-root-canary"></a>

**解決方案：**當部署失敗時，您可能會在 runtime.log 中看到此錯誤。如果 AWS IoT Greengrass 群組中的 Lambda 函數無法存取核心檔案系統中的`/usr`目錄，就會發生此錯誤。

您可以透過檢查`GGCanary.log`其他錯誤來確認此情況。如果 Lambda 函數無法存取`/usr`目錄， `GGCanary.log`將包含下列錯誤：

```
[ERROR]-standard_init_linux.go:207: exec user process caused "no such file or directory"
```

若要解決這個問題，請將本機磁碟區資源新增至群組，然後部署群組。此資源必須：
+ 指定 `/usr` 作為**來源路徑**和**目的地路徑**。
+ 為擁有資源的 Linux 群組自動新增作業系統群組許可。
+ 隸屬於 Lambda 函數，並允許唯讀存取。

 

### 錯誤：[ERROR -執行時間執行錯誤：無法啟動 lambda 容器。{"errorString"："無法初始化容器掛載：無法為容器建立覆蓋 fs：正在將覆蓋掛載於 /greengrass/ggc/ packages/<ggc-version>/rootfs/merged 失敗：無法利用 args 來源進行掛載=\\"no\_source\\" dest=\\"/greengrass/ggc/packages/<ggc-version>/rootfs/merged\\" fstype=\\"overlay\\" flags=\\"0\\" data=\\"lowerdir=/greengrass/ggc/packages/<ggc-version>/dns:/,upperdir=/greengr ass/ggc/packages/<ggc-version>/rootfs/upper,workdir=/greengrass/ggc/packages/<ggc-version>/rootfs/work\\": too many levels of symbolic links"}
<a name="troubleshoot-symbolic-links"></a>

**解決方案：**當 AWS IoT Greengrass 核心軟體未啟動時，您可能會在 `runtime.log` 檔案中看到此錯誤。這個問題在 Debian 作業系統上可能比較常見。

要解決此問題，請依照下列步驟：

1. 將 AWS IoT Greengrass Core 軟體升級至 v1.9.3 或更新版本。這應該會自動解決此問題。

1. 如果您在升級 AWS IoT Greengrass Core 軟體後仍收到此錯誤，請在 config`true`.json 檔案中將 `system.useOverlayWithTmpfs` 屬性設定為 。 [AWS IoT Greengrass 核心組態檔案](gg-core.md#config-json)  
**Example 範例**  

   ```
   {
     "system": {
       "useOverlayWithTmpfs": true
     },
     "coreThing": {
       "caPath": "root-ca.pem",
       "certPath": "cloud.pem.crt",
       "keyPath": "cloud.pem.key",
       ...
     },
     ...
   }
   ```

**注意**  
您的 AWS IoT Greengrass Core 軟體版本會顯示在錯誤訊息中。若要尋找您的 Linux 核心版本，請執行 `uname -r`。

 

### 錯誤 : [DEBUG]-無法取得路由。捨棄訊息。
<a name="troubleshoot-failed-to-get-routes"></a>

**解決方案：**檢查您群組中的訂閱，並確認該訂閱有列在 `[DEBUG]` 訊息中。

 

### 錯誤:[Errno 24] 太多開啟的 <lambda-function>，[Errno 24] 太多開啟的檔案
<a name="troubleshoot-too-many-open-files"></a>

**解決方案：**如果函數在函數處理常式`StreamManagerClient`中執行個體化，您可能會在 Lambda 函數日誌檔案中看到此錯誤。我們建議您將用戶端建立處理常式之外。如需詳細資訊，請參閱[使用 StreamManagerClient 搭配串流](work-with-streams.md)。

 

### 錯誤：ds 伺服器無法開始接聽通訊端：接聽 unix <ggc-path>/ggc/socket/greengrass\_ipc.sock： bind： 無效引數
<a name="troubleshoot-install-path-too-long"></a>

**解決方案：**當核心軟體未啟動時， AWS IoT Greengrass 您可能會看到此錯誤。當 AWS IoT Greengrass Core 軟體安裝到具有長檔案路徑的資料夾時，會發生此錯誤。如果您不使用[寫入目錄](gg-core.md#write-directory)，請將 AWS IoT Greengrass Core 軟體重新安裝至檔案路徑少於 79 個位元組的資料夾，或者如果您使用寫入目錄，則重新安裝 83 個位元組。

### 【INFO】 (Copier) aws.greengrass.StreamManager：stdout。原因：com.fasterxml.jackson.databind.JsonMappingException：立即超過最小或最大立即
<a name="troubleshoot-stream-manager-instant-exceeds-maximun-minimum"></a>

當您將 AWS IoT Greengrass 核心軟體升級至 v1.11.3 時，如果串流管理員無法啟動，您可能會在串流管理員日誌中看到下列錯誤。

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

如果您使用的是比 v1.11.3 更舊 AWS IoT Greengrass 的核心軟體版本，而且想要升級至更新版本，請使用 OTA 更新升級至 v1.11.4。

### GPG error: https://dnw9lb6lzp2d8.cloudfront.net stable InRelease: The following signatures were invalid: EXPKEYSIG 68D644ABD2327D47 AWS Greengrass Master Key
<a name="troubleshoot-apt-repository-invalid-signature"></a>

當您`apt update`在[從 APT 儲存庫安裝 AWS IoT Greengrass 核心軟體](install-ggc.md#ggc-package-manager)的裝置上執行 時，您可能會看到下列錯誤。

```
Err:4 https://dnw9lb6lzp2d8.cloudfront.net stable InRelease
  The following signatures were invalid: EXPKEYSIG 68D644ABD2327D47 AWS Greengrass Master Key
Reading package lists... Done                             
W: GPG error: https://dnw9lb6lzp2d8.cloudfront.net stable InRelease: The following signatures were invalid: EXPKEYSIG 68D644ABD2327D47 AWS Greengrass Master Key
```

發生此錯誤是因為 AWS IoT Greengrass 不再提供從 APT 儲存庫安裝或更新 AWS IoT Greengrass 核心軟體的選項。若要成功執行 `apt update`，請從裝置的來源清單中移除儲存 AWS IoT Greengrass 庫。

```
sudo rm /etc/apt/sources.list.d/greengrass.list 
sudo apt update
```

## 部署問題
<a name="gg-troubleshooting-deploymentissues"></a>

使用以下資訊協助您排解部署的故障問題。

**Topics**
+ [您目前的部署無法運作，因此您想要回復到之前可正常運作的部署。](#troubleshoot-revert-deployment)
+ [您會在日誌中看到部署 403 Forbidden (403 禁止) 錯誤。](#troubleshoot-forbidden-deployment)
+ [當您第一次執行 create-deployment 命令時，就會發生 ConcurrentDeployment 錯誤。](#troubleshoot-concurrent-deployment)
+ [錯誤：Greengrass 未獲授權，無法擔任與此帳戶關聯的服務角色，或錯誤：失敗：TES 服務角色並未與此帳戶關聯。](#troubleshoot-assume-service-role)
+ [錯誤：無法在部署中執行下載步驟，下載時發生錯誤：下載群組定義檔案時發生錯誤：... x509：憑證已過期或無效](#troubleshoot-x509-certificate-expired)
+ [部署尚未完成。](#troubleshoot-stuck-deployment)
+ [錯誤：找不到 java 或 java8 可執行檔，或錯誤：適用於群組 <group-id> 的類型 NewDeployment 部署 <deployment-id> 失敗 錯誤：<worker-id> 的背景工作者無法初始化，原因是安裝的 Java 版本必須大於或等於 8](#java-8-runtime-requirement)
+ [此部署沒有完成，且 runtime.log 含有多個「等待 1 秒讓容器停止」項目。](#troubleshoot-wait-container-stop)
+ [部署未完成，且 `runtime.log` 包含 "[ERROR]-Greengrass 部署錯誤：無法將部署狀態回報給雲端 {"deploymentId": "<deployment-id>", "errorString": "無法初始化 PUT，端點: https://<deployment-status>，錯誤: Put https://<deployment-status>: proxyconnect tcp: x509: 未知授權機構簽署的憑證"}"](#troubleshoot-failed-to-report-deployment-status)
+ [錯誤：適用於群組 <guid> 的類型 NewDeployment 部署 <deployment-id> 失敗錯誤：處理時發生錯誤。群組設定無效：112 或 [119 0] 在檔案上沒有 rw 許可：<path>。](#troubleshoot-access-permissions-deployment)
+ [錯誤：<list-of-function-arns> 設定為以根執行，但 Greengrass 未設定為以根許可執行 Lambda 函數。](#troubleshoot-root-permissions-lambda)
+ [錯誤：適用於群組 <group-id> 的類型 NewDeployment 部署 <deployment-id> 失敗錯誤：Greengrass 部署錯誤：無法在部署中執行下載步驟。處理時發生錯誤：無法載入下載的群組檔案：無法根據使用者名稱 userName 找到 UID：userName：ggc\_user：使用者：不明的使用者 ggc\_user。](#troubleshoot-could-not-find-uid)
+ [錯誤：[ERROR] 執行時間執行錯誤：無法啟動 lambda 容器。{"errorString"："無法初始化容器掛載：無法在覆蓋上層目錄中遮罩 Greengrass 根目錄：無法在目錄 <ggc-path> 上建立遮罩裝置：檔案存在"}](#troubleshoot-failed-to-initialize-container-mounts)
+ [錯誤：適用於群組 <group-id> 類型 NewDeployment 的部署 <deployment-id> 失敗錯誤：程序開始失敗：container\_linux.go:259：啟動容器程序造成 "process\_linux.go:250：為 init 執行 exec setns 程序造成 \\"等待：沒有子程序\\""。](#troubleshoot-wait-child-processes)
+ [錯誤：【WARN】-MQTT【client】 撥號 tcp： lookup <host-prefix>-ats.iot.<region>.amazonaws.com：無此類主機... 【ERROR】-Greengrass 部署錯誤：無法將部署狀態回報給雲端 ... net/http： 請求在等待連線時取消 （在等待標頭時超過 Client.Timeout)](#troubleshoot-dnssec-validation-failed)

 

### 您目前的部署無法運作，因此您想要回復到之前可正常運作的部署。
<a name="troubleshoot-revert-deployment"></a>

**解決方案：**使用 AWS IoT 主控台或 AWS IoT Greengrass API 重新部署先前的工作部署。這會將對應的群組版本部署至您的核心裝置。

**重新部署 (主控台)**

1. 在群組組態頁面上，選擇**部署**索引標籤。此頁面會顯示群組的部署歷史記錄，包括日期和時間、群組版本，以及每個部署嘗試的狀態。

1. 尋找您要重新部署的資料列。選取您要重新部署的部署，然後選擇**重新部署**。  
![顯示重新部署動作以進行部署的部署頁面。](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/console-group-redeployment.png)

**重新部署 (CLI)**

1. 使用 [ListDeployments](https://docs.aws.amazon.com/greengrass/v1/apireference/listdeployments-get.html) 尋找您要重新部署的部署 ID。例如：

   ```
   aws greengrass list-deployments --group-id 74d0b623-c2f2-4cad-9acc-ef92f61fcaf7
   ```

   命令會傳回群組的部署清單。

   ```
   {
       "Deployments": [
           {
               "DeploymentId": "8d179428-f617-4a77-8a0c-3d61fb8446a6",
               "DeploymentType": "NewDeployment",
               "GroupArn": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/74d0b623-c2f2-4cad-9acc-ef92f61fcaf7/versions/8dd1d899-4ac9-4f5d-afe4-22de086efc62",
               "CreatedAt": "2019-07-01T20:56:49.641Z"
           },
           {
               "DeploymentId": "f8e4c455-8ac4-453a-8252-512dc3e9c596",
               "DeploymentType": "NewDeployment",
               "GroupArn": "arn:aws:greengrass:us-west-2::123456789012:/greengrass/groups/74d0b623-c2f2-4cad-9acc-ef92f61fcaf7/versions/4ad66e5d-3808-446b-940a-b1a788898382",
               "CreatedAt": "2019-07-01T20:41:47.048Z"
           },
           {
               "DeploymentId": "e4aca044-bbd8-41b4-b697-930ca7c40f3e",
               "DeploymentType": "NewDeployment",
               "GroupArn": "arn:aws:greengrass:us-west-2::123456789012:/greengrass/groups/74d0b623-c2f2-4cad-9acc-ef92f61fcaf7/versions/1f3870b6-850e-4c97-8018-c872e17b235b",
               "CreatedAt": "2019-06-18T15:16:02.965Z"
           }
       ]
   }
   ```
**注意**  
這些 AWS CLI 命令會使用群組和部署 ID 的範例值。當您執行命令時，請務必取代範例值。

1. 使用 [CreateDeployment](https://docs.aws.amazon.com/greengrass/v1/apireference/createdeployment-post.html) 來重新部署目標部署。將部署類型設定為 `Redeployment`。例如：

   ```
   aws greengrass create-deployment --deployment-type Redeployment \ 
     --group-id 74d0b623-c2f2-4cad-9acc-ef92f61fcaf7 \
     --deployment-id f8e4c455-8ac4-453a-8252-512dc3e9c596
   ```

   命令會傳回新部署的 ARN 和 ID。

   ```
   {
       "DeploymentId": "f9ed02b7-c28e-4df6-83b1-e9553ddd0fc2",
       "DeploymentArn": "arn:aws:greengrass:us-west-2::123456789012:/greengrass/groups/74d0b623-c2f2-4cad-9acc-ef92f61fcaf7/deployments/f9ed02b7-c28e-4df6-83b1-e9553ddd0fc2"
   }
   ```

1. 使用 [GetDeploymentStatus](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html) 來取得部署的狀態。

 

### 您會在日誌中看到部署 403 Forbidden (403 禁止) 錯誤。
<a name="troubleshoot-forbidden-deployment"></a>

**解決方案：**確定雲端中 AWS IoT Greengrass 核心的政策包含 `"greengrass:*"`作為允許的動作。

 

### 當您第一次執行 create-deployment 命令時，就會發生 ConcurrentDeployment 錯誤。
<a name="troubleshoot-concurrent-deployment"></a>

**解決方案：**部署可能在進行中。您可以執行 [get-deployment-status](https://docs.aws.amazon.com/greengrass/v1/apireference/getdeploymentstatus-get.html) 來查看是否已建立部署。如果尚未建立，可以再建立一次部署。

 

### 錯誤：Greengrass 未獲授權，無法擔任與此帳戶關聯的服務角色，或錯誤：失敗：TES 服務角色並未與此帳戶關聯。
<a name="troubleshoot-assume-service-role"></a>

**解決方案：**部署失敗時，您可能會看到此錯誤。檢查 Greengrass 服務角色是否與目前 AWS 帳戶 中的 相關聯 AWS 區域。如需詳細資訊，請參閱 [管理 Greengrass 服務角色 (CLI)](service-role.md#manage-service-role-cli) 或 [管理 Greengrass 服務角色 (主控台)](service-role.md#manage-service-role-console) 。

 

### 錯誤：無法在部署中執行下載步驟，下載時發生錯誤：下載群組定義檔案時發生錯誤：... x509：憑證已過期或無效
<a name="troubleshoot-x509-certificate-expired"></a>

**解決方案：** 您可以在部署失敗時，在 `runtime.log` 查看此錯誤。如果您收到 `Deployment failed` 錯誤，其包含訊息 `x509: certificate has expired or is not yet valid`，請檢查裝置時鐘。TLS 和 X.509 憑證提供安全基礎以便建置 IoT 系統，但是這些憑證在伺服器和用戶端上需要準確的時間。IoT 裝置在嘗試連線至 AWS IoT Greengrass 或其他使用伺服器憑證的 TLS 服務之前，應該有正確的時間 (15 分鐘內）。如需詳細資訊，請參閱[使用裝置時間驗證官方部落格上的物聯網 AWS IoT 伺服器憑證](https://aws.amazon.com/blogs/iot/using-device-time-to-validate-aws-iot-server-certificates/)。 * AWS *

 

### 部署尚未完成。
<a name="troubleshoot-stuck-deployment"></a>

**解決方案：**執行下列動作：
+ 請確定 AWS IoT Greengrass 協助程式正在您的核心裝置上執行。在核心裝置終端機中，執行下列命令來檢查協助程式是否正在執行，並視需要啟動它。

  1. 檢查精靈是否有在運作：

     ```
     ps aux | grep -E 'greengrass.*daemon'
     ```

     若輸出的 `root` 含有 `/greengrass/ggc/packages/1.11.6/bin/daemon` 項目，則精靈有在運作。

     路徑中的版本取決於核心裝置上安裝的核心 AWS IoT Greengrass 軟體版本。

  1. 若要啟動協助程式：

     ```
     cd /greengrass/ggc/core/
     sudo ./greengrassd start
     ```
+ 確保您的核心裝置已連線，且核心連線端點的設定都正確。

 

### 錯誤：找不到 java 或 java8 可執行檔，或錯誤：適用於群組 <group-id> 的類型 NewDeployment 部署 <deployment-id> 失敗 錯誤：<worker-id> 的背景工作者無法初始化，原因是安裝的 Java 版本必須大於或等於 8
<a name="java-8-runtime-requirement"></a>

**解決方案：**如果 AWS IoT Greengrass 核心已啟用串流管理員，您必須先在核心裝置上安裝 Java 8 執行時間，才能部署 群組。如需詳細資訊，請參閱串流管理員的[需求](stream-manager.md#stream-manager-requirements)。當您使用 AWS IoT 主控台中的**預設群組建立**工作流程來建立群組時，預設會啟用串流管理員。

或者，可以停用串流管理員，然後部署群組。如需詳細資訊，請參閱[設定串流管理員設定 (主控台)](configure-stream-manager.md#configure-stream-manager-console)。

 

### 此部署沒有完成，且 runtime.log 含有多個「等待 1 秒讓容器停止」項目。
<a name="troubleshoot-wait-container-stop"></a>

**解決方案：**在核心裝置終端機中執行下列命令，以重新啟動 AWS IoT Greengrass 協助程式。

```
cd /greengrass/ggc/core/
sudo ./greengrassd stop
sudo ./greengrassd start
```

 

### 部署未完成，且 `runtime.log` 包含 "[ERROR]-Greengrass 部署錯誤：無法將部署狀態回報給雲端 {"deploymentId": "<deployment-id>", "errorString": "無法初始化 PUT，端點: https://<deployment-status>，錯誤: Put https://<deployment-status>: proxyconnect tcp: x509: 未知授權機構簽署的憑證"}"
<a name="troubleshoot-failed-to-report-deployment-status"></a>

**解決方案：**當 Greengrass 核心設定為使用 HTTPS Proxy 連線，且系統上的 Proxy 伺服器憑證鏈結不受信任時，您可能會在 `runtime.log` 檔案中看到此錯誤。若要嘗試解決這個問題，請將憑證鏈結新增至根 CA 憑證。Greengrass 核心會將此檔案的憑證新增至 HTTPS 和 MQTT 與 AWS IoT Greengrass的連線中用於 TLS 驗證的憑證集區。

下列範例顯示新增至根 CA 憑證檔案的 Proxy 伺服器 CA 憑證：

```
# My proxy CA
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK
\nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww
... {{content of proxy CA certificate}} ...
+vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui
GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216
gJMIADggEPADf2/m45hzEXAMPLE=
-----END CERTIFICATE-----

# Amazon Root CA 1
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg
ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW
... {{content of root CA certificate}} ...
o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa
5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy
rqXRfKoQnoZsG4q5WTP46EXAMPLE
-----END CERTIFICATE-----
```

根 CA 憑證檔案預設位於 `/{{greengrass-root}}/certs/root.ca.pem` 中。若要尋找核心裝置上的位置，請檢查 [config.json](gg-core.md#config-json) 中的 `crypto.caPath` 屬性。

**注意**  
{{greengrass-root}} 代表在裝置上安裝 AWS IoT Greengrass Core 軟體的路徑。通常，這是 `/greengrass` 目錄。

 

### 錯誤：適用於群組 <guid> 的類型 NewDeployment 部署 <deployment-id> 失敗錯誤：處理時發生錯誤。群組設定無效：112 或 [119 0] 在檔案上沒有 rw 許可：<path>。
<a name="troubleshoot-access-permissions-deployment"></a>

**解決方案：**確保 {{<path>}} 目錄的擁有者群組具有讀取目錄和寫入目錄許可。

 

### 錯誤：<list-of-function-arns> 設定為以根執行，但 Greengrass 未設定為以根許可執行 Lambda 函數。
<a name="troubleshoot-root-permissions-lambda"></a>

**解決方案：** 您可以在部署失敗時，在 `runtime.log` 查看此錯誤。請確定您已設定 AWS IoT Greengrass 允許 Lambda 函數使用根許可執行。將 `allowFunctionsToRunAsRoot`中的 值變更為 ，`greengrass_root/config/config.json``yes`或將 Lambda 函數變更為以另一個使用者/群組身分執行。如需詳細資訊，請參閱[執行 Lambda 函數做為根](lambda-group-config.md#lambda-running-as-root)。

 

### 錯誤：適用於群組 <group-id> 的類型 NewDeployment 部署 <deployment-id> 失敗錯誤：Greengrass 部署錯誤：無法在部署中執行下載步驟。處理時發生錯誤：無法載入下載的群組檔案：無法根據使用者名稱 userName 找到 UID：userName：ggc\_user：使用者：不明的使用者 ggc\_user。
<a name="troubleshoot-could-not-find-uid"></a>

**解決方案：**如果 AWS IoT Greengrass 群組[的預設存取身分](lambda-group-config.md#lambda-access-identity-groupsettings)使用標準系統帳戶，則`ggc_user`使用者和`ggc_group`群組必須存在於裝置上。如需展示如何新增使用者和群組的指示，請參閱此[步驟](setup-filter.rpi.md#add-ggc-user-ggc-group)。請務必輸入完全如所示的名稱。

 

### 錯誤：[ERROR] 執行時間執行錯誤：無法啟動 lambda 容器。{"errorString"："無法初始化容器掛載：無法在覆蓋上層目錄中遮罩 Greengrass 根目錄：無法在目錄 <ggc-path> 上建立遮罩裝置：檔案存在"}
<a name="troubleshoot-failed-to-initialize-container-mounts"></a>

**解決方案：** 您可以在部署失敗時，在 `runtime.log` 查看此錯誤。如果 Greengrass 群組中的 Lambda 函數無法存取核心檔案系統中的 `/usr` 目錄，就會發生此錯誤。若要解決這個問題，請將[本機磁碟區資源](access-local-resources.md)新增至群組，然後部署群組。資源必須：
+ 指定 `/usr` 作為**來源路徑**和**目的地路徑**。
+ 為擁有資源的 Linux 群組自動新增作業系統群組許可。
+ 隸屬於 Lambda 函數，並允許唯讀存取。

 

### 錯誤：適用於群組 <group-id> 類型 NewDeployment 的部署 <deployment-id> 失敗錯誤：程序開始失敗：container\_linux.go:259：啟動容器程序造成 "process\_linux.go:250：為 init 執行 exec setns 程序造成 \\"等待：沒有子程序\\""。
<a name="troubleshoot-wait-child-processes"></a>

**解決方案：**部署失敗時，您可能會看到此錯誤。重新嘗試部署。

 

### 錯誤：【WARN】-MQTT【client】 撥號 tcp： lookup <host-prefix>-ats.iot.<region>.amazonaws.com：無此類主機... 【ERROR】-Greengrass 部署錯誤：無法將部署狀態回報給雲端 ... net/http： 請求在等待連線時取消 （在等待標頭時超過 Client.Timeout)
<a name="troubleshoot-dnssec-validation-failed"></a>

**解決方案：**如果您使用 `systemd-resolved`，根據預設啟用 `DNSSEC` 設定，則可能會看到此錯誤。因此，無法辨識許多公有網域。嘗試到達 AWS IoT Greengrass 端點時，找不到主機，因此您的部署會保持在 `In Progress` 狀態。

您可以使用下列命令和輸出，來測試是否有此問題。將端點中的{{區域}}預留位置取代為 AWS 區域。

```
$ ping greengrass-ats.iot.{{region}}.amazonaws.com
ping: greengrass-ats.iot.{{region}}.amazonaws.com: Name or service not known
```

```
$ systemd-resolve greengrass-ats.iot.{{region}}.amazonaws.com
greengrass-ats.iot.{{region}}.amazonaws.com: resolve call failed: DNSSEC validation failed: failed-auxiliary
```

可能的解決方案是停用 `DNSSEC`。當 `DNSSEC` 為 `false` 時，不會進行 `DNSSEC` 驗證。如需詳細資訊，請參閱 的此[已知問題](https://github.com/systemd/systemd/issues/9867)`systemd`。

1. 將 `DNSSEC=false` 新增至 `/etc/systemd/resolved.conf`。

1. 重新啟動 `systemd-resolved`。

如需 `resolved.conf` 和 `DNSSEC` 的詳細資訊，請在終端機中執行 `man resolved.conf`。

 

## 建立群組和建立函數問題
<a name="gg-troubleshooting-groupcreateissues"></a>

使用以下資訊來協助疑難排解建立 AWS IoT Greengrass 群組或 Greengrass Lambda 函數的問題。

**Topics**
+ [錯誤：群組的 'IsolationMode' 設定無效。](#troubleshoot-invalid-isolation-mode-group)
+ [錯誤：arn 為 <function-arn> 的 'IsolationMode' 設定無效。](#troubleshoot-isolation-mode-lambda)
+ [錯誤：IsolationMode=NoContainer 中不允許 arn 為 <function-arn> 的函數 MemorySize 設定。](#troubleshoot-lambda-memorysize-not-supported)
+ [錯誤：IsolationMode=NoContainer 中不允許 arn 為 <function-arn> 的函數 Access Sysfs 設定。](#troubleshoot-sysfs-access-not-supported)
+ [錯誤：IsolationMode=GreengrassContainer 中需要 arn 為 <function-arn> 的函數 MemorySize 設定。](#troubleshoot-lambda-memorysize-required)
+ [錯誤：函數 <function-arn> 會參考 IsolationMode = NoContainer 中不允許的類型 <resource-type> 資源。](#troubleshoot-resource-access-not-supported)
+ [錯誤：不允許 arn 為 <function-arn> 的函數執行組態。](#troubleshoot-execution-parameters-not-supported)

 

### 錯誤：群組的 'IsolationMode' 設定無效。
<a name="troubleshoot-invalid-isolation-mode-group"></a>

** 解決方案：**不支援 `function-definition-version` 的 `DefaultConfig` 中的 `IsolationMode` 值時，可能會發生此錯誤。支援的值為 `GreengrassContainer` 和 `NoContainer`。

 

### 錯誤：arn 為 <function-arn> 的 'IsolationMode' 設定無效。
<a name="troubleshoot-isolation-mode-lambda"></a>

**解決方案：**不支援 `function-definition-version` 的 <function-arn> 中的 `IsolationMode` 值時，可能會發生此錯誤。支援的值為 `GreengrassContainer` 和 `NoContainer`。

 

### 錯誤：IsolationMode=NoContainer 中不允許 arn 為 <function-arn> 的函數 MemorySize 設定。
<a name="troubleshoot-lambda-memorysize-not-supported"></a>

**解決方案：**當您指定`MemorySize`值並選擇在沒有容器化的情況下執行時，會發生此錯誤。在沒有容器化的情況下執行的 Lambda 函數不能有記憶體限制。您可以移除限制，也可以將 Lambda 函數變更為在 AWS IoT Greengrass 容器中執行。

 

### 錯誤：IsolationMode=NoContainer 中不允許 arn 為 <function-arn> 的函數 Access Sysfs 設定。
<a name="troubleshoot-sysfs-access-not-supported"></a>

**解決方案：**當您`true`為 指定 ，`AccessSysfs`並選擇在沒有容器化的情況下執行 時，會發生此錯誤。在沒有容器化的情況下執行的 Lambda 函數必須更新其程式碼，才能直接存取檔案系統，且無法使用 `AccessSysfs`。您可以指定 的值`false`，`AccessSysfs`也可以將 Lambda 函數變更為在 AWS IoT Greengrass 容器中執行。

 

### 錯誤：IsolationMode=GreengrassContainer 中需要 arn 為 <function-arn> 的函數 MemorySize 設定。
<a name="troubleshoot-lambda-memorysize-required"></a>

**解決方案：**此錯誤是因為您未指定在 AWS IoT Greengrass 容器中執行之 Lambda 函數`MemorySize`的限制。指定 `MemorySize` 值以解決錯誤。

 

### 錯誤：函數 <function-arn> 會參考 IsolationMode = NoContainer 中不允許的類型 <resource-type> 資源。
<a name="troubleshoot-resource-access-not-supported"></a>

**解決方案：**在沒有容器化的情況下執行 Lambda 函數時，您無法存取 `Local.Device` `Local.Volume``ML_Model.SageMaker.Job`、`ML_Model.S3_Object`、、 或 `S3_Object.Generic_Archive` 資源類型。如果您需要這些資源類型，您必須在 AWS IoT Greengrass 容器中執行 。您也可以在執行時直接存取本機裝置，無需容器化，方法是變更 Lambda 函數中的程式碼。

 

### 錯誤：不允許 arn 為 <function-arn> 的函數執行組態。
<a name="troubleshoot-execution-parameters-not-supported"></a>

**解決方案：**當您使用 `GGIPDetector`或 建立系統 Lambda 函數，`GGCloudSpooler`並指定 `IsolationMode` 或 `RunAs`組態時，就會發生此錯誤。您必須省略此系統 Lambda 函數的`Execution`參數。

 

## Discovery 問題
<a name="gg-troubleshooting-discovery-issues"></a>

使用以下資訊來協助對 AWS IoT Greengrass Discovery 服務的問題進行故障診斷。

**Topics**
+ [錯誤：裝置是太多群組的成員，裝置不得在超過 10 個群組中](#troubleshoot-device-in-too-many-groups)

 

### 錯誤：裝置是太多群組的成員，裝置不得在超過 10 個群組中
<a name="troubleshoot-device-in-too-many-groups"></a>

**解決方案：**這是已知的限制。[用戶端裝置](what-is-gg.md#greengrass-devices)最多可為 10 個群組的成員。

 

## 機器學習資源問題
<a name="ml-resources-troubleshooting"></a>

使用下列資訊協助疑難排解機器學習資源的問題。

**Topics**
+ [InvalidMLModelOwner - GroupOwnerSetting 在 ML 模型資源中提供，但是 GroupOwner 或 GroupPermission 不存在](#nocontainer-lambda-invalid-ml-model-owner)
+ [附加 Machine Learning 資源時，NoContainer 函數無法設定權限。<function-arn> 係指在資源存取政策中，具有權限 <ro/rw> 的 Machine Learning 資源 <resource-id>。](#nocontainer-lambda-invalid-resource-access-policy)
+ [函數 <function-arn> 係指在資源 <resource-id> ResourceAccessPolicy 和資源 OwnerSetting 中具有遺失權限的 Machine Learning 資源。](#nocontainer-lambda-missing-access-permission)
+ [函數 <function-arn> 係指具有 \\"rw\\" 權限的 Machine Learning 資源 <resource-id>，而資源擁有者設定 GroupPermission 只允許 \\"ro\\"。](#container-lambda-invalid-rw-permissions)
+ [NoContainer 函數 <function-arn> 係指巢狀目的地路徑的資源。](#nocontainer-lambda-nested-destination-path)
+ [Lambda <function-arn> 透過共用相同群組擁有者 ID 來獲得資源 <resource-id> 的存取權](#lambda-runas-and-resource-owner)

 

### InvalidMLModelOwner - GroupOwnerSetting 在 ML 模型資源中提供，但是 GroupOwner 或 GroupPermission 不存在
<a name="nocontainer-lambda-invalid-ml-model-owner"></a>

**解決方案：**如果機器學習資源包含 [ResourceDownloadOwnerSetting](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-resourcedownloadownersetting.html) 物件，但未定義必要的 `GroupOwner` 或 `GroupPermission` 屬性，便會收到此錯誤訊息。若要解決此問題，請定義遺失的屬性。

 

### 附加 Machine Learning 資源時，NoContainer 函數無法設定權限。<function-arn> 係指在資源存取政策中，具有權限 <ro/rw> 的 Machine Learning 資源 <resource-id>。
<a name="nocontainer-lambda-invalid-resource-access-policy"></a>

**解決方案：**如果非容器化 Lambda 函數指定機器學習資源的函數層級許可，您會收到此錯誤。非容器化函數必須從機器學習資源上定義的資源擁有者權限繼承權限。若要解決此問題，請選擇[繼承資源擁有者許可](access-ml-resources.md#non-container-config-console) （主控台），或從 [Lambda 函數的資源存取政策 (API) 移除許可](access-ml-resources.md#non-container-config-api)。

 

### 函數 <function-arn> 係指在資源 <resource-id> ResourceAccessPolicy 和資源 OwnerSetting 中具有遺失權限的 Machine Learning 資源。
<a name="nocontainer-lambda-missing-access-permission"></a>

**解決方案：**如果未針對連接的 Lambda 函數或資源設定機器學習資源的許可，您會收到此錯誤。若要解決此問題，請在 Lambda 函數的 [ResourceAccessPolicy](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-resourceaccesspolicy.html) 屬性或資源的 [OwnerSetting](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-ownersetting.html) 屬性中設定許可。

 

### 函數 <function-arn> 係指具有 \\"rw\\" 權限的 Machine Learning 資源 <resource-id>，而資源擁有者設定 GroupPermission 只允許 \\"ro\\"。
<a name="container-lambda-invalid-rw-permissions"></a>

**解決方案：**如果為連接的 Lambda 函數定義的存取許可超過為機器學習資源定義的資源擁有者許可，您會收到此錯誤。若要解決此問題，請為 Lambda 函數設定更嚴格的許可，或為資源擁有者設定較不嚴格的許可。

 

### NoContainer 函數 <function-arn> 係指巢狀目的地路徑的資源。
<a name="nocontainer-lambda-nested-destination-path"></a>

**解決方案：**如果連接到非容器化 Lambda 函數的多個機器學習資源使用相同的目的地路徑或巢狀目的地路徑，則會收到此錯誤。若要解決此問題，請為資源指定個別目的地路徑。

 

### Lambda <function-arn> 透過共用相同群組擁有者 ID 來獲得資源 <resource-id> 的存取權
<a name="lambda-runas-and-resource-owner"></a>

**解決方案：**`runtime.log`如果將相同的作業系統群組指定為 Lambda 函數的 [Run as](lambda-group-config.md#lambda-access-identity) identity 和機器學習[資源的資源擁有者](access-ml-resources.md#ml-resource-owner)，但資源未連接到 Lambda 函數，則會收到此錯誤。此組態提供 Lambda 函數隱含許可，其可在未經授權的情況下用來存取資源 AWS IoT Greengrass 。

若要解決此問題，請針對其中一個屬性使用不同的作業系統群組，或將機器學習資源連接至 Lambda 函數。

## AWS IoT Greengrass Docker 問題的核心
<a name="gg-troubleshooting-dockerissues"></a>

使用以下資訊來協助疑難排解在 Docker 容器中執行 AWS IoT Greengrass 核心的問題。

**Topics**
+ [錯誤：不明選項：-no-include-email。](#docker-troubleshooting-cli-version)
+ [警告：IPv4 已停用。網路將無法運作。](#docker-troubleshooting-ipv4-disabled)
+ [錯誤：防火牆封鎖了 Windows 和容器之間的檔案共用。](#docker-troubleshooting-firewall)
+ [錯誤：呼叫 GetAuthorizationToken 操作時發生錯誤 (AccessDeniedException)：User： arn：aws：iam：：<account-id>：user/<user-name> 未獲授權在資源上執行：ecr：GetAuthorizationToken： \*](#docker-troubleshooting-ecr-perms)
+ [錯誤：無法為服務 greengrass 建立容器：衝突。容器名稱 "/aws-iot-greengrass" 已在使用中。](#troubleshoot-docker-name-conflict)
+ [錯誤：[FATAL]-因為意外錯誤，無法重設執行緒的掛載命名空間：「不允許操作」。為了保持一致性，GGC 會當機且需要手動重新啟動。](#troubleshoot-docker-container-lambda)

 

### 錯誤：不明選項：-no-include-email。
<a name="docker-troubleshooting-cli-version"></a>

**解決方案：**執行 `aws ecr get-login` 命令時，可能會發生此錯誤。請確定您已安裝 AWS CLI 最新版本 （例如，執行：`pip install awscli --upgrade --user`)。如果您使用 Windows 並已使用 MSI 安裝程式安裝 CLI，您必須重新啟動安裝程序。如需詳細資訊，請參閱*AWS Command Line Interface 《 使用者指南*》中的在 [Microsoft Windows AWS Command Line Interface 上安裝](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html) 。

 

### 警告：IPv4 已停用。網路將無法運作。
<a name="docker-troubleshooting-ipv4-disabled"></a>

**解決方案：**在 Linux AWS IoT Greengrass 電腦上執行 時，您可能會收到此警告或類似訊息。如[此步驟](run-gg-in-docker-container.md#docker-linux-enable-ipv4)所述啟用 IPv4 網路轉送。未啟用 IPv4 轉送時 AWS IoT Greengrass ，雲端部署和 MQTT 通訊無法運作。如需詳細資訊，請參閱 Docker 文件中的[在執行時間設定命名空間核心參數 (sysctls)](https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime)。

 

### 錯誤：防火牆封鎖了 Windows 和容器之間的檔案共用。
<a name="docker-troubleshooting-firewall"></a>

**解決方案：**在 Windows 電腦上執行 Docker 時，您可能收到此錯誤或 `Firewall Detected` 訊息。如果您登入虛擬私有網路 (VPN)，而您的網路設定防止掛載共用磁碟機，也可能會發生這個錯誤。在這種情況下，請關閉 VPN 並重新執行 Docker 容器。

 

### 錯誤：呼叫 GetAuthorizationToken 操作時發生錯誤 (AccessDeniedException)：User： arn：aws：iam：：<account-id>：user/<user-name> 未獲授權在資源上執行：ecr：GetAuthorizationToken： \*
<a name="docker-troubleshooting-ecr-perms"></a>

如果您沒有足夠的許可來存取 Amazon ECR 儲存庫，則執行 `aws ecr get-login-password`命令時可能會收到此錯誤。如需詳細資訊，請參閱《[Amazon ECR 使用者指南》中的 Amazon ECR 儲存庫政策範例](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html)[和存取一個 Amazon ECR 儲存庫](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html)。 **

 

### 錯誤：無法為服務 greengrass 建立容器：衝突。容器名稱 "/aws-iot-greengrass" 已在使用中。
<a name="troubleshoot-docker-name-conflict"></a>

**解決方案：**當容器名稱由舊版容器使用時，可能會發生這種情況。若要解決這個問題，請執行以下命令來移除舊的 Docker 容器：

```
docker rm -f $(docker ps -a -q -f "name=aws-iot-greengrass")
```

 

### 錯誤：[FATAL]-因為意外錯誤，無法重設執行緒的掛載命名空間：「不允許操作」。為了保持一致性，GGC 會當機且需要手動重新啟動。
<a name="troubleshoot-docker-container-lambda"></a>

**解決方案：**當您嘗試將 `GreengrassContainer` Lambda 函數部署到 Docker 容器中執行 AWS IoT Greengrass 的核心時，`runtime.log`可能會發生此錯誤。目前，只有 `NoContainer` Lambda 函數可以部署到 Greengrass Docker 容器。

若要解決此問題，[請確定所有 Lambda 函數都處於 `NoContainer` 模式](lambda-group-config.md#change-containerization-lambda)，並啟動新的部署。然後，啟動容器時，請勿將現有`deployment`目錄繫結掛載至 AWS IoT Greengrass 核心 Docker 容器。而是建立一個空的 `deployment` 目錄來取代並在 Docker 容器中綁定掛載該目錄。這可讓新的 Docker 容器使用在 `NoContainer` 模式下執行的 Lambda 函數接收最新的部署。

如需詳細資訊，請參閱[AWS IoT Greengrass 在 Docker 容器中執行](run-gg-in-docker-container.md)。

## 日誌故障診斷
<a name="troubleshooting-logs"></a>

您可以設定 Greengrass 群組的記錄設定，例如是否要將日誌傳送至 CloudWatch Logs、將日誌存放在本機檔案系統上，或兩者。若要在問題故障診斷時取得詳細資訊，您可以暫時將記錄層級變更為 `DEBUG`。對記錄設定所做的變更會在部署群組時生效。如需詳細資訊，請參閱[設定 的記錄 AWS IoT Greengrass](greengrass-logs-overview.md#config-logs)。

在本機檔案系統上， 會將日誌 AWS IoT Greengrass 存放在下列位置。在檔案系統中讀取日誌需要根許可。

`{{greengrass-root}}/ggc/var/log/crash.log`  
顯示 AWS IoT Greengrass 核心當機時產生的訊息。

`{{greengrass-root}}/ggc/var/log/system/runtime.log`  
顯示元件故障的訊息。

`{{greengrass-root}}/ggc/var/log/system/`  
包含來自 AWS IoT Greengrass 系統元件的所有日誌，例如憑證管理員和連線管理員。透過使用 `ggc/var/log/system/`和 中的訊息`ggc/var/log/system/runtime.log`，您應該能夠找出 AWS IoT Greengrass 系統元件中發生的錯誤。

`{{greengrass-root}}/ggc/var/log/system/localwatch/`  
包含處理將 Greengrass 日誌上傳至 CloudWatch Logs 之 AWS IoT Greengrass 元件的日誌。如果您無法在 CloudWatch 中檢視 Greengrass 日誌，則可以使用這些日誌進行故障診斷。

`{{greengrass-root}}/ggc/var/log/user/`  
包含使用者定義 Lambda 函數的所有日誌。檢查此資料夾，以從本機 Lambda 函數尋找錯誤訊息。

**注意**  
在預設情況下，{{greengrass-root}} 即為 `/greengrass` 目錄。如果已設定好[寫入目錄](gg-core.md#write-directory)，那麼日誌就會位在該目錄中。

如果日誌設定為存放在雲端，請使用 CloudWatch Logs 來檢視日誌訊息。 `crash.log` 只在 AWS IoT Greengrass 核心裝置上的檔案系統日誌中找到。

如果 AWS IoT 設定為將日誌寫入 CloudWatch，請在系統元件嘗試連線時發生連線錯誤時檢查這些日誌 AWS IoT。

如需 AWS IoT Greengrass 記錄的詳細資訊，請參閱 [使用 AWS IoT Greengrass 日誌監控](greengrass-logs-overview.md)。

**注意**  
 AWS IoT Greengrass Core 軟體 v1.0 的日誌存放在 `{{greengrass-root}}/var/log`目錄下。

## 對儲存體問題進行故障診斷
<a name="troubleshooting-storage"></a>

當本機檔案儲存空間已滿時，有些元件可能會開始故障：
+ 不會更新本機陰影。
+ 新的 AWS IoT Greengrass 核心 MQTT 伺服器憑證無法在本機下載。
+ 部署失敗。

您應該隨時注意本機中可用的自由空間容量。您可以根據已部署的 Lambda 函數大小、記錄組態 （請參閱[日誌故障診斷](#troubleshooting-logs))，以及本機存放的影子數量來計算可用空間。

## 訊息故障診斷
<a name="troubleshooting-messages"></a>

在 本機傳送的所有訊息 AWS IoT Greengrass 都會使用 QoS 0 傳送。根據預設， 會將訊息 AWS IoT Greengrass 存放在記憶體內佇列中。因此，當 Greengrass 核心重新啟動時 (例如在群組部署或裝置重新開機後)，未處理的訊息便會遺失。不過，您可以設定 AWS IoT Greengrass (v1.6 或更新版本） 將訊息快取至檔案系統，使其在核心重新啟動期間持續存在。您也可以設定佇列的容量。如果您設定佇列的容量，請確定其值大於或等於 262144 位元組 (256 KB)。否則， AWS IoT Greengrass 可能無法正常啟動。如需詳細資訊，請參閱[雲端目標的 MQTT 訊息佇列](gg-core.md#mqtt-message-queue)。

**注意**  
使用預設記憶體內佇列，當服務中斷最低時，我們建議您部署群組或重新啟動裝置。

您也可以設定核心以建立 AWS IoT的持久性工作階段。這可讓核心在核心離線 AWS 雲端 時接收從 傳送的訊息。如需詳細資訊，請參閱[使用 的 MQTT 持久性工作階段 AWS IoT Core](gg-core.md#mqtt-persistent-sessions)。

## 陰影同步逾時問題故障診斷
<a name="troubleshooting-shadow-sync"></a>

若 Greengrass 核心裝置和雲端間的通訊有明顯的延遲，則陰影同步可能會因為逾時而失敗。在這種情況下，您應該會看到與以下內容相似的日誌項目：

```
[2017-07-20T10:01:58.006Z][ERROR]-cloud_shadow_client.go:57,Cloud shadow client error: unable to get cloud shadow what_the_thing_is_named for synchronization. Get https://1234567890abcd.iot.us-west-2.amazonaws.com:8443/things/what_the_thing_is_named/shadow: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
[2017-07-20T10:01:58.006Z][WARN]-sync_manager.go:263,Failed to get cloud copy: Get https://1234567890abcd.iot.us-west-2.amazonaws.com:8443/things/what_the_thing_is_named/shadow: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
[2017-07-20T10:01:58.006Z][ERROR]-sync_manager.go:375,Failed to execute sync operation {what_the_thing_is_named VersionDiscontinued []}"
```

可能的修復方式是設定核心裝置等待主機回應的時間。在 中開啟 [config.json](gg-core.md#config-json) 檔案，`{{greengrass-root}}/config`並以秒為單位新增具有逾時值`system.shadowSyncTimeout`的欄位。例如：

```
{
  "system": {
    "shadowSyncTimeout": 10
  },
  "coreThing": {
    "caPath": "root-ca.pem",
    "certPath": "cloud.pem.crt",
    "keyPath": "cloud.pem.key",
    ...
  },
  ...
}
```

若沒有在 `config.json` 中指定任何 `shadowSyncTimeout` 值，則預設為 5 秒鐘。

**注意**  
對於 AWS IoT Greengrass Core 軟體 v1.6 和更早版本，預設值`shadowSyncTimeout`為 1 秒。

## 檢查 AWS re：Post
<a name="troubleshooting-repost"></a>

如果您無法使用本主題中的疑難排解資訊來解決您的問題，您可以搜尋 [故障診斷 AWS IoT Greengrass](#gg-troubleshooting) 或查看 [AWS IoT GreengrassAWS re：Post 上的標籤](https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass)是否有相關問題或發佈新問題。 AWS IoT Greengrass 團隊成員主動監控 AWS re：Post。