AWS IoT Greengrass Core ソフトウェアをインストールします。 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 は、2023 年 6 月 30 日に延長ライフサイクルフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日付を過ぎる AWS IoT Greengrass V1 と、 は機能、機能強化、バグ修正、セキュリティパッチを提供する更新プログラムをリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行する AWS IoT Greengrass Version 2ことを強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォームのサポートが追加されます

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

AWS IoT Greengrass Core ソフトウェアをインストールします。

AWS IoT Greengrass Core ソフトウェアは、AWS の機能を AWS IoT Greengrass コアデバイスに拡張することで、ローカルデバイスで生成したデータをローカルで操作できるようにします。

AWS IoT Greengrass には、AWS IoT Greengrass Core ソフトウェアをインストールするためのオプションがいくつか用意されています。

AWS IoT Greengrass は、AWS IoT Greengrass Core ソフトウェアを実行するコンテナ化された環境も提供します。

 

AWS IoT Greengrass Core ソフトウェアパッケージのダウンロードと抽出

プラットフォームで tar.gz ファイルとしてダウンロードしてデバイスで抽出する AWS IoT Greengrass Core ソフトウェアを選択します。最新バージョンのソフトウェアをダウンロードできます。詳細については、「AWS IoT Greengrass Core ソフトウェア」を参照してください。

 

Greengrass デバイスのセットアップスクリプトを実行する

Greengrass デバイスのセットアップを実行して、デバイスの設定、最新バージョンの AWS IoT Greengrass Core ソフトウェアのインストール、および Hello World Lambda 関数のデプロイを数分で行うことができます。詳細については、「クイックスタート: Greengrass デバイスのセットアップ」を参照してください。

 

APT リポジトリからの AWS IoT Greengrass Core ソフトウェアのインストール

重要

2022 年 2 月 11 日現在、AWS IoT Greengrass Core ソフトウェアを APT リポジトリからインストールまたは更新することはできなくなりました。AWS IoT Greengrass リポジトリを追加したデバイスで、ソースリストからリポジトリを削除する必要があります。APT リポジトリからソフトウェアを実行するデバイスは、引き続き正常に動作します。tar ファイル を使用して AWS IoT Greengrass Core ソフトウェアを更新することをお勧めします。

AWS IoT Greengrass が提供する APT リポジトリには、次のパッケージが含まれています。

  • aws-iot-greengrass-core。AWS IoT Greengrass Core ソフトウェアをインストールします。

  • aws-iot-greengrass-keyring。AWS IoT Greengrass パッケージリポジトリの署名に使用する GnuPG (GPG) キーをインストールします。

    このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約に同意したと見なされます。

systemd スクリプトを使用した Greengrass デーモンのライフサイクルの管理

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 コアソフトウェアをアンインストールする

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
  2. AWS IoT Greengrass コアソフトウェアをソースリストから削除します。詳細については、「AWS IoT Greengrass コアソフトウェアのリポジトリソースを削除します。」を参照してください。

AWS IoT Greengrass コアソフトウェアのリポジトリソースを削除します。

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

Docker コンテナでの AWS IoT Greengrass の実行

AWS IoT Greengrass には、Docker コンテナで AWS IoT Greengrass Core ソフトウェアを簡単に実行できるように Dockerfile と Docker イメージが用意されています。詳細については、「AWS IoT Greengrass Docker ソフトウェア」を参照してください。

注記

Docker アプリケーションは、Greengrass コアデバイスで実行することもできます。そのためには、Greengrass Docker アプリケーションのデプロイコネクタを使用します。

 

スナップでの AWS IoT Greengrass の実行

AWS IoT Greengrass スナップ 1.11.x では、限定バージョンの AWS IoT Greengrass をすべての必要な依存関係と共に、便利なソフトウェアパッケージを通じて、コンテナ化された環境で実行できるようにします。

2023 年 12 月 31 日に、AWS IoT Greengrass が snapcraft.io で公開されている AWS IoT Greengrass Core ソフトウェアバージョン 1.11.x スナップのメンテナンスを終了します。現在スナップを実行しているデバイスは、追って通知があるまで引き続き動作します。ただし、メンテナンスが終了した後、AWS IoT Greengrass Core スナップにはセキュリティパッチやバグ修正は適用されなくなります。

