AWS IoT Greengrass
開発者ガイド

AWS IoT Greengrass とは

AWS IoT Greengrass は、クラウドの機能をローカルデバイスに拡張するソフトウェアです。これにより、デバイスは情報のソースに近いデータを収集して分析し、ローカルイベントに自律的に反応して、ローカルネットワーク上で安全に通信できます。AWS IoT Greengrass 開発者は AWS Lambda 関数とあらかじめ組み込まれた connectors を使用して、ローカル実行のためにデバイスにデプロイされるサーバーレスアプリケーションを作成できます。

AWS IoT Greengrass の基本的なアーキテクチャを次の図に示します。

AWS IoT Greengrass により、お客様は IoT デバイスとアプリケーションロジックを構築できるようになります。具体的には、AWS IoT Greengrass により、デバイス上で動作するアプリケーションロジックのクラウドベースの管理が可能になります。ローカルにデプロイした Lambda 関数と connectors は、ローカルイベント、クラウドからのメッセージ、またはその他のソースによってトリガーされます。

AWS IoT Greengrass では、デバイスはローカルネットワーク上で安全に通信し、クラウドに接続することなくメッセージを交換します。AWS IoT Greengrass は、クラウドへのインバウンドおよびアウトバウンドメッセージが保存されるように、接続が失われた場合にインテリジェントにメッセージをバッファーできる、ローカル pub/sub メッセージマネージャーを提供します。

AWS IoT Greengrass でのユーザーデータの保護方法は以下のとおりです。

  • デバイスの安全な認証と認可を介して保護。

  • ローカルネットワークの安全な接続を介して保護。

  • ローカルデバイスとクラウドの間で保護。

デバイスのセキュリティ認証情報は、クラウドへの接続が中断された場合でも、失効するまでグループで機能するため、デバイスはローカルで安全に通信を続けることができます。

AWS IoT Greengrass は、Lambda 関数の安全な無線によるソフトウェア更新をサポートします。

AWS IoT Greengrass は以下の要素によって構成される

  • ソフトウェアディストリビューション

    • AWS IoT Greengrass コア ソフトウェア

    • AWS IoT Greengrass コア SDK

  • クラウドサービス

    • AWS IoT Greengrass API

  • 特徴

    • Lambda ランタイム

    • シャドウの実装

    • メッセージマネージャー

    • グループ管理

    • 検出サービス

    • 無線通信経由更新エージェント

    • ローカルリソースアクセス

    • Machine Learning Inference

    • ローカルシークレットマネージャー

AWS IoT Greengrass Core ソフトウェア

AWS IoT Greengrass コア ソフトウェアでは、以下の機能を利用できます。

  • connectors 関数と Lambda 関数のデプロイとローカル実行。

  • connectors 関数と Lambda 関数で制御される、ローカルシークレットの安全な暗号化されたストレージ。

  • マネージドサブスクリプションを使用したデバイス、connectors 関数、および Lambda 関数間のローカルネットワークを介した MQTT メッセージング。

  • マネージドサブスクリプションを使用した AWS IoT、デバイス、connectors 関数、および Lambda 関数間の MQTT メッセージング。

  • デバイスの認証と承認を使用したデバイスとクラウド間の安全な接続。

  • デバイスのローカルシャドウ同期。シャドウはクラウドと同期するように設定できます。

  • ローカルデバイスとボリュームリソースへの制御されたアクセス。

  • ローカル推論を実行するためにクラウドでトレーニングされた機械学習モデルのデプロイ。

  • デバイスで Greengrass コアデバイスを検出するための IP アドレス自動検出。

  • 新規作成または更新されたグループ設定の一元的デプロイ。設定データをダウンロードすると、コアデバイスが自動的に再起動されます。

  • ユーザー定義の Lambda 関数の安全な無線通信経由のソフトウェア更新。

AWS IoT Greengrass コア インスタンスを設定するには AWS IoT Greengrass API を使用します。≫ API は、AWS IoT Greengrass グループ定義を作成し、クラウド上に保存された ≫ グループ定義を更新します。

AWS IoT Greengrass Core バージョン

次のタブでは、AWS IoT Greengrass コア ソフトウェアのバージョンの最新情報と変更について説明しています。

GGC v1.7.0GGC v1.6.0GGC v1.5.0GGC v1.3.0GGC v1.1.0GGC v1.0.0
GGC v1.7.0

現行のバージョン

新機能:

バグ修正と機能向上:

  • 一般的なパフォーマンス向上とバグ修正。

さらに、このリリースでは以下の機能も使用できます。

  • AWS IoT Device Tester for AWS IoT Greengrass。これにより、CPU アーキテクチャ、カーネル設定、ドライバーが AWS IoT Greengrass で動作することを検証できます。詳細については、「 AWS IoT Device Tester for AWS IoT Greengrass ユーザーガイド」を参照してください。

  • AWS IoT Greengrass Core ソフトウェア、AWS IoT Greengrass Core SDK、および AWS IoT Greengrass Machine Learning SDK の各パッケージは、Amazon CloudFront を通じてダウンロードできます。詳細については、「AWS IoT Greengrass ダウンロード」を参照してください。

GGC v1.6.0

新機能:

  • Greengrass Core でバイナリコードを実行する Lambda 実行ファイル。新しい AWS IoT Greengrass Core SDK for C を使用して、C および C++ で Lambda 実行ファイル を記述できます。詳細については、「Lambda 実行可能ファイル」を参照してください。

  • 再起動しても維持される、オプションのローカルストレージメッセージキャッシュ。処理のためにキュー状態にある MQTT メッセージのストレージ設定を構成できます。詳細については、「MQTT メッセージキュー」を参照してください。

  • コアデバイスが切断された場合のための設定可能な再接続の最大再試行。詳細については、「mqttMaxConnectionRetryInterval」の AWS IoT Greengrass Core 設定ファイル プロパティを参照してください。

  • ホストの /proc ディレクトリへのローカルリソースアクセス。詳細については、「Lambda 関数を使用したローカルリソースへのアクセス」を参照してください。

  • 設定可能な書き込みディレクトリ。AWS IoT Greengrass コア ソフトウェアは、読み取り専用および読み取り/書き込みの場所にデプロイできます。詳細については、「AWS IoT Greengrass の書き込みディレクトリの設定」を参照してください。

バグ修正と機能向上:

  • Greengrass コア内およびデバイスとコア間のメッセージ発行のパフォーマンスの改善。

  • ユーザー定義の Lambda 関数によって生成されたログを処理するために必要なコンピューティングリソースの数を減らしました。

