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

AWS IoT Greengrass バージョン 1 のドキュメントを表示しています。AWS IoT Greengrass バージョン 2 は AWS IoT Greengrass の最新メジャーバージョンです。AWS IoT Greengrass バージョン 2 の使用の詳細についてはAWS IoT Greengrass V2 開発者ガイドを参照してください

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

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 ソフトウェアのインストール

Advanced Package Tool (APT) パッケージ管理システムを使用して、最新バージョンの 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 ソフトウェアのライセンス契約に同意したと見なされます。

Considerations

apt コマンドを使用して AWS IoT Greengrass Core ソフトウェアをインストールする場合は、次の考慮事項に注意してください。

AWS IoT Greengrass Core ソフトウェアは、ルートディレクトリにインストールされます。

apt コマンドは、ルートファイルシステムの AWS IoT Greengrass ディレクトリに greengrass Core ソフトウェアをインストールします。/greengrass がすでに存在する場合、このコマンドは新しいソフトウェアバージョンをインストールします。ただし、グループ情報やコア設定は上書きされません。

無線通信 (OTA) による更新はサポートされていません。

APT を使用してコアデバイス上の AWS IoT Greengrass Core ソフトウェアをアップグレードできますが、 が提供する安全な更新パスはサポートされませんAWS IoT GreengrassOTA 更新エージェント。OTA 更新エージェント は、 AWS IoT Greengrass または tar.gz ファイルのダウンロードと抽出 インストールオプションを使用するときにインストールされる Greengrass デバイスのセットアップスクリプトを実行する Core ソフトウェアパッケージに含まれているソフトウェアコンポーネントです。OTA 更新エージェント は、更新が失敗した場合に更新をロールバックした後でもコアが引き続き機能することを保証します。詳細については、「 」を参照してくださいAWS IoT Greengrass Core ソフトウェアの OTA 更新

APT はデフォルトで使用可能な最新バージョンをインストールします。

デフォルトの apt install コマンドを使用すると、使用可能な最新バージョンの AWS IoT Greengrass Core ソフトウェアがインストールされます。以前のバージョンの AWS IoT Greengrass Core ソフトウェアを実行していて、そのバージョンで利用可能な最新のパッチリリースにのみアップグレードする場合はapt install、コマンドでそのバージョンを指定する必要があります。たとえば、次のコマンドは AWS IoT Greengrass Core ソフトウェアの v1 をインストールします。

sudo apt install aws-iot-greengrass-core=1.10.3-1

AWS IoT Greengrass Core ソフトウェアの任意のバージョンに使用可能な最新のパッチのみインストールできます。最新のパッチをインストールした後で、APT を使用してそのバージョンの以前のパッチリリースをインストールすることはできません。代わりに、ソフトウェアを手動でダウンロードしてインストールする必要があります。AWS IoT Greengrass Core ソフトウェアの特定のバージョンについてはAWS IoT Greengrass Core ソフトウェアのバージョン、「」を参照してください。

キーリングパッケージは最新の状態にしておくことをお勧めします。

aws-iot-greengrass-keyring パッケージを最新の状態にしておくと、AWS IoT Greengrass APT リポジトリの認証に使用される GPG キーの更新を受け取ることができます。また、AWS IoT Greengrass Core ソフトウェアをより簡単にアップグレードできます。これらの信頼されたキーは /etc/apt/trusted.gpg.d/ にインストールされます。パブリックキーは 2 年間有効です。有効期限が切れた場合は、キーリングパッケージを再設定する必要があります。

wget -O aws-iot-greengrass-keyring.deb https://d1onfpft10uf5o.cloudfront.net/greengrass-apt/downloads/aws-iot-greengrass-keyring.deb sudo dpkg -i aws-iot-greengrass-keyring.deb
重要

万一、AWS IoT Greengrass が管理するキーが侵害された場合は、aws-iot-greengrass-keyring パッケージを更新して、侵害されたキーを新しいキーに置き換える必要があります。詳細については、AWS カスタマーサポートにお問い合わせください。

Requirements

apt を使用した AWS IoT Greengrass Core ソフトウェアのインストールには、次の要件が適用されます。

  • デバイスで、次のいずれかのプラットフォームが実行されている必要があります。

    アーキテクチャ

    OS

    配信

    Armv8 (AArch64)

    Linux

    Arch Linux

    Armv7l

    Linux

    Raspbian Buster、2019-07-10

    x86_64

    Linux

    Ubuntu 18.04

  • デバイスに対するルートアクセス権が必要です。

  • 次の手順のステップを完了するには、デバイスにシェルコマンド sudo、、、wgetcurldpkgechounzipおよび がインストールされている必要がありますtar

