

支援終止通知：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="install-ggc"></a>

<a name="ggc-software-descripton"></a> Core AWS IoT Greengrass 軟體將 AWS 功能延伸到 AWS IoT Greengrass 核心裝置，讓本機裝置可以在本機根據其產生的資料採取行動。

AWS IoT Greengrass 提供數種安裝 AWS IoT Greengrass Core 軟體的選項：
+ [下載並解壓縮 tar.gz 檔案](#download-and-extract-tarball)。
+ [執行 Greengrass 裝置設定指令碼](#run-device-setup-script)。
+ [從 APT 儲存庫安裝](#ggc-package-manager)。

AWS IoT Greengrass 也提供執行 AWS IoT Greengrass Core 軟體的容器化環境。
+ [AWS IoT Greengrass 在 Docker 容器中執行](#gg-docker-support) 。
+ [AWS IoT Greengrass 快速執行](#gg-snap-support)。

 

## 下載並擷取 AWS IoT Greengrass Core 軟體套件
<a name="download-and-extract-tarball"></a>

為您的平台選擇要下載為 tar.gz 檔案並在裝置上擷取 AWS IoT Greengrass 的核心軟體。您可以下載最新版本的軟體。如需詳細資訊，請參閱[AWS IoT Greengrass 核心軟體](what-is-gg.md#gg-core-download-tab)。

 

## 執行 Greengrass 裝置設定指定碼
<a name="run-device-setup-script"></a>

執行 Greengrass 裝置設定以設定您的裝置、安裝最新的 AWS IoT Greengrass Core 軟體版本，並在幾分鐘內部署 Hello World Lambda 函數。如需詳細資訊，請參閱[快速入門：Greengrass 裝置安裝](quick-start.md)。

 

## 從 APT 儲存庫安裝 AWS IoT Greengrass 核心軟體
<a name="ggc-package-manager"></a>

**重要**  
自 2022 年 2 月 11 日起，您無法再從 APT 儲存庫安裝或更新 AWS IoT Greengrass Core 軟體。在您新增 AWS IoT Greengrass 儲存庫的裝置上，您必須[從來源清單中移除儲存庫](#ggc-package-manager-remove-sources)。從 APT 儲存庫執行軟體的裝置將繼續正常運作。建議您使用 [tar 檔案](#download-and-extract-tarball)更新 AWS IoT Greengrass Core 軟體。

提供的 APT 儲存庫 AWS IoT Greengrass 包含下列套件：
+ `aws-iot-greengrass-core`。 安裝 AWS IoT Greengrass 核心軟體。
+ `aws-iot-greengrass-keyring`。 安裝用來簽署 AWS IoT Greengrass 套件儲存庫的 GnuPG (GPG) 金鑰。

  下載此軟體，即表示您同意 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)之規定。

**Topics**
+ [使用 systemd 指令碼以管理 Greengrass 協助程式生命週期](#ggc-package-manager-systemd)
+ [使用 APT 儲存庫解除安裝 AWS IoT Greengrass 核心軟體](#ggc-package-manager-uninstall)
+ [移除 AWS IoT Greengrass 核心軟體儲存庫來源](#ggc-package-manager-remove-sources)

### 使用 systemd 指令碼以管理 Greengrass 協助程式生命週期
<a name="ggc-package-manager-systemd"></a>

`aws-iot-greengrass-core` 套件也會安裝可用來管理 AWS IoT Greengrass Core 軟體 （協助程式） 生命週期的`systemd`指令碼。
+ 在開機期間啟動 Greengrass 協助程式：

  ```
  systemctl enable greengrass.service
  ```
+ 啟動 Greengrass 協助程式：

  ```
  systemctl start greengrass.service
  ```
+ 停止 Greengrass 協助程式：

  ```
  systemctl stop greengrass.service
  ```
+ 檢查 Greengrass 協助程式的狀態：

  ```
  systemctl status greengrass.service
  ```

### 使用 APT 儲存庫解除安裝 AWS IoT Greengrass 核心軟體
<a name="ggc-package-manager-uninstall"></a>

當您解除安裝 AWS IoT Greengrass 核心軟體時，您可以選擇是否要保留或移除 AWS IoT Greengrass 核心軟體的組態資訊，例如裝置憑證、群組資訊和日誌檔案。

**解除安裝 AWS IoT Greengrass 核心軟體並保留組態資訊**
+ 執行下列命令以移除 AWS IoT Greengrass 核心軟體套件，並將組態資訊保留在 `/greengrass` 資料夾中。

  ```
  sudo apt remove aws-iot-greengrass-core aws-iot-greengrass-keyring
  ```

**解除安裝 AWS IoT Greengrass 核心軟體並移除組態資訊**

1. 執行下列命令以移除 AWS IoT Greengrass 核心軟體套件，並從 移除組態資訊`/greengrass folder`。

   ```
   sudo apt purge aws-iot-greengrass-core aws-iot-greengrass-keyring
   ```

1. 從來源清單中移除 AWS IoT Greengrass 核心軟體儲存庫。如需詳細資訊，請參閱[移除 AWS IoT Greengrass 核心軟體儲存庫來源](#ggc-package-manager-remove-sources)。

### 移除 AWS IoT Greengrass 核心軟體儲存庫來源
<a name="ggc-package-manager-remove-sources"></a>

當您不再需要從 APT 儲存庫安裝或更新 AWS IoT Greengrass 核心軟體時，您可以移除 AWS IoT Greengrass 核心軟體儲存庫來源。2022 年 2 月 11 日之後，您必須從來源清單中移除儲存庫，以避免執行 時發生錯誤`apt update`。

**從來源清單中移除 APT 儲存庫**
+ 執行下列命令，從來源清單中移除 AWS IoT Greengrass 核心軟體儲存庫。

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

## AWS IoT Greengrass 在 Docker 容器中執行
<a name="gg-docker-support"></a>

AWS IoT Greengrass 提供 Dockerfile 和 Docker 映像，讓您更輕鬆地在 Docker 容器中執行 AWS IoT Greengrass Core 軟體。如需詳細資訊，請參閱[AWS IoT Greengrass Docker 軟體](what-is-gg.md#gg-docker-download)。

**注意**  
您也可以在 Greengrass 核心裝置上執行 Docker 應用程式。為此，使用 [Greengrass Docker 應用程式部署連接器](docker-app-connector.md)。

 

## AWS IoT Greengrass 快速執行
<a name="gg-snap-support"></a>

<a name="gg-snap-description"></a>AWS IoT Greengrass snap 1.11.x 可讓您 AWS IoT Greengrass 透過方便的軟體套件以及所有必要的相依性，在容器化環境中執行有限的 版本。

<a name="gg-snap-support-ends"></a>在 2023 年 12 月 31 日， AWS IoT Greengrass 將結束在 https：// 上發佈 AWS IoT Greengrass 的核心軟體版本 1.11.x Snap 的維護。 [ snapcraft.io ](https://snapcraft.io/aws-iot-greengrass) 目前執行 Snap 的裝置將繼續運作，直到進一步通知為止。不過， AWS IoT Greengrass 核心 Snap 在維護結束後將不再收到安全修補程式或錯誤修正。

### 快照概念
<a name="gg-snap-concepts"></a>

以下是基本的貼齊概念，可協助您了解如何使用貼 AWS IoT Greengrass 齊：

**[Channel](https://snapcraft.io/docs/channels)**  
快照元件，定義要安裝和追蹤哪個版本的快照以進行更新。快照會自動更新至目前頻道的最新版本。

**[介面](https://snapcraft.io/docs/interface-management)**  
授予資源存取權的快照元件，例如網路和使用者檔案。  
若要執行 AWS IoT Greengrass Snap，必須連接下列界面。請注意， `greengrass-support-no-container` 必須先連線，且絕不會中斷連線。  

```
      - greengrass-support-no-container
      - hardware-observe
      - home-for-hooks
      - hugepages-control
      - log-observe
      - mount-observe
      - network
      - network-bind
      - network-control
      - process-control
      - system-observe
```
其他界面是選用的。如果您的 Lambda 函數需要存取特定資源，您可能需要連線到適當的介面。

**[重新整理](https://snapcraft.io/docs/managing-updates)**  
快照會自動更新。`snapd` 協助程式是 snap 套件管理員，預設會每天檢查更新四次。每個更新檢查稱為重新整理。重新整理發生時，協助程式會停止、快照會更新，然後協助程式會重新啟動。

如需詳細資訊，請參閱 [Snapcraft](https://snapcraft.io/) 網站。

### snap v1 AWS IoT Greengrass .11.x 的新功能
<a name="gg-snap-whats-new"></a>

以下說明 1.11.x 版 AWS IoT Greengrass Snap 的新功能和變更。
+ 此版本僅支援`snap_daemon`以使用者 ID (UID) 和群組 (GID) 公開的使用者`584788`。
+ 此版本僅支援非容器化 Lambda 函數。
**重要**  
由於非容器化 Lambda 函數必須共用相同的使用者 (`snap_daemon`)，因此 Lambda 函數沒有彼此隔離。如需詳細資訊，請參閱[使用群組特定組態控制 Greengrass Lambda 函數的執行](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-group-config.html)。
+ 此版本支援 C、C\$1\$1、Java 8、Node.js 12.x、Python 2.7、Python 3.7 和 Python 3.8 執行時間。
**注意**  
為了避免多餘的 Python 執行期，Python 3.7 Lambda 函數實際上會執行 Python 3.8 執行期。

### 開始使用 AWS IoT Greengrass snap
<a name="gg-snap-get-started"></a>

下列程序可協助您在裝置上安裝和設定 AWS IoT Greengrass Snap。

#### 要求
<a name="gg-snap-requirements"></a>

若要執行 AWS IoT Greengrass Snap，您必須執行下列動作：
+ 在支援的 Linux 發行版本上執行 AWS IoT Greengrass Snap，例如 Ubuntu、Linux Mint、Debian 和 Fedora。
+ 在您的裝置上安裝`snapd`協助程式。包含 `snapd` `snap`工具的協助程式會管理裝置上的快照環境。

如需支援的 Linux 發行版本和安裝說明清單，請參閱 *Snap 文件*中的[安裝快照](https://snapcraft.io/docs/installing-snapd)。

#### 安裝和設定 AWS IoT Greengrass Snap
<a name="gg-snap-install-config"></a>

下列教學課程說明如何在裝置上安裝和設定 AWS IoT Greengrass Snap。

**注意**  
雖然本教學課程使用 Amazon EC2 執行個體 (x86 t2.micro Ubuntu 20.04)，但您可以使用實體硬體執行 AWS IoT Greengrass 快照，例如 Raspberry Pi。
`snapd` 協助程式預先安裝在 Ubuntu 上。

1. 在裝置的終端機中執行下列命令來安裝 `core18` Snap：

   ```
   sudo snap install core18
   ```

   `core18` 快照是[基本快照](https://snapcraft.io/docs/base-snaps)，提供具有常用程式庫的執行時間環境。此快照是從 [Ubuntu 18.04 LTS 建置而成。](http://releases.ubuntu.com/18.04/)

1. 執行下列命令`snapd`進行升級：

   ```
   sudo snap install --channel=edge snapd; sudo snap refresh --channel=edge snapd
   ```

1. 執行 `snap list`命令來檢查是否已安裝 AWS IoT Greengrass Snap。

   下列範例回應顯示 `snapd` 已安裝，但未安裝`aws-iot-greengrass`。

   ```
   Name              Version               Rev    Tracking         Publisher   Notes
   amazon-ssm-agent  3.0.161.0             2996   latest/stable/…  aws✓        classic
   core              16-2.48               10444  latest/stable    canonical✓  core
   core18            20200929              1932   latest/stable    canonical✓  base
   lxd               4.0.4                 18150  4.0/stable/…     canonical✓  -
   snapd             2.48+git548.g929ccfb  10526  latest/edge      canonical✓  snapd
   ```

1. 選擇下列其中一個選項來安裝 AWS IoT Greengrass snap 1.11.x。
   + 若要安裝 AWS IoT Greengrass snap，請執行下列命令：

     ```
     sudo snap install aws-iot-greengrass
     ```

     回應範例：

     ```
     aws-iot-greengrass 1.11.5 from Amazon Web Services (aws) installed
     ```
   + 若要從舊版遷移至 v1.11.x 或更新至最新的可用修補程式版本，請執行下列命令：

     ```
     sudo snap refresh --channel=1.11.x aws-iot-greengrass
     ```

   如同其他快照，該 AWS IoT Greengrass 快照會使用頻道來管理次要版本。快照會自動更新為目前頻道的最新可用版本。例如，如果您指定 `--channel=1.11.x`，您的 AWS IoT Greengrass snap 會更新為 v1.11.5。

   您可以執行 `snap info aws-iot-greengrass`命令以取得可用頻道的清單 AWS IoT Greengrass。

   回應範例：

   ```
   name:      aws-iot-greengrass
   summary:   AWS supported software that extends cloud capabilities to local devices.
   publisher: Amazon Web Services (aws✓)
   store-url: https://snapcraft.io/aws-iot-greengrass
   contact:   https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass
   license:   Proprietary
   description: |
     AWS IoT Greengrass seamlessly extends AWS onto edge devices so they can act locally on the data
     they generate, while still using the cloud for management, analytics, and durable storage.
     AWS IoT Greenrgrass snap v1.11.0 enables you to run a limited version of AWS IoT Greengrass with
     all necessary dependencies in a containerized environment.
     The AWS IoT Greengrass snap doesn't support connectors and machine learning (ML) inference.
     By downloading this software you agree to the Greengrass Core Software License Agreement
     (https://s3-us-west-2.amazonaws.com/greengrass-release-license/greengrass-license-v1.pdf).
     For more information, see Run AWS IoT Greengrass in a snap
     (https://docs.aws.amazon.com/greengrass/latest/developerguide/install-ggc.html#gg-snap-support) in
     the AWS IoT Greengrass Developer.
     If you need help, try the AWS IoT Greengrass tag on AWS re:Post
     (https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass) or connect with an AWS IQ expert
     (https://iq.aws.amazon.com/services/aws/greengrass).
   snap-id: SRDuhPJGj4XPxFNNZQKOTvURAp0wxKnd
   channels:
     latest/stable:    1.11.3 2021-06-15 (59) 111MB -
     latest/candidate: 1.11.3 2021-06-14 (59) 111MB -
     latest/beta:      1.11.3 2021-06-14 (59) 111MB -
     latest/edge:      1.11.3 2021-06-14 (59) 111MB -
     1.11.x/stable:    1.11.3 2021-06-15 (59) 111MB -
     1.11.x/candidate: 1.11.3 2021-06-15 (59) 111MB -
     1.11.x/beta:      1.11.3 2021-06-15 (59) 111MB -
     1.11.x/edge:      1.11.3 2021-06-15 (59) 111MB -
   ```

1. 若要存取 Lambda 函數所需的特定資源，您可以連線至其他介面。

   執行下列命令以取得 AWS IoT Greengrass 快照支援的介面清單：

   ```
   snap connections aws-iot-greengrass
   ```

   回應範例：

   ```
   Interface                Plug                                                Slot                 Notes
   camera                   aws-iot-greengrass:camera                           -                    -
   dvb                      aws-iot-greengrass:dvb                              -                    -
   gpio                     aws-iot-greengrass:gpio                             -                    -
   gpio-memory-control      aws-iot-greengrass:gpio-memory-control              -                    -
   greengrass-support       aws-iot-greengrass:greengrass-support-no-container  :greengrass-support  -
   hardware-observe         aws-iot-greengrass:hardware-observe                 :hardware-observe    manual
   hardware-random-control  aws-iot-greengrass:hardware-random-control          -                    -
   home                     aws-iot-greengrass:home-for-greengrassd             -                    -
   home                     aws-iot-greengrass:home-for-hooks                   :home                manual
   hugepages-control        aws-iot-greengrass:hugepages-control                :hugepages-control   manual
   i2c                      aws-iot-greengrass:i2c                              -                    -
   iio                      aws-iot-greengrass:iio                              -                    -
   joystick                 aws-iot-greengrass:joystick                         -                    -
   log-observe              aws-iot-greengrass:log-observe                      :log-observe         manual
   mount-observe            aws-iot-greengrass:mount-observe                    :mount-observe       manual
   network                  aws-iot-greengrass:network                          :network             -
   network-bind             aws-iot-greengrass:network-bind                     :network-bind        -
   network-control          aws-iot-greengrass:network-control                  :network-control     -
   opengl                   aws-iot-greengrass:opengl                           :opengl              -
   optical-drive            aws-iot-greengrass:optical-drive                    :optical-drive       -
   process-control          aws-iot-greengrass:process-control                  :process-control     -
   raw-usb                  aws-iot-greengrass:raw-usb                          -                    -
   removable-media          aws-iot-greengrass:removable-media                  -                    -
   serial-port              aws-iot-greengrass:serial-port                      -                    -
   spi                      aws-iot-greengrass:spi                              -                    -
   system-observe           aws-iot-greengrass:system-observe                   :system-observe      -
   ```

   如果您在插槽欄中看到連字號 (-)，則不會連接對應的界面。

1. 遵循[安裝 AWS IoT Greengrass Core 軟體](module2.md)來建立 AWS IoT 物件、Greengrass 群組、啟用安全通訊的安全資源 AWS IoT，以及 AWS IoT Greengrass Core 軟體組態檔案。組態檔案 `config.json`包含 Greengrass 核心特定的組態，例如憑證檔案和 AWS IoT 裝置資料端點的位置。
**注意**  
如果您將檔案下載到不同的裝置，請依照[此步驟](start-greengrass.md#transfer-files-to-device)將檔案傳輸至 AWS IoT Greengrass 核心裝置。

1. 對於 AWS IoT Greengrass Snap，請確定您更新 [config.json](gg-core.md#config-json) 檔案，如下所示：
   + 將 *certificateId* 的每個執行個體取代為憑證和金鑰檔案名稱中的憑證 ID。
   + 如果您下載的 Amazon 根 CA 憑證與 Amazon 根 CA 1 不同，請將 *AmazonRootCA1.pem* 的每個執行個體取代為 Amazon 根 CA 檔案的名稱。

   ```
   {
     ...
     "crypto" : {
       "principals" : {
         "SecretsManager" : {
           "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId-private.pem.keyy"
         },
         "IoTCertificate" : {
           "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId-private.pem.key",
           "certificatePath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId-certificate.pem.crt"
         }
       },
       "caPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/AmazonRootCA1.pem"
     },
     "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory",
     "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory"
   }
   ```

1. 執行下列命令來新增您的 AWS IoT Greengrass 憑證和組態檔案：

   ```
   sudo snap set aws-iot-greengrass gg-certs=/home/ubuntu/my-certs
   ```

### 部署 Lambda 函數
<a name="gg-snap-lambda"></a>

本節說明如何在 AWS IoT Greengrass Snap 上部署客戶受管 Lambda 函數。

**重要**  
AWS IoT Greengrass snap v1.11 僅支援非容器化 Lambda 函數。

1. 執行下列命令來啟動 AWS IoT Greengrass 協助程式：

   ```
   sudo snap start aws-iot-greengrass
   ```

   回應範例：

   ```
   Started.
   ```
**注意**  
如果發生錯誤，您可以使用 `snap run`命令取得詳細的錯誤訊息。如需更多故障診斷資訊，請參閱 [錯誤：無法執行下列任務：- 執行 snap "aws-iot-greengrass" (【start snap.aws-iot-greengrass.greengrassd.service】 的服務 【"greengrassd" 啟動服務命令 "start"，結束狀態為 1 的 【start snap.aws-iot-greengrass.greengrassd.service】 失敗：由於控制程序以錯誤碼結束。 如需詳細資訊，請參閱「systemctl status snap.aws-iot-greengrass.greengrassd.service」和「journalctl -xe」。)](#gg-snap-troubleshoot-snaprun)。

1. 執行下列命令以確認協助程式正在執行：

   ```
   snap services aws-iot-greengrass.greengrassd
   ```

   回應範例：

   ```
   Service                         Startup   Current  Notes
   aws-iot-greengrass.greengrassd  disabled  active   -
   ```

1. 遵循[模組 3 （第 1 部分）：上的 Lambda 函數 AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v1/developerguide/module3-I.html)來建立和部署 Hello World Lambda 函數。不過，在您部署 Lambda 函數之前，請先完成下一個步驟。

1. 請確定您的 Lambda 函數以`snap_daemon`使用者身分執行，且處於無容器模式。若要更新 Greengrass 群組的設定，請在 AWS IoT Greengrass 主控台中執行下列動作：

   1. 登入 AWS IoT Greengrass 主控台。

   1. <a name="console-gg-groups"></a>在 AWS IoT 主控台導覽窗格的**管理**下，展開 **Greengrass 裝置**，然後選擇**群組 (V1)**。

   1. 在 **Greengrass 群組**下，選擇目標群組。

   1. 在群組組態頁面的導覽窗格中，選擇 **Lambda 函數**索引標籤。

   1. 在**預設 Lambda 函數執行期環境中**，選擇**編輯**，然後執行下列動作：

      1. 對於**預設系統使用者和群組**，選擇**另一個使用者 ID/群組 ID**，然後**584788**針對**系統使用者 ID （數字）** 和**系統群組 ID （數字）** 輸入 。

      1. 針對**預設 Lambda 函數容器化**，選擇**無容器**。

      1. 選擇**儲存**。

### 停止 AWS IoT Greengrass 協助程式
<a name="gg-snap-stop"></a>

您可以使用 `snap stop`命令來停止服務。

若要停止 AWS IoT Greengrass 協助程式，請執行下列命令：

```
sudo snap stop aws-iot-greengrass
```

命令應傳回 `Stopped.`。

若要檢查您是否已成功停止 snap，請執行下列命令：

```
snap services aws-iot-greengrass.greengrassd
```

回應範例：

```
Service                         Startup   Current   Notes
aws-iot-greengrass.greengrassd  disabled  inactive  -
```

### 解除安裝 AWS IoT Greengrass Snap
<a name="gg-snap-uninstall"></a>

若要解除安裝 AWS IoT Greengrass snap，請執行下列命令：

```
sudo snap remove aws-iot-greengrass
```

回應範例：

```
aws-iot-greengrass removed
```

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

使用以下資訊來協助故障診斷 AWS IoT Greengrass Snap 的問題。

#### 取得許可拒絕錯誤。
<a name="gg-snap-troubleshoot-permission-denied"></a>

**解決方案**：許可遭拒錯誤通常是因為缺少界面。如需缺少界面的清單和詳細的故障診斷資訊，您可以使用 `snappy-debug`工具。

執行下列命令來安裝 工具。

```
sudo snap install snappy-debug
```

回應範例：

```
snappy-debug 0.36-snapd2.45.1 from Canonical✓ installed
```

在個別終端機工作階段中執行 `sudo snappy-debug`命令。操作會持續進行，直到發生許可遭拒錯誤為止。

例如，如果您的 Lambda 函數嘗試讀取 `$HOME`目錄中的檔案，您可能會收到下列回應：

```
INFO: Following '/var/log/syslog'. If have dropped messages, use:
INFO: $ sudo journalctl --output=short --follow --all | sudo snappy-debug
kernel.printk_ratelimit = 0
= AppArmor =
Time: Dec  6 04:48:26
Log: apparmor="DENIED" operation="mknod" profile="snap.aws-iot-greengrass.greengrassd" name="/home/ubuntu/my-file.txt" pid=12345 comm="touch" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
File: /home/ubuntu/my-file.txt (write)
Suggestion:
* add 'home' to 'plugs'
```

此範例顯示建立 `/home/ubuntu/my-file.txt` 檔案會導致 許可錯誤。它也建議您將 `home`新增至 `plugs`。不過，此語句不適用。`home-for-greengrassd` 和 `home-for-hooks`插頭只會獲得唯讀存取權。

如需詳細資訊，請參閱 [Snap 文件中的 Snappy-debug](https://snapcraft.io/docs/debug-snaps#heading--snappy-debug) snap。 **

#### 錯誤：無法執行下列任務：- 執行 snap "aws-iot-greengrass" (【start snap.aws-iot-greengrass.greengrassd.service】 的服務 【"greengrassd" 啟動服務命令 "start"，結束狀態為 1 的 【start snap.aws-iot-greengrass.greengrassd.service】 失敗：由於控制程序以錯誤碼結束。 如需詳細資訊，請參閱「systemctl status snap.aws-iot-greengrass.greengrassd.service」和「journalctl -xe」。)
<a name="gg-snap-troubleshoot-snaprun"></a>

**解決方案**：當`snap start aws-iot-greengrass`命令無法啟動 AWS IoT Greengrass Core 軟體時，您可能會看到此錯誤。

如需更多疑難排解資訊，請執行下列命令：

```
sudo snap run aws-iot-greengrass.greengrassd
```

回應範例：

```
Couldn't find /snap/aws-iot-greengrass/44/greengrass/config/config.json.
```

此範例顯示 AWS IoT Greengrass 找不到 `config.json` 檔案。您可以檢查組態和憑證檔案。

#### /var/snap/aws-iot-greengrass/current/ggc-write-directory/packages/1.11.5/rootfs/merged 不是絕對路徑或是符號連結。
<a name="gg-snap-troubleshoot-lambda"></a>

**解決方案**： AWS IoT Greengrass Snap 僅支援非容器化 Lambda 函數。請確定您在無容器模式下執行 Lambda 函數。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 1 開發人員指南*》中的[選擇 Lambda 函數容器化時的考量](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-group-config.html#no-container-mode)事項。

#### 在您執行 sudo snap refresh snapd 命令後，Snapd 協助程式無法重新啟動。
<a name="gg-snap-troubleshoot-snapd"></a>

**解決方案**：遵循 中的步驟 6 到 8[安裝和設定 AWS IoT Greengrass Snap](#gg-snap-install-config)，將 AWS IoT Greengrass 憑證和組態檔案新增至 AWS IoT Greengrass 快照。

## 封存 AWS IoT Greengrass Core 軟體安裝
<a name="archive-ggc-version"></a>

升級到新版本的 AWS IoT Greengrass Core 軟體時，您可以封存目前安裝的版本。這會保留您目前的安裝環境，讓您可以在相同硬體上測試新的軟體版本。這也可讓您隨時輕鬆轉返至封存版本。

**封存目前安裝並安裝新版本**

1. 下載您想要升級至的 [AWS IoT Greengrass 核心軟體](what-is-gg.md#gg-core-download-tab)安裝套件。

1. 將套件複製到目的地核心裝置。如需示範傳輸檔案的說明，請參閱此[步驟](start-greengrass.md#transfer-files-to-device)。
**注意**  
稍後請將您目前的憑證、金鑰和組態檔案複製到新的安裝。

   在您的核心裝置終端機以下列步驟執行命令。

1. 請確認 Greengrass 協助程式在核心裝置上已停止。

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

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

      若輸出的 `root` 含有 `/greengrass/ggc/packages/ggc-version/bin/daemon` 項目，則精靈有在運作。
**注意**  
編寫此程序時假設 AWS IoT Greengrass Core 軟體已安裝在 `/greengrass`目錄中。

   1. 停止 協助程式：

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

1. 將目前的 Greengrass 根目錄移到不同的目錄。

   ```
   sudo mv /greengrass /greengrass_backup
   ```

1. 在核心裝置上將新的軟體解壓縮。取代命令中的 *os-architecture* 和 *version* 預留位置。

   ```
   sudo tar –zxvf greengrass-os-architecture-version.tar.gz –C /
   ```

1. 將封存的憑證、金鑰和組態檔案複製到新的安裝。

   ```
   sudo cp /greengrass_backup/certs/* /greengrass/certs
   sudo cp /greengrass_backup/config/* /greengrass/config
   ```

1. 啟動協助程式：

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

現在，您可以執行群組部署以測試新的安裝。如果發生故障，您可以還原封存的安裝。

**還原封存的安裝**

1. 停止協助程式。

1. 刪除新的 `/greengrass` 目錄。

1. 將 `/greengrass_backup` 目錄移回 `/greengrass`。

1. 啟動協助程式。