GGC v1.5.0

新機能:

  • AWS IoT Greengrass Machine Learning (ML) Inference は一般公開されています。クラウドで構築されトレーニングされたモデルを使用して、AWS IoT Greengrass デバイスで ML Inference をローカルで実行できます。詳細については、「機械学習の推論を実行する」を参照してください。

  • Greengrass Lambda 関数は、JSON に加えてバイナリデータも入力ペイロードとしてサポートするようになりました。この機能を使用するには、AWS IoT Greengrass Core SDK バージョン 1.1.0 にアップグレードする必要があります。この SDK は、AWS IoT コンソールの [ソフトウェア] ページからダウンロードできます。

バグ修正と機能向上:

  • 総メモリ使用量の削減。

  • クラウドへのメッセージの送信パフォーマンスの向上。

  • ダウンロードエージェント、Device Certificate Manager、OTA 更新エージェントのパフォーマンスと安定性の向上。

  • 軽微なバグを修正.

GGC v1.3.0

新機能:

  • クラウドにデプロイした Greengrass 更新ジョブを処理できる OTA (無線通信経由) 更新エージェント。このエージェントは新しい /greengrass/ota ディレクトリにあります。詳細については、「AWS IoT Greengrass Core ソフトウェアの OTA 更新」を参照してください。

  • ローカルリソースアクセス機能により、Greengrass Lambda 関数は周辺デバイスやボリュームなどのローカルリソースにアクセスできます。詳細については、「Lambda 関数を使用したローカルリソースへのアクセス」を参照してください。

GGC v1.1.0

新機能:

  • デプロイした AWS IoT Greengrass グループは、Lambda 関数、サブスクリプションおよび設定を削除することでリセットできます。詳細については、「デプロイのリセット」を参照してください。

  • Python 2.7 に加えて、Node.js 6.10 および Java 8 Lambda ランタイムをサポートしました。

以前のバージョンの AWS IoT Greengrass コア から移行するには:

  • 証明書を /greengrass/configuration/certs フォルダから /greengrass/certs にコピーします。

  • /greengrass/configuration/config.json/greengrass/config/config.json にコピーします。

  • /greengrass/greengrassd の代わりに /greengrass/ggc/core/greengrassd を実行します。

  • 新規コアにグループをデプロイします。

GGC v1.0.0

当初のバージョン

AWS IoT Greengrass グループ

AWS IoT Greengrass グループ は、AWS IoT Greengrass コア、デバイス、サブスクリプションなど、設定とコンポーネントのコレクションです。グループは、操作の範囲を定義するために使用されます。たとえば、グループは建物の 1 つの階、1 台のトラック、または採掘現場全体を表します。次の図は、Greengrass グループを構成できるコンポーネントを示しています。

前の図の各オブジェクトについて説明します。

A: AWS IoT Greengrass グループの定義

AWS IoT Greengrass グループ に関する情報のコレクション。

B: AWS IoT Greengrass グループの設定

具体的には次のとおりです。

  • AWS IoT Greengrass グループ ロール。

  • 認証機関とローカル接続の設定。

  • AWS IoT Greengrass コア 接続情報。

  • デフォルトの Lambda ランタイム環境。

  • CloudWatch とローカルログ設定。

C: AWS IoT Greengrass コア

AWS IoT Greengrass コア を表す AWS IoT モノ。詳細については、「AWS IoT Greengrass Core の設定」を参照してください。

D: Lambda 関数の定義

Core でローカルに実行されて設定データが関連付けられている Lambda 関数のリスト。詳細については、「AWS IoT Greengrass Core での Lambda 関数の実行」を参照してください。

E: サブスクリプションの定義。

MQTT メッセージを使用して通信を可能にするサブスクリプションのリスト。サブスクリプションは以下を定義します。

  • メッセージの送信元とメッセージターゲット。デバイス、Lambda 関数、connectors、AWS IoT、およびローカルシャドウサービスがこれに該当します

  • MQTT トピックあるいはメッセージデータをフィルタリングするトピックフィルターである件名。

詳細については、「Greengrass メッセージングワークフロー」を参照してください。

F: Connector の定義

Core でローカルに実行される connectors 関数および関連する設定データのリスト。詳細については、「Greengrass Connectors を使用してサービスおよびプロトコルと統合する 」を参照してください。

G: デバイスの定義

AWS IoT Greengrass グループ のメンバーである AWS IoT モノ (デバイス) と関連する設定データのリスト。詳細については、「AWS IoT Greengrass のデバイス」を参照してください。

H: リソースの定義

AWS IoT Greengrass コア のローカルリソース、機械学習リソース、シークレットリソース、および関連する設定データのリスト。詳細については、「Lambda 関数を使用したローカルリソースへのアクセス」、「機械学習の推論を実行する」、および「AWS IoT Greengrass Core にシークレットをデプロイする 」を参照してください。

ログ定義

グループのログ記録設定。詳細については、「AWS IoT Greengrass ログでのモニタリング」を参照してください。

デプロイすると、AWS IoT Greengrass グループ の定義、Lambda 関数、connectors、リソース、およびサブスクリプションテーブルが AWS IoT Greengrass コア デバイスにコピーされます。

AWS IoT Greengrass のデバイス

次の 2 種類のデバイスがあります。

AWS IoT Greengrass コア

Greengrass コアは、AWS IoT Greengrass コア ソフトウェアを実行する AWS IoT デバイスです。これにより、AWS IoT および AWS IoT Greengrass クラウドサービスと直接通信できます。コアには、AWS IoT で認証するための独自の証明書があります。このコアにはデバイスシャドウがあり、AWS IoT デバイスレジストリに存在します。AWS IoT Greengrass コアは、ローカル Lambda ランタイム、デプロイエージェント、および IP アドレストラッカーを実行します。IP アドレストラッカーから AWS IoT Greengrass クラウドサービスに IP アドレス情報が送信されることで、Greengrass デバイスはそのグループおよびコア接続情報を自動的に検出できます。詳細については、「AWS IoT Greengrass Core の設定」を参照してください。

Greengrass コアに接続された AWS IoT デバイス

これらの Greengrass デバイスは、Greengrass グループに追加され、Amazon FreeRTOS を実行するか、AWS IoT Device SDK がインストールされます。詳細については、Amazon FreeRTOS ユーザーガイド の「AWS IoT Greengrass 検出ライブラリ」または AWS IoT 開発者ガイド の「AWS IoT SDK」を参照してください。