スナップの概念

AWS IoT Greengrass スナップの使い方を理解しやすくするために重要なスナップの概念を以下に示します。

チャンネル

インストールされ、更新のために追跡されるスナップのバージョンを定義するスナップコンポーネント。スナップは、現在のチャネルの最新バージョンに自動的に更新されます。

インターフェイス

ネットワークやユーザーファイルなどのリソースへのアクセスを許可するスナップコンポーネント。

AWS IoT Greengrass スナップを実行するには、次のインターフェイスが接続されている必要があります。最初に 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 関数が特定のリソースにアクセスする必要がある場合は、適切なインターフェイスに接続する必要があります。

更新

スナップは自動的に更新されます。snapd デーモンは、デフォルトで 1 日に 4 回更新をチェックするスナップパッケージマネージャーです。各更新チェックは更新と呼ばれます。更新が発生すると、デーモンが停止し、スナップが更新され、デーモンが再起動されます。

詳細については、Snapcraft のウェブサイトを参照してください。

AWS IoT Greengrass スナップ v1.11.x の新機能

以下では、AWS IoT Greengrass スナップのバージョン 1.11.x の新機能と変更点について説明します。

  • このバージョンでは、ユーザー ID (UID) およびグループ (GID) の 584788 として公開された snap_daemon ユーザーのみサポートします。

  • このバージョンでは、コンテナ化されていない Lambda 関数のみをサポートしています。

    重要

    コンテナ化されていない Lambda 関数は同じユーザー (snap_daemon) を共有する必要があるため、Lambda 関数は互いに分離されません。詳細については、「Greengrass Lambda 関数のグループ固有の設定による実行の制御」を参照してください。

  • このバージョンでは、C、C++、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 スナップの使用を開始する

次の手順で、AWS IoT Greengrass スナップをデバイス上にインストールし、設定することができます。

要件

AWS IoT Greengrass スナップを実行するには、以下を実行する必要があります。

  • AWS IoT Greengrass スナップを、Ubuntu、Linux Mint、Debian、Fedora など、サポートされている Linux ディストリビューションで実行します。

  • snapd デーモンをデバイスにインストールします。snap ツールを含む snapd デーモンは、デバイス上のスナップ環境を管理します。

サポートされている Linux ディストリビューションのリストとインストール手順については、スナップに関する資料の「Installing snapd」(snapd をインストールする) を参照してください。

AWS IoT Greengrass スナップをインストールして設定します。

以下のチュートリアルでは、AWS IoT Greengrass スナップをデバイス上にインストールして設定する方法を示します。

注記
  • このチュートリアルでは Amazon EC2 インスタンス (x86 t2.micro Ubuntu 20.04) を使用しますが、Raspberry Pi などの物理ハードウェアを使用して AWS IoT Greengrass スナップを実行することができます。

  • snapd デーモンは Ubuntu にプリインストールされています。

  1. 使用するデバイスのターミナルで次のコマンドを実行して、core18 スナップをインストールします。

    sudo snap install core18

    core18 スナップとは、一般的に使用されるライブラリを持つランタイム環境を提供するベーススナップです。このスナップは、Ubuntu 18.04 LTS から構築されます。

  2. 次のコマンドを実行して snapd をアップグレードします。

    sudo snap install --channel=edge snapd; sudo snap refresh --channel=edge snapd
  3. AWS IoT Greengrass スナップがインストールされているかどうかを確認するには、snap list コマンドを実行します。

    次のレスポンスの例では、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
  4. AWS IoT Greengrass スナップ 1.11.x をインストールするには、次のいずれかのオプションを選択します。

    • AWS IoT Greengrass スナップをインストールするには、次のコマンドを使用します。

      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 スナップは 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 -
  5. 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 -

    [Slot] (スロット) 列がハイフン (-) になっている場合、対応するインターフェイスは接続されていません。

  6. AWS IoT のモノ、Greengrass グループ、AWS IoT との安全な通信を可能にするセキュリティリソース、および AWS IoT Greengrass Core ソフトウェア設定ファイルを作成するには、「AWS IoT Greengrass Core ソフトウェアのインストール」を参照してください。設定ファイルの config.json には、例えば、証明書ファイルの場所や AWS IoT デバイスデータエンドポイントなど、Greengrass コアに固有の設定が含まれます。

    注記

    ファイルを別のデバイスにダウンロードした場合は、この手順に従って、ファイルを AWS IoT Greengrass コアデバイスに転送します。

  7. AWS IoT Greengrass スナップの場合、config.json ファイルを次に示すように更新します。

    • certificateId の各インスタンスを証明書とキーファイルの名前に含まれる証明書 ID と置き換えます。

    • Amazon ルート CA 1 とは異なる Amazon ルート CA 証明書をダウンロードした場合は、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" }
  8. 次のコマンドを実行して、AWS IoT Greengrass 証明書と設定ファイルを追加します。

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