apt を使用して AWS IoT Greengrass Core ソフトウェアをインストールする

APT パッケージ管理システムを使用して AWS IoT Greengrass Core ソフトウェアをデバイスにインストールできます。ソフトウェアをインストールする前に、いくつかのコア設定ステップが必要になる場合があります。

次の手順では、デバイスのターミナルウィンドウでコマンドを実行します。

コアを設定するには

  1. AWS IoT Greengrass を初めて設定する場合は、コアを設定する必要があります。adduser または addgroup コマンドを使用できない場合はuseradd、代わりに groupadd または を使用します。

    1. ggc_user および ggc_group システムアカウントを作成します。

      sudo adduser --system ggc_user sudo addgroup --system ggc_group
    2. コアデバイスの証明書とキー、およびコア設定ファイルを設定します。

      1. AWS IoT Greengrass の AWS IoT の設定」のステップに従って、Greengrass グループを作成してコアを登録します。このプロセスでは、ダウンロードするセキュリティリソースパッケージも生成されます。このパッケージは、コアデバイス証明書、パブリック/プライベートキー、およびコア設定ファイルを含む tar.gz ファイルです。ファイル名は、10 桁のハッシュで始まります (例: c6973960cc-setup.tar.gz)。このハッシュは、証明書とキーファイルの名前にも使用されます。

        AWS IoT Greengrass Core ソフトウェアをダウンロードするステップ 11 はスキップします。

      2. パッケージをコアデバイスに転送し、次のコマンドを実行してセキュリティリソースをインストールします。置換 hash tar.gz ファイルからの 10 10-digitハッシュを持つ 。

        sudo mkdir -p /greengrass sudo tar -xzvf hash-setup.tar.gz -C /greengrass
      3. ルート CA 証明書をダウンロードします。適切なルート CA 証明書の選択については、 https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html 開発者ガイドのAWS IoT Core「サーバー認証」を参照してください。

        次の例では AmazonRootCA1.pem をダウンロードします。を使用するにはcurl、コマンドwget -Oの を に置き換えますcurl

        cd /greengrass/certs/ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem

      次の手順では、証明書とキーを /greengrass/certs にインストールし、設定ファイルを /greengrass/config にインストールします。詳細については、「 」を参照してくださいAWS IoT Greengrass Core 設定ファイル

  2. AWS IoT Greengrass の依存関係チェッカーをダウンロードして実行します。依存関係チェッカーでは、AWS IoT Greengrass Core ソフトウェアに必要なすべての依存関係があることを確認します。特定のパッチバージョンから別のパッチバージョン (例: v1.10.2 から v1.10.3) にアップグレードする場合は、このステップをスキップできます。

    1. スクリプトをダウンロードするディレクトリで、次のコマンドを実行します。を使用するにはcurl、コマンドwgetの を に置き換えますcurl

      mkdir greengrass-dependency-checker-GGCv1.11.x cd greengrass-dependency-checker-GGCv1.11.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip unzip greengrass-dependency-checker-GGCv1.11.x.zip cd greengrass-dependency-checker-GGCv1.11.x sudo ./check_ggc_dependencies | more
    2. more が表示されている場所で、Spacebar キーを押すと、出力の表示が切り替わります。

      • Greengrass グループで ストリームマネージャーが有効になっている場合は、グループをデプロイする前に Java 8 ランタイムもインストールする必要があります。この機能は、コンソールで [Default Group creationAWS IoT Greengrass (デフォルトのグループ作成)] ワークフローを使用してグループを作成すると、デフォルトで有効になります。

      • ターゲット Lambda ランタイム (Python 3.8 など) をインストールし、その他の欠落しているオプションのランタイム前提条件に関する警告は無視できます。

      • 欠落しているシェルコマンドに関する警告は無視できます。これらは、このインストールに含まれていない OTA 更新エージェント で必要になります。

       