AWS IoT Greengrass コア に接続する Greengrass デバイスグループの Lambda 関数、connectors、およびその他のデバイス、また AWS IoT やローカルシャドウサービスとやり取りするように設定することもできます。コアデバイスがクラウドから切断された場合、デバイスはローカルネットワークを介して通信を続けることができます。デバイスのサイズは、マイクロコントローラーベースの小型デバイスから大型アプライアンスまでさまざまです。

これらのデバイスタイプ間の関係を次の表に示します。

AWS IoT Greengrass コア デバイスでは、証明書が 2 つの場所に保存されます。

  • /greengrass/certs 内のコアデバイス証明書 - コアデバイス証明書の名前は hash.cert.pem となります (86c84488a5.cert.pem など)。この証明書は、AWS IoT および AWS IoT Greengrass サービスへの接続時にコアの認証に使用されます。

  • /greengrass-root/ggc/var/state/server 内の MQTT コアサーバー証明書 - MQTT コアサーバー証明書の名前は server.crt です。この証明書は、メッセージの交換前にローカル MQTT サービス (Greengrass コア上) と Greengrass デバイスとの間で相互認証に使用されます。

SDK

以下の AWS が提供する SDK を使用して AWS IoT Greengrass を操作します。

GGC 1.7.0GGC 1.6.0GGC v1.5.0GGC v1.3.0GGC v1.1.0GGC v1.0.0
GGC 1.7.0
AWS SDK

AWS SDK では、Amazon S3、Amazon DynamoDB、AWS IoT、AWS IoT Greengrass など、AWS のサービスとやり取りするアプリケーションを構築します。AWS IoT Greengrass のコンテキストでは、デプロイした Lambda 関数内で AWS SDK を使用して AWS のサービスを直接呼び出すことができます。詳細については、「AWS SDK」を参照してください。

AWS IoTDevice SDK

AWS IoT Device SDK は、デバイスを AWS IoT または AWS IoT Greengrass サービスに接続するのに役立ちます。デバイスは、所属先の AWS IoT Greengrass グループ と接続先の AWS IoT Greengrass コア の IP アドレスを認識している必要があります。

AWS IoT Greengrass コア への接続には任意の AWS IoT Device SDK プラットフォームを使用できます。ただし、AWS IoT Greengrass 検出サービスや AWS IoT Greengrass コア ルート CA のダウンロードなど、AWS IoT Greengrass 固有の機能を利用できるのは C++ および Python SDK のみです。詳細については、「AWS IoT デバイス SDK」を参照してください。

AWS IoT Greengrass Core SDK

AWS IoT Greengrass Core SDK を使用すると、Lambda 関数は Greengrass コアとのやり取り、AWS IoT へのメッセージの発行、ローカルシャドウサービスとのやり取り、他のデプロイ済み Lambda 関数の呼び出し、およびシークレットリソースへのアクセスを行うことができます。この SDK は、AWS IoT Greengrass コア で実行される Lambda 関数で使用します。詳細については、「AWS IoT Greengrass Core SDK」を参照してください。

AWS IoT Greengrass Machine Learning SDK

AWS IoT Greengrass Machine Learning SDK により、Lambda 関数は Greengrass コアに機械学習リソースとしてデプロイされる機械学習モデルを使用できます。この SDK は、AWS IoT Greengrass コア で動作してローカル推論サービスとやり取りする Lambda 関数で使用します。詳細については、「AWS IoT Greengrass Machine Learning SDK」を参照してください。

GGC 1.6.0
AWS SDK

AWS SDK では、Amazon S3、Amazon DynamoDB、AWS IoT、AWS IoT Greengrass など、AWS のサービスと連携するアプリケーションを構築できます。AWS IoT Greengrass のコンテキストでは、デプロイした Lambda 関数内で AWS SDK を使用して AWS のサービスを直接呼び出すことができます。詳細については、「Greengrass Lambda 関数の SDK」を参照してください。

AWS IoTDevice SDKs

AWS IoT Device SDK は、デバイスを AWS IoT または AWS IoT Greengrass サービスに接続するのに役立ちます。デバイスは、所属先の AWS IoT Greengrass グループ と接続先の AWS IoT Greengrass コア の IP アドレスを認識している必要があります。

AWS IoT Greengrass コア への接続には任意の AWS IoT デバイス SDK を使用できます。ただし、AWS IoT Greengrass 検出サービスや AWS IoT Greengrass コア ルート CA のダウンロードなど、AWS IoT Greengrass 固有の機能を利用できるのは C++ および Python デバイス SDK のみです。詳細については、「AWS IoT デバイス SDK」を参照してください。

AWS IoT Greengrass コア SDK

AWS IoT Greengrass Core SDK を使用すると、Lambda 関数はそれが実行されている AWS IoT Greengrass コア とやり取りし、メッセージの発行、ローカルの Device Shadow サービスとのやり取り、または他のデプロイされた Lambda 関数の呼び出しを行うことができます。この SDK は、AWS IoT Greengrass コア の Lambda ランタイムで実行されている Lambda 関数を記述するためだけに使用します。詳細については、「Greengrass Lambda 関数の SDK」を参照してください。

GGC v1.5.0
AWS SDK

AWS SDK では、Amazon S3、Amazon DynamoDB、AWS IoT、AWS IoT Greengrass など、AWS のサービスと連携するアプリケーションを構築できます。AWS IoT Greengrass のコンテキストでは、デプロイした Lambda 関数内で AWS SDK を使用して AWS のサービスを直接呼び出すことができます。

AWS IoTDevice SDKs

AWS IoT Device SDK は、デバイスを AWS IoT または AWS IoT Greengrass サービスに接続するのに役立ちます。デバイスは、所属先の AWS IoT Greengrass グループ と接続先の AWS IoT Greengrass コア の IP アドレスを認識している必要があります。

AWS IoT Greengrass コア への接続には任意の AWS IoT デバイス SDK を使用できます。ただし、AWS IoT Greengrass 検出サービスや AWS IoT Greengrass コア ルート CA のダウンロードなど、AWS IoT Greengrass 固有の機能を利用できるのは C++ および Python デバイス SDK のみです。詳細については、「AWS IoT デバイス SDK」を参照してください。

AWS IoT Greengrass コア SDK

