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

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

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 。 Core ソフトウェアをインストールします。AWS IoT Greengrass

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

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

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

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

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

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

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

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

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

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

  • 以下の手順のステップを完了するには、デバイスに次のシェルコマンドをインストールする必要があります。sudowget または curldpkgechounzip、および 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 の AWS IoT Greengrass の設定」のステップに従って、Greengrass グループを作成してコアを登録します。このプロセスでは、ダウンロードするセキュリティリソースパッケージも生成されます。このパッケージは、コアデバイス証明書、パブリック/プライベートキー、およびコア設定ファイルを含む tar.gz ファイルです。ファイル名は、10 桁のハッシュで始まります (例: c6973960cc-setup.tar.gz)。このハッシュは、証明書とキーファイルの名前にも使用されます。

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

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

        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 をダウンロードします。 を使用するには、コマンドの curlwget -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.9.3 から v1.9.4) にアップグレードする場合は、このステップをスキップできます。

    1. スクリプトをダウンロードするディレクトリで、次のコマンドを実行します。を使用するには、コマンドの curlwget に置き換えます。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 creation (デフォルトグループの作成)AWS IoT Greengrass] ワークフローを使用してグループを作成すると、デフォルトで有効になります。

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

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

       

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

  1. AWS IoT Greengrass キーリングパッケージをインストールし、リポジトリを追加します。を使用するには、コマンドの curlwget -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 パッケージは、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

 

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

注記

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

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

スナップの概念

スナップの使用方法を理解しやすくするため、以下のスナップの概念が不可欠です。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

更新

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

詳細については、Snapcraft のウェブサイトにアクセスしてください。

snap v1.11.0 の新機能AWS IoT Greengrass

次に、AWS IoT Greengrass スナップの最新バージョンでの最新情報と変更について説明します。

  • 最新バージョンでは、ユーザー ID (UID) およびグループ (GID) snap_daemon として公開される 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.micro Ubuntu 20.04) を使用しますが、Raspberry Pi などの物理ハードウェアで AWS IoT Greengrass スナップを実行できます。

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

  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 スナップ v1.11.0 をインストールします。

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

      sudo snap install aws-iot-greengrass

      レスポンスの例:

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

      sudo snap refresh --channel=latest aws-iot-greengrass

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

    コマンドを実行すると、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 -

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

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

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

    注記

    ファイルを別のデバイスにダウンロードした場合は、「コアデバイスで AWS IoT Greengrass を起動する」の最初の 2 つのステップに従って、ファイルを AWS IoT Greengrass コア デバイスに転送します。

  8. スナップの場合は、以下に示すように、AWS IoT Greengrassconfig.json ファイルを更新してください。

    • を、セキュリティリソースと設定ファイル名に使用される 10 桁のハッシュ番号に置き換えます。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 スナップ 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. Hello World 関数を作成してデプロイするには、Lambdaモジュール 3 (パート 1): AWS IoT Greengrass の 関数Lambdaに従ってください。ただし、Lambda 関数をデプロイする前に、次のステップを完了します。

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

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

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

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

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

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

      1. [Default Lambda function user ID/ group ID (デフォルトの 関数ユーザー ID/グループ ID)] で [Another user ID/group ID (別のユーザー ID/グループ ID)] を選択し、[584788UID (数値)] と [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 スナップの問題のトラブルシューティングに役立ちます。

アクセス許可拒否エラーを取得します。

解決策: アクセス権限拒否エラーは、インターフェイスが欠落していることが原因であることがよくあります。不足しているインターフェイスのリストと詳細なトラブルシューティング情報については、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

詳細については、Snap ドキュメントの「snappy-debug snap」を参照してください。

エラー: は次のタスクを実行できません。- 終了ステータス 1 で失敗しました: snap.aws-iot-greengrassd.service の サービスコマンド ["start" (開始)"greengrassd" を実行。コントロールプロセスがエラーコードで終了したために、ジョブ for snap.aws-iot-greengrassd.service は失敗しました。 詳細については、「systemctl status snap.aws-iot-greengrass.greengrassd.service」および「journactl -xe」を参照してください。)

解決策: コマンドが snap start aws-iot-greengrass Core ソフトウェアの起動に失敗した場合に、このエラーが表示されることがあります。AWS IoT Greengrass

トラブルシューティングの詳細については、次のコマンドを実行します。

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.0/rootfs/merged が絶対パスではないか、シンボリックリンクです。

解決策: スナップは、コンテナ化されていない 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. デーモンを開始します。