AWS IoT Greengrass Core ソフトウェアをインストールするには

  1. AWS IoT Greengrass キーリングパッケージをインストールし、リポジトリを追加します。を使用するにはcurl、コマンドwget -Oの を に置き換えますcurl

    wget -O aws-iot-greengrass-keyring.deb https://d1onfpft10uf5o.cloudfront.net/greengrass-apt/downloads/aws-iot-greengrass-keyring.deb sudo dpkg -i aws-iot-greengrass-keyring.deb echo "deb https://dnw9lb6lzp2d8.cloudfront.net stable main" | sudo tee /etc/apt/sources.list.d/greengrass.list
    注記

    デバイスのキーリングパッケージを最新の状態にしておく場合、このステップは、APT リポジトリから AWS IoT Greengrass Core ソフトウェアを初めてインストールするときにのみ必要です。

  2. パッケージのリストを更新します。

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

    sudo apt install aws-iot-greengrass-core
  4. Greengrass デーモンを開始します。次のコマンドでは、 パッケージにインストールされた systemd スクリプトaws-iot-greengrass-coreを使用します。

    systemctl start greengrass.service systemctl status greengrass.service

    出力に表示された Active の状態が active (running) である場合、デーモンは正常に開始しています。

 

APT リポジトリの使用を停止するには

AWS IoT Greengrass で APT リポジトリの使用を停止する場合は、パッケージを削除し、ソースリストを更新します。

注記

remove コマンドはパッケージを削除しますが、設定情報は削除されません。すべての設定情報 (デバイス証明書、グループ情報、ログファイルなど) も完全に削除する場合は、次のコマンドの removepurge に置き換えます。

sudo apt remove aws-iot-greengrass-core aws-iot-greengrass-keyring sudo rm /etc/apt/sources.list.d/greengrass.list sudo apt update

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

aws-iot-greengrass-core パッケージは、systemd Core ソフトウェア (デーモン) のライフサイクルの管理に使用できる AWS IoT Greengrass スクリプトもインストールします。

  • 起動時に Greengrass デーモンを開始するには:

    systemctl enable greengrass.service
  • Greengrass デーモンを開始するには:

    systemctl start greengrass.service
  • Greengrass デーモンを停止するには:

    systemctl stop greengrass.service
  • Greengrass デーモンのステータスを確認するには:

    systemctl status greengrass.service

 

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 snap v1 では、コンテナ化された環境で、必要なすべての依存関係とともに、便利なソフトウェアパッケージAWS IoT Greengrassを使用して の限定バージョンを実行できます。

注記

AWS IoT Greengrass スナップは AWS IoT Greengrass Core ソフトウェア v1 で利用できます。 AWS IoT Greengrass は v1 のスナップを提供しません。サポートされていないバージョンでは、バグ修正や更新プログラムは受けられません。

AWS IoT Greengrass スナップは、コネクタと機械学習 (ML) 推論をサポートしていません。

スナップの概念

スナップの使用方法を理解するのに役立つ重要な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 の最新情報

以下では、 AWS IoT Greengrass スナップのバージョン 1.11.0 で更新および更新された内容について説明します。

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

  • このバージョンでは、コンテナ化されていない 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 スナップをインストールして設定するのに役立ちます。

Requirements

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

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

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

サポートされている Linux ディストリビューションのリストとインストール手順については、Snap ドキュメントの「Installing snapd」を参照してください

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

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