AWS IoT Greengrass Core SDK を使用すると、Lambda 関数はそれが実行されている AWS IoT Greengrass コア とやり取りし、メッセージの発行、ローカルの Device Shadow サービスとのやり取り、または他のデプロイされた Lambda 関数の呼び出しを行うことができます。この SDK は、AWS IoT Greengrass コア の Lambda ランタイムで実行される Lambda 関数を記述するためにのみ使用されます。AWS IoT Greengrass コア 上で動作する Lambda 関数は、AWS SDK を使用して AWS クラウドサービスと直接やり取りできます。AWS IoT Greengrass コア SDK と AWS SDK は別々のパッケージに含まれているため、両方のパッケージを同時に使用できます。AWS IoT Greengrass Core SDK は、AWS IoT コンソールの [ソフトウェア] ページからダウンロードできます。

AWS IoT Greengrass コア SDK は、AWS SDK プログラミングモデルに従っています。これにより、クラウド向けに開発された Lambda 関数を、AWS IoT Greengrass コア 上で実行される Lambda 関数に簡単に移植できます。たとえば、AWS SDK の場合、次の Lambda 関数はクラウド内のトピック "/some/topic" にメッセージを発行します。

import boto3 client = boto3.client('iot-data') response = client.publish( topic = "/some/topic", qos = 0, payload = "Some payload".encode() )

この Lambda 関数を AWS IoT Greengrass コア に移植して実行するには、次の例に示すように、import boto3 ステートメントを import greengrasssdk に置き換えます。

注記

AWS IoT Greengrass コア SDK では、QoS = 0 の MQTT メッセージのみを送信できます。

import greengrasssdk client = greengrasssdk.client('iot-data') response = client.publish( topic='/some/topic', qos=0, payload='some payload'.encode() )

これにより、クラウド内でテストした Lambda 関数を最小限の労力で AWS IoT Greengrass に移行できます。

注記

AWS SDK は、AWS クラウドで動作する Lambda 関数の環境のネイティブな一部として機能します。AWS IoT Greengrass コア にデプロイした Lambda 関数で boto3 を使用する場合は、パッケージに必ず AWS SDK を含めてください。また、AWS IoT Greengrass SDK と AWS SDK を同じパッケージで使用する場合、Lambda 関数が正しい名前空間を使用していることを確認します。デプロイパッケージを作成する方法の詳細については、次を参照します。

GGC v1.3.0
AWS SDK

AWS SDK では、Amazon S3、Amazon DynamoDB、AWS IoT、AWS IoT Greengrass など、AWS のサービスと連携するアプリケーションを構築できます。AWS IoT Greengrass のコンテキストでは、デプロイした Lambda 関数内で AWS SDK を使用して AWS のサービスを直接呼び出すことができます。

AWS IoTDevice SDKs

AWS IoT Device SDK は、デバイスを AWS IoT または AWS IoT Greengrass サービスに接続するのに役立ちます。デバイスは、所属先の AWS IoT Greengrass グループ と接続先の AWS IoT Greengrass コア の IP アドレスを認識している必要があります。

AWS IoT Greengrass コア への接続には任意の AWS IoT デバイス SDK を使用できます。ただし、AWS IoT Greengrass 検出サービスや AWS IoT Greengrass コア ルート CA のダウンロードなど、AWS IoT Greengrass 固有の機能を利用できるのは C++ および Python デバイス SDK のみです。詳細については、「AWS IoT デバイス SDK」を参照してください。

AWS IoT Greengrass コア SDK

AWS IoT Greengrass Core SDK を使用すると、Lambda 関数はそれが実行されている AWS IoT Greengrass コア とやり取りし、メッセージの発行、ローカルの Device Shadow サービスとのやり取り、または他のデプロイされた Lambda 関数の呼び出しを行うことができます。この SDK は、AWS IoT Greengrass コア の Lambda ランタイムで実行される Lambda 関数を記述するためにのみ使用されます。AWS IoT Greengrass コア 上で動作する Lambda 関数は、AWS SDK を使用して AWS クラウドサービスと直接やり取りできます。AWS IoT Greengrass コア SDK と AWS SDK は別々のパッケージに含まれているため、両方のパッケージを同時に使用できます。AWS IoT Greengrass Core SDK は、AWS IoT コンソールの [ソフトウェア] ページからダウンロードできます。

AWS IoT Greengrass コア SDK は、AWS SDK プログラミングモデルに従っています。これにより、クラウド向けに開発された Lambda 関数を、AWS IoT Greengrass コア 上で実行される Lambda 関数に簡単に移植できます。たとえば、AWS SDK の場合、次の Lambda 関数はクラウド内のトピック "/some/topic" にメッセージを発行します。

import boto3 client = boto3.client('iot-data') response = client.publish( topic = "/some/topic", qos = 0, payload = "Some payload".encode() )

この Lambda 関数を AWS IoT Greengrass コア に移植して実行するには、次の例に示すように、import boto3 ステートメントを import greengrasssdk に置き換えます。

注記

AWS IoT Greengrass コア SDK では、QoS = 0 の MQTT メッセージのみを送信できます。

import greengrasssdk client = greengrasssdk.client('iot-data') response = client.publish( topic='/some/topic', qos=0, payload='some payload'.encode() )

これにより、クラウド内でテストした Lambda 関数を最小限の労力で AWS IoT Greengrass に移行できます。

注記

AWS SDK は、AWS クラウドで動作する Lambda 関数の環境のネイティブな一部として機能します。AWS IoT Greengrass コア にデプロイした Lambda 関数で boto3 を使用する場合は、パッケージに必ず AWS SDK を含めてください。また、AWS IoT Greengrass SDK と AWS SDK を同じパッケージで使用する場合、Lambda 関数が正しい名前空間を使用していることを確認します。デプロイパッケージを作成する方法の詳細については、次を参照します。

GGC v1.1.0
AWS SDK

AWS SDK では、Amazon S3、Amazon DynamoDB、AWS IoT、AWS IoT Greengrass など、AWS のサービスと連携するアプリケーションを構築できます。AWS IoT Greengrass のコンテキストでは、デプロイした Lambda 関数内で AWS SDK を使用して AWS のサービスを直接呼び出すことができます。

AWS IoTDevice SDKs

AWS IoT Device SDK は、デバイスを AWS IoT または AWS IoT Greengrass サービスに接続するのに役立ちます。デバイスは、所属先の AWS IoT Greengrass グループ と接続先の AWS IoT Greengrass コア の IP アドレスを認識している必要があります。

AWS IoT Greengrass コア への接続には任意の AWS IoT デバイス SDK を使用できます。ただし、AWS IoT Greengrass 検出サービスや AWS IoT Greengrass コア ルート CA のダウンロードなど、AWS IoT Greengrass 固有の機能を利用できるのは C++ および Python デバイス SDK のみです。詳細については、「AWS IoT デバイス SDK」を参照してください。