Lambda 関数のデプロイ

このセクションでは、カスタマー管理の Lambda 関数を AWS IoT Greengrass スナップにデプロイする方法を示します。

重要

AWS IoT Greengrass スナップ v1.11 は、コンテナ化されていない Lambda 関数のみをサポートします。

  1. 次のコマンドを実行して AWS IoT Greengrass デーモンを開始します。

    sudo snap start aws-iot-greengrass

    レスポンスの例:

    Started.
  2. デーモンが実行中であることを確認するには、次のコマンドを実行します。

    snap services aws-iot-greengrass.greengrassd

    レスポンスの例:

    Service Startup Current Notes aws-iot-greengrass.greengrassd disabled active -
  3. モジュール 3 (パート 1): AWS IoT Greengrass での Lambda 関数」に従って、Hello World Lambda 関数を作成し、デプロイします。ただし、Lambda 関数をデプロイする前に、次のステップを完了してください。

  4. Lambda 関数が snap_daemon ユーザーとして、コンテナなしモードで実行されていることを確認します。Greengrass グループの設定を更新するには、AWS IoT Greengrass コンソールで以下を実行します。

    1. AWS IoT Greengrass コンソールにサインインします。

    2. AWS IoT コンソールのナビゲーションペインの [Manage](管理)で、[Greengrass devices](Greengrass デバイス)を展開して、[Group (V1)](グループ (V1))を選択します。

    3. [Greengrass groups] (グリーングラスのグループ) で、対象グループを選択します。

    4. ナビゲーションペインのグループ設定ページで、[Lambda functions] (Lambda 関数) タブを選択します。

    5. [Default Lambda function runtime environment] (デフォルトの Lambda 関数ランタイム環境) から、[Edit] (編集) を選択して、次を行います。

      1. [Default system user and group] (デフォルトシステムユーザーとグループ) には、[Another user ID/group ID] (別のユーザー ID とグループ ID) を選択し、[System user ID (number)] (システムユーザー ID (数値)) と [System group ID (number)] (システムグループ ID (数値)) の両方に 584788 を入力します。

      2. [Default Lambda function containerization] (デフォルト Lambda 関数のコンテナ化) には、[No container] (コンテナなし) を選択します。

      3. [保存] を選択します。

AWS IoT Greengrass デーモンを停止する

snap stop コマンドを使用して、サービスを停止することができます。

AWS IoT Greengrass デーモンを停止するには、次のコマンドを実行します。

sudo snap stop aws-iot-greengrass

コマンドが Stopped. を返します。

スナップが正常に停止したかどうかを確認するには、次のコマンドを実行します。

snap services aws-iot-greengrass.greengrassd

レスポンスの例:

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

AWS IoT Greengrass スナップをアンインストールする

AWS IoT Greengrass をアンインストールするには、次のコマンドを実行します。

sudo snap remove aws-iot-greengrass

レスポンスの例:

aws-iot-greengrass removed

AWS IoT Greengrass スナップのトラブルシューティング

AWS IoT Greengrass スナップの問題のトラブルシューティングには、以下の情報が役立ちます。

「アクセス許可が拒否されました」というエラーを受け取った。