注記
  • このチュートリアルでは Amazon EC2 インスタンス (x86 t2 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
    注記

    snapd AWS IoT Greengrassスナップのサポートは、安定したチャネルに達していません。--channel=edge の代わりに を使用することをお勧めします--channel=stable

  3. snap list コマンドを実行して、AWS IoT Greengrassスナップがインストールされているかどうかを確認します。

    次のレスポンスの例は、 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、snap v1 をインストールします。

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

      sudo snap install aws-iot-greengrass

      レスポンスの例:

      aws-iot-greengrass 1.11.0 from Amazon Web Services (aws✓) installed
    • v1 から v1 に移行するか、最新バージョンに更新するには、次のコマンドを実行します。

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

    他のスナップと同様に、AWS IoT Greengrassスナップはチャネルを使用してマイナーバージョンを管理します。スナップは、現在のチャネルの最新バージョンに自動的に更新されます。たとえば、 を指定した場合--channel=1.8.x、AWS IoT Greengrassスナップは v1 に更新されます。

    コマンド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://forums.aws.amazon.com/forum.jspa?forumID=254&start=0 license: unset 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 Greenrgass 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 forum (https://forums.aws.amazon.com/forum.jspa?forumID=254) or connect with an AWS IQ expert (https://iq.aws.amazon.com/services/aws/greengrass). services: aws-iot-greengrass.greengrassd: forking, disabled, inactive snap-id: SRDuhPJGj4XPxFNNZQKOTvURAp0wxKnd tracking: latest/stable refresh-date: today at 01:19 UTC channels: latest/stable: 1.11.0 2020-12-04 (44) 111MB - latest/candidate: 1.11.0 2020-12-04 (44) 111MB - latest/beta: 1.11.0 2020-12-04 (44) 111MB - latest/edge: 1.11.0 2020-12-01 (44) 111MB - 1.8.x/stable: 1.8.4 2020-12-01 (4) 98MB - 1.8.x/candidate: 1.8.4 2020-12-01 (4) 98MB - 1.8.x/beta: ↑ 1.8.x/edge: ↑ installed: 1.11.0 (44) 111MB -
  5. AWS IoT Greengrass スナップを実行するには、次のインターフェイスを接続します。

    重要

    最初に接続greengrass-support-no-containerして、切断しないようにする必要があります。

    sudo snap connect aws-iot-greengrass:greengrass-support-no-container sudo snap connect aws-iot-greengrass:hardware-observe sudo snap connect aws-iot-greengrass:home-for-hooks sudo snap connect aws-iot-greengrass:hugepages-control sudo snap connect aws-iot-greengrass:log-observe sudo snap connect aws-iot-greengrass:mount-observe sudo snap connect aws-iot-greengrass:network sudo snap connect aws-iot-greengrass:network-bind sudo snap connect aws-iot-greengrass:network-control sudo snap connect aws-iot-greengrass:process-control sudo snap connect aws-iot-greengrass:system-observe
  6. 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] 列にハイフン (-) が表示されている場合、対応するインターフェイスは接続されていません。

  7. AWS IoT Greengrass の設定」に従って Greengrass グループAWS IoTを作成し、セキュリティリソースと設定ファイルをダウンロードします (例: c6973960cc-setup.tar.gz)。

    この圧縮ファイルには、AWS IoT Core と、Greengrass コア固有の設定情報を含む config.json ファイル間の安全な通信を可能にするコアデバイス証明書および暗号化キーが含まれています。この情報には、証明書ファイルの場所と AWS IoT Core エンドポイントが含まれます。

    注記

    別のデバイスにファイルをダウンロードした場合は、コアデバイスの AWS IoT Greengrass [Start (開始)] の最初の 2 つのステップに従ってファイルをAWS IoT Greengrass コアデバイスに転送します。

  8. AWS IoT Greengrass スナップについては、次に示すように config.json ファイルを必ず更新してください。

    • は、セキュリティリソースと設定ファイル名に使用される 10-digit 桁のハッシュ番号hashに置き換えます。

    • tar -xzf hash-setup.tar.gz -C my-certs/ コマンドを実行して、 hash-setup.tar.gz ファイルを解凍します。

    { ... "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/hash.private.key", "certificatePath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/root.ca.pem" }, "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory", "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory" }
  9. 次のコマンドを実行して、AWS IoT Greengrass証明書と設定ファイルを追加します。

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

Lambda 関数のデプロイ

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

重要

AWS IoT Greengrass snap v1 では、コンテナ化されていない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) に従う: の Lambda 関数AWS IoT Greengrassで Hello World Lambda 関数を作成してデプロイします。ただし、 Lambda 関数をデプロイする前に、次のステップを完了します。

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

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

    2. AWS IoT コンソール のナビゲーションペインで、[Greengrass]、[Classic (V1)]、[グループ] の順に選択します。

    3. [Greengrass グループ] で、ターゲットグループを選択します。

    4. グループの設定ページで、ナビゲーションペインの [設定] を選択します。

    5. [ Lambda ランタイム環境] で、以下の操作を行います。

      1. [Default Lambda function user ID/ group ID (デフォルトの関数ユーザー ID/グループ ID)] で、[Another user ID/group ID (別のユーザー ID/グループ ID)] を選択し584788、[UID (数値)] と [GID (数値)] の両方に「」と入力します。

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

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スナップの問題のトラブルシューティングを行います。

Got permission denied エラー。

解決策: アクセス許可拒否エラーは、多くの場合、インターフェイスがないことが原因です。不足しているインターフェイスのリストと詳細なトラブルシューティング情報については、 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 ドキュメントの「The snappy-debug snap」を参照してください

エラー: は、次のタスクを実行できません。- サービス ["greengrassd"] のスナップ "aws-iot-greengrass" ([start snap.aws-iot-greengrass.greengrassd.service]) のサービス用のサービスコマンド "start" を実行できません (終了ステータス 1: snap.aws-iot-greengrass.grass.service のジョブが失敗しました。これは、制御プロセスがエラーコードで終了しました)。 詳細については、「systemctl status snap.aws-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 は絶対パスではないか、シンボリックリンクです。

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

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

解決策: のステップ 6~8 に従ってAWS IoT Greengrass スナップをインストールして設定する、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-architecture および version コマンドの プレースホルダー。

    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. デーモンを開始します。