AWS IoT Greengrass コア SDK

AWS IoT Greengrass Core SDK を使用すると、Lambda 関数はそれが実行されている AWS IoT Greengrass コア とやり取りし、メッセージの発行、ローカルの Device Shadow サービスとのやり取り、または他のデプロイされた Lambda 関数の呼び出しを行うことができます。この SDK は、AWS IoT Greengrass コア の Lambda ランタイムで実行される Lambda 関数を記述するためにのみ使用されます。AWS IoT Greengrass コア 上で動作する Lambda 関数は、AWS SDK を使用して AWS クラウドサービスと直接やり取りできます。AWS IoT Greengrass コア SDK と AWS SDK は別々のパッケージに含まれているため、両方のパッケージを同時に使用できます。AWS IoT Greengrass Core SDK は、AWS IoT コンソールの [ソフトウェア] ページからダウンロードできます。

AWS IoT Greengrass コア SDK は、AWS SDK プログラミングモデルに従っています。これにより、クラウド向けに開発された Lambda 関数を、AWS IoT Greengrass コア 上で実行される Lambda 関数に簡単に移植できます。たとえば、AWS SDK の場合、次の Lambda 関数はクラウド内のトピック "/some/topic" にメッセージを発行します。

import boto3 client = boto3.client('iot-data') response = client.publish( topic = "/some/topic", qos = 0, payload = "Some payload".encode() )

この Lambda 関数を AWS IoT Greengrass コア に移植して実行するには、次の例に示すように、import boto3 ステートメントを import greengrasssdk に置き換えます。

注記

AWS IoT Greengrass コア SDK では、QoS = 0 の MQTT メッセージのみを送信できます。

import greengrasssdk client = greengrasssdk.client('iot-data') response = client.publish( topic='/some/topic', qos=0, payload='some payload'.encode() )

これにより、クラウド内でテストした Lambda 関数を最小限の労力で AWS IoT Greengrass に移行できます。

注記

AWS SDK は、AWS クラウドで動作する Lambda 関数の環境のネイティブな一部として機能します。AWS IoT Greengrass コア にデプロイした Lambda 関数で boto3 を使用する場合は、パッケージに必ず AWS SDK を含めてください。また、AWS IoT Greengrass SDK と AWS SDK を同じパッケージで使用する場合、Lambda 関数が正しい名前空間を使用していることを確認します。デプロイパッケージを作成する方法の詳細については、次を参照します。

GGC v1.0.0
AWS SDK

AWS SDK では、Amazon S3、Amazon DynamoDB、AWS IoT、AWS IoT Greengrass など、AWS のサービスと連携するアプリケーションを構築できます。AWS IoT Greengrass のコンテキストでは、デプロイした Lambda 関数内で AWS SDK を使用して AWS のサービスを直接呼び出すことができます。

AWS IoTDevice SDKs

AWS IoT Device SDK は、デバイスを AWS IoT または AWS IoT Greengrass サービスに接続するのに役立ちます。デバイスは、所属先の AWS IoT Greengrass グループ と接続先の AWS IoT Greengrass コア の IP アドレスを認識している必要があります。

AWS IoT Greengrass コア への接続には任意の AWS IoT デバイス SDK を使用できます。ただし、AWS IoT Greengrass 検出サービスや AWS IoT Greengrass コア ルート CA のダウンロードなど、AWS IoT Greengrass 固有の機能を利用できるのは C++ および Python デバイス SDK のみです。詳細については、「AWS IoT デバイス SDK」を参照してください。

AWS IoT Greengrass コア SDK

AWS IoT Greengrass Core SDK を使用すると、Lambda 関数はそれが実行されている AWS IoT Greengrass コア とやり取りし、メッセージの発行、ローカルの Device Shadow サービスとのやり取り、または他のデプロイされた Lambda 関数の呼び出しを行うことができます。この SDK は、AWS IoT Greengrass コア の Lambda ランタイムで実行される Lambda 関数を記述するためにのみ使用されます。AWS IoT Greengrass コア 上で動作する Lambda 関数は、AWS SDK を使用して AWS クラウドサービスと直接やり取りできます。AWS IoT Greengrass コア SDK と AWS SDK は別々のパッケージに含まれているため、両方のパッケージを同時に使用できます。AWS IoT Greengrass Core SDK は、AWS IoT コンソールの [ソフトウェア] ページからダウンロードできます。

AWS IoT Greengrass コア SDK は、AWS SDK プログラミングモデルに従っています。これにより、クラウド向けに開発された Lambda 関数を、AWS IoT Greengrass コア 上で実行される Lambda 関数に簡単に移植できます。たとえば、AWS SDK の場合、次の Lambda 関数はクラウド内のトピック "/some/topic" にメッセージを発行します。

import boto3 client = boto3.client('iot-data') response = client.publish( topic = "/some/topic", qos = 0, payload = "Some payload".encode() )

この Lambda 関数を AWS IoT Greengrass コア に移植して実行するには、次の例に示すように、import boto3 ステートメントを import greengrasssdk に置き換えます。

注記

AWS IoT Greengrass コア SDK では、QoS = 0 の MQTT メッセージのみを送信できます。

import greengrasssdk client = greengrasssdk.client('iot-data') response = client.publish( topic='/some/topic', qos=0, payload='some payload'.encode() )

これにより、クラウド内でテストした Lambda 関数を最小限の労力で AWS IoT Greengrass に移行できます。

注記

AWS SDK は、AWS クラウドで動作する Lambda 関数の環境のネイティブな一部として機能します。AWS IoT Greengrass コア にデプロイした Lambda 関数で boto3 を使用する場合は、パッケージに必ず AWS SDK を含めてください。また、AWS IoT Greengrass SDK と AWS SDK を同じパッケージで使用する場合、Lambda 関数が正しい名前空間を使用していることを確認します。デプロイパッケージを作成する方法の詳細については、次を参照します。

サポートされているプラットフォームと要件

AWS IoT Greengrass コア ソフトウェアは、このプラットフォームでサポートされており、いくつかの依存関係が必要です。

注記

Core ソフトウェアは、AWS IoT Core コンソール の [ソフトウェア] ページ、または AWS IoT Greengrass Core ソフトウェアダウンロード からダウンロードできます。