解決策:「アクセス許可が拒否されました」というエラーは、多くの場合、インターフェイスがないために発生します。欠落しているインターフェイスのリストと詳細なトラブルシューティング情報については、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 ファイルを作成したら、アクセス許可エラーが返されたことを示しています。また、homeplugs に追加するように提案しています。ただし、この提案は適用されません。home-for-greengrassd プラグおよび home-for-hooks プラグには読み取り専用アクセスのみが与えられます。

詳細については、スナップに関する資料の「The snappy-debug snap」(snappy-debug スナップ) を参照してください。

error: は、次のタスクを実行できません: - - サービス ["greengrassd"] のスナップ "" aws-iot-greengrass([start snap.aws-iot-greengrass.greengrassd.service] が終了ステータス 1: Job for snapaws-iot-greengrass.greengrassd.service failed for snap.greengrassd.service がエラーコードで終了したため失敗しました。 詳細については、「systemctl status snapaws-iot-greengrass.greengrassd.service」および「journalctl -xe」を参照してください。)

解決策: 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 は絶対パスではないか、シンボリックリンクです。

解決策: AWS IoT Greengrass スナップは、コンテナ化されていない Lambda 関数のみをサポートします。Lambda 関数がコンテナなしモードで実行されていることを確認します。詳細については、「AWS IoT Greengrass Version 1 デベロッパーガイド」の「Lambda 関数のコンテナ化を選択する場合の考慮事項」を参照してください。

sudo snap refresh snapd コマンドを実行した後、snapd デーモンの再起動に失敗した。

解決策: AWS IoT Greengrass スナップをインストールして設定します。 の手順 6~8 に従って、AWS IoT Greengrass 証明書および設定ファイルを AWS IoT Greengrass スナップに追加します。

AWS IoT Greengrass コアソフトウェアのインストールのアーカイブ

AWS IoT Greengrass Core ソフトウェアを新しいバージョンにアップグレードすると、現在インストールされているバージョンをアーカイブすることができます。これにより現在のインストール環境が維持されるため、同じハードウェア上で新しいソフトウェアバージョンをテストできます。これにより、何らかの理由であなたのアーカイブバージョンに簡単にロールバックすることもできます。

現在のインストールをアーカイブして新しいバージョンをインストールするには
  1. アップグレードする AWS IoT Greengrass Core ソフトウェアインストールパッケージをダウンロードします。

  2. パッケージを宛先コアデバイスにコピーします。ファイルを転送する方法を示す手順については、こちらのステップを参照してください。

    注記

    現在の証明書、キー、および設定ファイルを後で新しいインストールにコピーします。

    コアデバイス端末で次のステップのコマンドを実行します。

  3. コアデバイスで Greengrass デーモンが停止していることを確認します。

    1. デーモンが実行中であるかどうかを確認するには

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

      出力に root/greengrass/ggc/packages/ggc-version/bin/daemon エントリが含まれる場合、デーモンは実行されています。

      注記

      この手順は、AWS IoT Greengrass Core ソフトウェアが /greengrass ディレクトリにインストールされていることを前提に書かれています。

    2. デーモンを停止するには

      cd /greengrass/ggc/core/ sudo ./greengrassd stop
  4. 現在の Greengrass ルートディレクトリを別のディレクトリに移動します。

    sudo mv /greengrass /greengrass_backup
  5. コアデバイス上の新しいソフトウェアを解凍します。コマンドの os アーキテクチャプレースホルダーとバージョンプレースホルダーを交換します。

    sudo tar –zxvf greengrass-os-architecture-version.tar.gz –C /
  6. アーカイブされた証明書、キー、および設定ファイルを後で新しいインストールにコピーします。

    sudo cp /greengrass_backup/certs/* /greengrass/certs sudo cp /greengrass_backup/config/* /greengrass/config
  7. デーモンを開始します。

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

これで、新しいインストールをテストするためのグループデプロイを作成できます。何らかの失敗が発生した場合は、アーカイブされたインストールを復元することができます。

アーカイブされたインストールを復元するには
  1. デーモンを停止します。

  2. 新しい /greengrass ディレクトリを削除します。

  3. /greengrass_backup ディレクトリを /greengrass に戻します。

  4. デーモンを開始します。