GGC v1.7.0GGC v1.6.0GGC v1.5.0GGC v1.3.0GGC v1.1.0GGC v1.0.0
GGC v1.7.0
  • サポートされているプラットフォーム:

    • アーキテクチャ: ARMv7l、OS: Linux、ディストリビューション: Raspbian Stretch, 2018-06-29。複数のバージョンで AWS IoT Greengrass を使用できますが、これはお勧めします。これは公式にサポートされているディストリビューションでもあります。

    • アーキテクチャ: x86_64、OS: Linux、ディストリビューション: Amazon Linux (amzn-ami-hvm-2016.09.1.20170119-x86_64-ebs)、Ubuntu 14.04 – 16.04

    • アーキテクチャ: ARMv8 (AArch64)、OS: Linux、ディストリビューション: Arch Linux

    • Windows、macOS、Linux の各プラットフォームで、Docker コンテナで AWS IoT Greengrass を実行できます。詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。

  • 以下のアイテムは必須です。

    • AWS IoT Greengrass コア デバイスに割り当てられた最小 128 MB の RAM。

    • Linux カーネルバージョン 4.4 以上: いくつかのバージョンが AWS IoT Greengrass で動作しますが、最適なセキュリティとパフォーマンスを得るには、バージョン 4.4 以上をお勧めします。

    • Glibc ライブラリバージョン 2.14 以上。

    • /var/run ディレクトリがデバイスに存在する必要があります。

    • AWS IoT Greengrass では、デバイスでハードリンクとソフトリンクの保護を有効にする必要があります。有効にしない場合、AWS IoT Greengrass は -i フラグを使用してセキュアでないモードでのみ実行できます。

    • ggc_userggc_group のユーザーとグループがデバイスに存在する必要があります。

    • 次の Linux カーネル設定をデバイスで有効にする必要があります。

      • 名前空間: CONFIG_IPC_NS、CONFIG_UTS_NS、CONFIG_USER_NS、CONFIG_PID_NS

      • CGroups: CONFIG_CGROUP_DEVICE、CONFIG_CGROUPS、CONFIG_MEMCG

      • その他: CONFIG_POSIX_MQUEUE、CONFIG_OVERLAY_FS、CONFIG_HAVE_ARCH_SECCOMP_FILTER、CONFIG_SECCOMP_FILTER、CONFIG_KEYS、CONFIG_SECCOMP

    • /dev/stdin/dev/stdout/dev/stderr を有効にする必要があります。

    • Linux カーネルは cgroups をサポートしている必要があります。

    • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

    • Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。

  • 以下のアイテムはオプションです。

    • AWS IoT Greengrass コア デバイス上のファイルを開くためにローカルリソースアクセス (LRA) が許可された Lambda 関数を使用する場合は、デバイス cgroup を有効にしてマウントする必要があります。

    • Python Lambda 関数を使用する場合、Python バージョン 2.7 が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • Node.JS Lambda 関数を使用する場合、Node JS バージョン 6.10 以上が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • Java Lambda 関数を使用する場合は、Java バージョン 8 以上が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • Greengrass OTA Agent に必要なコマンドは次のとおりです: wgetrealpathtarreadlinkbasenamedirnamepidofdfgrep、および umount

GGC v1.6.0
  • サポートされているプラットフォーム:

    • アーキテクチャ: ARMv7l、OS: Linux、ディストリビューション: Raspbian Jessie, 2017-03-02

      注記

      Jessie の代わりに Raspbian Stretch を使用することを選択できます。 Stretch の使用には追加のメモリの設定が必要になります。詳細については、「このステップ」を参照してください。

    • アーキテクチャ: x86_64。OS: Linux。ディストリビューション: Amazon Linux (amzn-ami-hvm-2016.09.1.20170119-x86_64-ebs)

    • アーキテクチャ: x86_64、OS: Linux、ディストリビューション: Ubuntu 14.04 – 16.04

    • アーキテクチャ: ARMv8(AArch64)。OS: Linux。ディストリビューション: Ubuntu 14.04 – 16.04(Annapurna Alpine V2)

  • 以下のアイテムは必須です。

    • AWS IoT Greengrass コア デバイスに割り当てられた最小 128 MB の RAM。

    • Linux カーネルバージョン 4.4 以上: いくつかのバージョンが AWS IoT Greengrass で動作しますが、最適なセキュリティとパフォーマンスを得るには、バージョン 4.4 以上をお勧めします。

    • Glibc ライブラリバージョン 2.14 以上。

    • /var/run ディレクトリがデバイスに存在する必要があります。

    • AWS IoT Greengrass では、デバイスでハードリンクとソフトリンクの保護を有効にする必要があります。有効にしない場合、AWS IoT Greengrass は -i フラグを使用してセキュアでないモードでのみ実行できます。

    • ggc_userggc_group のユーザーとグループがデバイスに存在する必要があります。

    • 次の Linux カーネル設定をデバイスで有効にする必要があります。

      • 名前空間: CONFIG_IPC_NS、CONFIG_UTS_NS、CONFIG_USER_NS、CONFIG_PID_NS

      • CGroups: CONFIG_CGROUP_DEVICE、CONFIG_CGROUPS、CONFIG_MEMCG

      • その他: CONFIG_POSIX_MQUEUE、CONFIG_OVERLAY_FS、CONFIG_HAVE_ARCH_SECCOMP_FILTER、CONFIG_SECCOMP_FILTER、CONFIG_KEYS、CONFIG_SECCOMP

    • /dev/stdin/dev/stdout/dev/stderr を有効にする必要があります。

    • Linux カーネルは cgroups をサポートしている必要があります。

    • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

    • Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。

  • 以下のアイテムはオプションです。

    • AWS IoT Greengrass コア デバイス上のファイルを開くためにローカルリソースアクセス (LRA) が許可された Lambda 関数を使用する場合は、デバイス cgroup を有効にしてマウントする必要があります。

    • Python Lambda 関数を使用する場合、Python バージョン 2.7 が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • Node.JS Lambda 関数を使用する場合、Node JS バージョン 6.10 以上が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • Java Lambda 関数を使用する場合は、Java バージョン 8 以上が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • OpenSSL 1.01 以上は、Greengrass OTA Agent だけでなく、wgetrealpathtarreadlinkbasenamedirnamepidofdfgrepumount のコマンドにも必要です。

GGC v1.5.0
  • サポートされているプラットフォーム:

    • アーキテクチャ: ARMv7l、OS: Linux、ディストリビューション: Raspbian Jessie, 2017-03-02

      注記

      Jessie の代わりに Raspbian Stretch を使用することを選択できます。 Stretch の使用には追加のメモリの設定が必要になります。詳細については、「このステップ」を参照してください。

    • アーキテクチャ: x86_64。OS: Linux。ディストリビューション: Amazon Linux (amzn-ami-hvm-2016.09.1.20170119-x86_64-ebs)

    • アーキテクチャ: x86_64、OS: Linux、ディストリビューション: Ubuntu 14.04 – 16.04

    • アーキテクチャ: ARMv8(AArch64)。OS: Linux。ディストリビューション: Ubuntu 14.04 – 16.04(Annapurna Alpine V2)

  • 以下のアイテムは必須です。

    • AWS IoT Greengrass コア デバイスに割り当てられた最小 128 MB の RAM。

    • Linux カーネルバージョン 4.4 以上: いくつかのバージョンが AWS IoT Greengrass で動作しますが、最適なセキュリティとパフォーマンスを得るには、バージョン 4.4 以上をお勧めします。

    • Glibc ライブラリバージョン 2.14 以上。

    • /var/run ディレクトリがデバイスに存在する必要があります。

    • AWS IoT Greengrass では、デバイスでハードリンクとソフトリンクの保護を有効にする必要があります。有効にしない場合、AWS IoT Greengrass は -i フラグを使用してセキュアでないモードでのみ実行できます。

    • ggc_userggc_group のユーザーとグループがデバイスに存在する必要があります。

    • 次の Linux カーネル設定をデバイスで有効にする必要があります。

      • 名前空間: CONFIG_IPC_NS、CONFIG_UTS_NS、CONFIG_USER_NS、CONFIG_PID_NS

      • CGroups: CONFIG_CGROUP_DEVICE、CONFIG_CGROUPS、CONFIG_MEMCG

      • その他: CONFIG_POSIX_MQUEUE、CONFIG_OVERLAY_FS、CONFIG_HAVE_ARCH_SECCOMP_FILTER、CONFIG_SECCOMP_FILTER、CONFIG_KEYS、CONFIG_SECCOMP

    • /dev/stdin/dev/stdout/dev/stderr を有効にする必要があります。

    • Linux カーネルは cgroups をサポートしている必要があります。

    • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

    • Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。

  • 以下のアイテムはオプションです。

    • AWS IoT Greengrass コア デバイス上のファイルを開くためにローカルリソースアクセス (LRA) が許可された Lambda 関数を使用する場合は、デバイス cgroup を有効にしてマウントする必要があります。

    • Python Lambda 関数を使用する場合、Python バージョン 2.7 が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • Node.JS Lambda 関数を使用する場合、Node JS バージョン 6.10 以上が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • Java Lambda 関数を使用する場合は、Java バージョン 8 以上が必要です。その場合は、PATH 環境変数に追加されていることを確認してください。

    • OpenSSL 1.01 以上は、Greengrass OTA Agent だけでなく、wgetrealpathtarreadlinkbasenamedirnamepidofdfgrepumount のコマンドにも必要です。

GGC v1.3.0
  • サポートされているプラットフォーム:

    • アーキテクチャ: ARMv7l。OS: Linux。ディストリビューション: Raspbian Jessie、2017-03-02

    • アーキテクチャ: x86_64。OS: Linux。ディストリビューション: Amazon Linux (amzn-ami-hvm-2016.09.1.20170119-x86_64-ebs)

    • アーキテクチャ: x86_64、OS: Linux、ディストリビューション: Ubuntu 14.04 – 16.04

    • アーキテクチャ: ARMv8(AArch64)。OS: Linux。ディストリビューション: Ubuntu 14.04 – 16.04(Annapurna Alpine V2)

  • 以下のアイテムは必須です。

    • AWS IoT Greengrass コア デバイスに割り当てられた最小 128 MB の RAM。

    • Linux kernel バージョン 4.4 以降。いくつかのバージョンでも AWS IoT Greengrass は動作しますが、最適なセキュリティとパフォーマンスを得るには、バージョン 4.4 以降が推奨されます。

    • Glibc ライブラリ バージョン 2.14 以降。

    • /var/run ディレクトリがデバイスに存在する必要があります。

    • AWS IoT Greengrass では、デバイスでハードリンクとソフトリンクの保護を有効にする必要があります。有効にしない場合、AWS IoT Greengrass は -i フラグを使用してセキュアでないモードでのみ実行できます。

    • ggc_userggc_group のユーザーとグループがデバイスに存在する必要があります。

    • 次の Linux カーネル設定をデバイスで有効にする必要があります。

      • 名前空間: CONFIG_IPC_NS、CONFIG_UTS_NS、CONFIG_USER_NS、CONFIG_PID_NS

      • CGroups: CONFIG_CGROUP_DEVICE、CONFIG_CGROUPS、CONFIG_MEMCG

      • その他: CONFIG_POSIX_MQUEUE、CONFIG_OVERLAY_FS、CONFIG_HAVE_ARCH_SECCOMP_FILTER、CONFIG_SECCOMP_FILTER、CONFIG_KEYS、CONFIG_SECCOMP

    • AWS IoT デバイスシャドウには sqlite3 パッケージが必要です。PATH 環境変数にこれが追加されていることを確認してください。

    • /dev/stdin/dev/stdout/dev/stderr を有効にする必要があります。

    • Linux カーネルは cgroups をサポートしている必要があります。

    • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

    • Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。

  • 以下のアイテムはオプションです。

    • AWS IoT Greengrass コア デバイス上のファイルを開くためにローカルリソースアクセス (LRA) が許可された Lambda 関数を使用する場合は、デバイス cgroup を有効にしてマウントする必要があります。

    • Python Lambda 関数を使用する場合、Python バージョン 2.7 が必要です。この場合、PATH 環境変数にこれが追加されていることを確認してください。

    • Node.js Lambda 関数を使用する場合、Node.js バージョン 6.10 以降が必要です。この場合、PATH 環境変数にこれが追加されていることを確認してください。

    • Java Lambda 関数を使用する場合は、Java バージョン 8 以降が必要です。この場合、PATH 環境変数にこれが追加されていることを確認してください。

    • OpenSSL 1.01 以降は、Greengrass OTA Agent だけでなく、wgetrealpathtarreadlinkbasenamedirnamepidofdfgrepumount のコマンドにも必要です。

GGC v1.1.0
  • サポートされているプラットフォーム:

    • アーキテクチャ: ARMv7l。OS: Linux。ディストリビューション: Raspbian Jessie、2017-03-02

    • アーキテクチャ: x86_64。OS: Linux。ディストリビューション: Amazon Linux (amzn-ami-hvm-2016.09.1.20170119-x86_64-ebs)

    • アーキテクチャ: x86_64、OS: Linux、ディストリビューション: Ubuntu 14.04 – 16.04

    • アーキテクチャ: ARMv8(AArch64)。OS: Linux。ディストリビューション: Ubuntu 14.04 – 16.04(Annapurna Alpine V2)

  • 以下のアイテムは必須です。

    • AWS IoT Greengrass コア デバイスに割り当てられた最小 128 MB の RAM。

    • Linux kernel バージョン 4.4 以降。いくつかのバージョンでも AWS IoT Greengrass は動作しますが、最適なセキュリティとパフォーマンスを得るには、バージョン 4.4 以降が推奨されます。

    • Glibc ライブラリ バージョン 2.14 以降。

    • /var/run ディレクトリがデバイスに存在する必要があります。

    • AWS IoT Greengrass では、デバイスでハードリンクとソフトリンクの保護を有効にする必要があります。有効にしない場合、AWS IoT Greengrass は -i フラグを使用してセキュアでないモードでのみ実行できます。

    • ggc_userggc_group のユーザーとグループがデバイスに存在する必要があります。

    • 次の Linux カーネル設定をデバイスで有効にする必要があります。

      • 名前空間: CONFIG_IPC_NS、CONFIG_UTS_NS、CONFIG_USER_NS、CONFIG_PID_NS

      • CGroups: CONFIG_CGROUP_DEVICE、CONFIG_CGROUPS、CONFIG_MEMCG

      • その他: CONFIG_POSIX_MQUEUE、CONFIG_OVERLAY_FS、CONFIG_HAVE_ARCH_SECCOMP_FILTER、CONFIG_SECCOMP_FILTER、CONFIG_KEYS、CONFIG_SECCOMP

    • AWS IoT デバイスシャドウには sqlite3 パッケージが必要です。PATH 環境変数にこれが追加されていることを確認してください。

    • /dev/stdin/dev/stdout/dev/stderr を有効にする必要があります。

    • Linux カーネルは cgroups をサポートしている必要があります。

    • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

    • Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。

  • 以下のアイテムはオプションです。

    • Python Lambda 関数を使用する場合、Python バージョン 2.7 が必要です。この場合、PATH 環境変数にこれが追加されていることを確認してください。

    • Node.js Lambda 関数を使用する場合、Node.js バージョン 6.10 以降が必要です。この場合、PATH 環境変数にこれが追加されていることを確認してください。

    • Java Lambda 関数を使用する場合は、Java バージョン 8 以降が必要です。この場合、PATH 環境変数にこれが追加されていることを確認してください。

GGC v1.0.0
  • サポートされているプラットフォーム:

    • アーキテクチャ: ARMv7l。OS: Linux。ディストリビューション: Raspbian Jessie、2017-03-02

    • アーキテクチャ: x86_64。OS: Linux。ディストリビューション: Amazon Linux (amzn-ami-hvm-2016.09.1.20170119-x86_64-ebs)

    • アーキテクチャ: x86_64、OS: Linux、ディストリビューション: Ubuntu 14.04 – 16.04

    • アーキテクチャ: ARMv8(AArch64)。OS: Linux。ディストリビューション: Ubuntu 14.04 – 16.04(Annapurna Alpine V2)

  • 以下のアイテムは必須です。

    • AWS IoT Greengrass コア デバイスに割り当てられた最小 128 MB の RAM。

    • Linux kernel バージョン 4.4 以降。いくつかのバージョンでも AWS IoT Greengrass は動作しますが、最適なセキュリティとパフォーマンスを得るには、バージョン 4.4 以降が推奨されます。

    • Glibc ライブラリ バージョン 2.14 以降。

    • /var/run ディレクトリがデバイスに存在する必要があります。

    • AWS IoT Greengrass では、デバイスでハードリンクとソフトリンクの保護を有効にする必要があります。有効にしない場合、AWS IoT Greengrass は -i フラグを使用してセキュアでないモードでのみ実行できます。

    • ggc_userggc_group のユーザーとグループがデバイスに存在する必要があります。

    • 次の Linux カーネル設定をデバイスで有効にする必要があります。

      • 名前空間: CONFIG_IPC_NS、CONFIG_UTS_NS、CONFIG_USER_NS、CONFIG_PID_NS

      • CGroups: CONFIG_CGROUP_DEVICE、CONFIG_CGROUPS、CONFIG_MEMCG

      • その他: CONFIG_POSIX_MQUEUE、CONFIG_OVERLAY_FS、CONFIG_HAVE_ARCH_SECCOMP_FILTER、CONFIG_SECCOMP_FILTER、CONFIG_KEYS、CONFIG_SECCOMP

    • AWS IoT デバイスシャドウには sqlite3 パッケージが必要です。PATH 環境変数にこれが追加されていることを確認してください。

    • /dev/stdin/dev/stdout/dev/stderr を有効にする必要があります。

    • Linux カーネルは cgroups をサポートしている必要があります。

    • AWS IoT Greengrass が Lambda 関数のメモリ制限を設定できるように、メモリ cgroup を有効にしてマウントする必要があります。

    • Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。

  • 以下のアイテムはオプションです。

    • Python Lambda 関数を使用する場合、Python バージョン 2.7 が必要です。この場合、PATH 環境変数にこれが追加されていることを確認してください。

AWS IoT Greengrass ダウンロード

AWS IoT Greengrass で使用するソフトウェアを見つけてダウンロードするには、以下の情報を使用できます。

AWS IoT Greengrass Core ソフトウェア

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

AWS IoT Greengrass Core SDK ソフトウェア

AWS IoT Greengrass Core SDK により、Lambda 関数はそれが実行されている AWS IoT Greengrass コア とやり取りできます。

v1.3.0 v1.2.0
v1.3.0
v1.2.0

AWS IoT Greengrass Docker ソフトウェア

AWS IoT Greengrass Docker ソフトウェアダウンロードでは、Docker コンテナで AWS IoT Greengrass を実行できます。手順は Docker ファイルに記載されています。

v1.7.0
v1.7.0

AWS IoT Greengrass ML SDK ソフトウェア

AWS IoT Greengrass Machine Learning SDK は、作成した Lambda 関数でデバイスの機械学習モデルを利用できるようにします。

v1.0.0
v1.0.0

ご意見をお待ちしております

ご意見をお待ちしております。お問い合わせの場合には、AWS IoT Greengrass フォーラムをご覧ください。