2023 年 6 月 30 日に AWS IoT Greengrass Version 1 は延長ライフサイクルフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日付以降、AWS IoT Greengrass V1 の機能、拡張機能、バグ修正、またはセキュリティパッチを提供するアップデートはリリースされません。AWS IoT Greengrass V1 で稼働中のデバイスは中断されず、引き続き動作し、クラウドに接続できます。重要な新機能や新たなプラットフォームのサポートが追加された AWS IoT Greengrass Version 2 への移行を強くお勧めします。
AWS IoT Greengrass の概要
AWS IoT Greengrass は、クラウドの機能をローカルデバイスに拡張するソフトウェアです。これにより、デバイスは情報源に近いデータを収集および分析して、ローカルイベントに自動的に反応し、ローカルネットワークで互いに安全に通信することができます。ローカルデバイスは、AWS IoT Core と安全に通信し、AWS クラウド に IoT データをエクスポートすることもできます。AWS IoT Greengrass 開発者は、AWS Lambda 関数と事前構築されたコネクタを使用して、ローカルで実行するためにデバイスにデプロイされるサーバーレスアプリケーションを作成できます。
AWS IoT Greengrass の基本的なアーキテクチャを次の図に示します。
AWS IoT Greengrass により、お客様は IoT デバイスとアプリケーションロジックを構築できるようになります。具体的には、AWS IoT Greengrass により、デバイス上で動作するアプリケーションロジックのクラウドベースの管理が可能になります。ローカルにデプロイした Lambda 関数とコネクタは、ローカルイベント、クラウドからのメッセージ、またはその他のソースによってトリガーされます。
AWS IoT Greengrass では、デバイスはローカルネットワーク上で安全に通信し、クラウドに接続することなくメッセージを交換します。AWS IoT Greengrass は、クラウドへのインバウンドおよびアウトバウンドメッセージが保存されるように、接続が失われた場合にインテリジェントにメッセージをバッファできる、ローカル pub/sub メッセージマネージャーを提供します。
AWS IoT Greengrass でのユーザーデータの保護方法は以下のとおりです。
-
デバイスの安全な認証と認可を介して保護。
-
ローカルネットワークの安全な接続を介して保護。
-
ローカルデバイスとクラウドの間で保護。
デバイスのセキュリティ認証情報は、クラウドへの接続が中断された場合でも、失効するまでグループで機能するため、デバイスはローカルで安全に通信を続けることができます。
AWS IoT Greengrass は、Lambda 関数の安全な無線によるソフトウェア更新をサポートします。
AWS IoT Greengrass は以下の要素によって構成される
-
ソフトウェアディストリビューション
-
クラウドサービス
-
機能
AWS IoT Greengrass Core ソフトウェア
AWS IoT Greengrass Core ソフトウェアには、以下の機能が用意されています。
-
コネクタと Lambda 関数のデプロイとローカル実行。
-
AWS クラウド への自動エクスポートにより、データストリームをローカルで処理します。
-
マネージドサブスクリプションを使用したデバイス、コネクタ、および Lambda 関数間のローカルネットワークを介した MQTT メッセージング。
-
マネージドサブスクリプションを使用した AWS IoT とデバイス、コネクタと Lambda 関数間の MQTT メッセージング。
-
デバイスの認証と承認を使用したデバイスと AWS クラウド 間の安全な接続。
-
デバイスのローカルシャドウ同期。シャドウは AWS クラウド と同期するように設定できます。
-
ローカルデバイスとボリュームリソースへの制御されたアクセス。
-
ローカル推論を実行するためにクラウドでトレーニングされた機械学習モデルのデプロイ。
-
デバイスで Greengrass コアデバイスを検出するための IP アドレス自動検出。
-
新規作成または更新されたグループ設定の一元的デプロイ。設定データをダウンロードすると、コアデバイスが自動的に再起動されます。
-
ユーザー定義の Lambda 関数の安全な無線通信 (OTA) によるソフトウェア更新。
-
コネクタと Lambda 関数で制御される、ローカルシークレットの安全な暗号化されたストレージ。
AWS IoT Greengrass コアインスタンスを設定するには AWS IoT Greengrass API を使用します。この API は、AWS IoT Greengrass グループ定義を作成し、クラウド上に保存されたグループ定義を更新します。
AWS IoT Greengrass Core ソフトウェアのバージョン
AWS IoT Greengrass では、tar.gz ダウンロードファイル、クイックスタートスクリプト、および apt
をサポートされている Debian プラットフォームにインストールするなど、AWS IoT Greengrass Core ソフトウェアをインストールするためのいくつかのオプションを利用できます。詳細については、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。
次のタブでは、AWS IoT Greengrass Core ソフトウェアのバージョンの最新情報と変更について説明しています。
- GGC v1.11
-
- 1.11.6
-
バグ修正と機能向上:
-
デプロイ中に電源損失が突然発生した場合の復元力を改善しました。
-
ストリームマネージャーのデータ破損によって、AWS IoT Greengrass Core ソフトウェアが起動しない場合がある問題を修正しました。
-
新規クライアントデバイスが特定のシナリオでコアに接続できない問題を修正しました。
-
ストリームマネージャーのストリーム名に .log
が含まれなかった問題を修正しました。
- 1.11.5
-
バグ修正と機能向上:
- 1.11.4
-
バグ修正と機能向上:
- 1.11.3
-
バグ修正と機能向上:
-
デバイスへの電源供給が突然なくなった場合に、Ubuntu デバイスですぐに実行される AWS IoT Greengrass Core ソフトウェアが応答しなくなる問題を修正しました。
-
存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。
-
maxWorkItemCount
値が 1024
より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。
-
config.json の keepAlive
プロパティで指定された MQTT KeepAlive
期間を OTA 更新エージェントが無視する問題を修正しました。
-
一般的なパフォーマンス向上とバグ修正。
ストリームマネージャーを使用してデータをクラウドにエクスポートする場合は、AWS IoT Greengrass Core ソフトウェアを以前の v1.x バージョンから v1.11.3 にアップグレードしないでください。ストリームマネージャーを初めて有効にする場合は、最初に最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールすることを強くお勧めします。
- 1.11.1
-
バグ修正と機能向上:
-
ストリームマネージャーのメモリ使用量が増加する問題を修正しました。
-
Greengrass コアデバイスの電源がストリームデータの特定の有効期限 (TTL) を超えてオフになっている場合に、ストリームマネージャーがストリームのシーケンス番号を 0
にリセットする問題を修正しました。
-
AWS クラウド へのデータエクスポートの再試行をストリームマネージャーが適切に停止できない問題を修正しました。
- 1.11.0
-
新機能:
-
Greengrass コアのテレメトリエージェントが、ローカルテレメトリデータを収集し、AWS クラウド に公開します。テレメトリデータを取得してさらに処理するには、Amazon EventBridge ルールを作成して、ターゲットをサブスクライブします。詳細については、「AWS IoT Greengrass コアデバイスからシステムヘルステレメトリデータを収集する」を参照してください。
-
ローカル HTTP API が、AWS IoT Greengrass によって開始されたローカルワーカープロセスの現在の状態のスナップショットを返します。詳細については、「ローカルヘルスチェック API を呼び出す」を参照してください。
-
ストリームマネージャーが、データを Amazon S3 と AWS IoT SiteWise に自動的にエクスポートします。
新しいストリームマネージャーパラメータにより、既存のストリームを更新して、データのエクスポートを一時停止または再開できます。
-
コア上で Python 3.8.x Lambda 関数を実行するためのサポート。
-
Greengrass コア IPC ポート番号の設定に使用する、config.json の新しい ggDaemonPort
プロパティ。デフォルトのポート番号は 8000 です。
Greengrass コア IPC 認証のタイムアウト設定に使用する config.json の新しい systemComponentAuthTimeout
プロパティ。デフォルトのタイムアウトは 5000 ミリ秒です。
-
AWS IoT Greengrass グループあたりの AWS IoT デバイスの最大数を 200 から 2500 に増やしました。
グループあたりのサブスクリプションの最大数を 1000 から 10000 に増やしました。
詳細については、「AWS IoT Greengrass エンドポイントとクォータ」を参照してください。
バグ修正と機能向上:
-
Greengrass サービスプロセスのメモリ使用率を減らすことができる全体的な最適化。
-
新しいランタイム設定パラメータ (mountAllBlockDevices
) により、Greengrass が OverlayFS の設定後、バインドマウントを使用してすべてのブロックデバイスをコンテナにマウントできるようになります。この機能により、/usr
が/
階層下にない場合に、Greengrass のデプロイが失敗する問題が解決されました。
-
/tmp
がシンボリックリンクの場合に、AWS IoT Greengrass コアで障害が発生する問題を修正しました。
-
Greengrass デプロイエージェントが機械学習の未使用モデルアーティファクトを mlmodel_public
フォルダから削除する問題を修正しました。
-
一般的なパフォーマンス向上とバグ修正。
- Extended life versions
-
- 1.10.5
-
バグ修正と機能向上:
- 1.10.4
-
バグ修正と機能向上:
-
デバイスへの電源供給が突然なくなった場合に、Ubuntu デバイスですぐに実行される AWS IoT Greengrass Core ソフトウェアが応答しなくなる問題を修正しました。
-
存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。
-
maxWorkItemCount
値が 1024
より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。
-
config.json の keepAlive
プロパティで指定された MQTT KeepAlive
期間を OTA 更新エージェントが無視する問題を修正しました。
-
一般的なパフォーマンス向上とバグ修正。
- 1.10.3
-
バグ修正と機能向上:
- 1.10.2
-
バグ修正と機能向上:
- 1.10.1
-
バグ修正と機能向上:
- 1.10.0
-
新機能:
- 1.9.4
-
バグ修正と機能向上:
- 1.9.3
-
新機能:
-
Armv6l のサポート。AWS IoT GreengrassCore ソフトウェア v1.9.3 以降は、Armv6l アーキテクチャの Raspbian ディストリビューション (例えば、Raspberry Pi Zero デバイス) にインストールできます。
-
ALPN を使用したポート 443 での OTA 更新。MQTT トラフィックにポート 443 を使用する Greengrass コアは、無線 (OTA) ソフトウェア更新をサポートするようになりました。AWS IoT Greengrass は Application Layer Protocol Network (ALPN) TLS 拡張を使用してこれらの接続を有効にします。詳細については、AWS IoT Greengrass Core ソフトウェアの OTA 更新 および ポート 443 での接続またはネットワークプロキシを通じた接続 を参照してください。
バグ修正と機能向上:
- 1.9.2
-
新機能:
- 1.9.1
-
バグ修正と機能向上:
- 1.9.0
-
新機能:
-
Python 3.7 と Node.js 8.10 の Lambda ランタイムのサポート。Python 3.7 および Node.js 8.10 ランタイムを使用する Lambda 関数を AWS IoT Greengrass コアで実行できるようになりました (AWS IoT Greengrass では、引き続き Python 2.7 および Node.js 6.10 のランタイムがサポートされます)。
-
最適化された MQTT 接続。Greengrass コアは、AWS IoT Core との間で確立する接続の数を削減します。この変更により、接続の数に基づく料金の運用コストを削減できます。
-
ローカル MQTT サーバー用楕円曲線 (EC) キー。ローカル MQTT サーバーは、RSA キーに加えて EC キーをサポートします。(MQTT サーバー証明書には、キータイプに関係なく、SHA-256 RSA 署名があります。) 詳細については、「AWS IoT Greengrass Core セキュリティプリンシパル」を参照してください。
バグ修正と機能向上:
- 1.8.4
-
シャドウ同期とデバイス証明書マネージャーの再接続の問題を修正しました。
一般的なパフォーマンス向上とバグ修正。
- 1.8.3
-
一般的なパフォーマンス向上とバグ修正。
- 1.8.2
-
一般的なパフォーマンス向上とバグ修正。
- 1.8.1
-
一般的なパフォーマンス向上とバグ修正。
- 1.8.0
-
新機能:
-
グループ内にある Lambda 関数の設定可能なデフォルトアクセス ID。このグループレベルの設定により、Lambda 関数の実行で使用されるデフォルトのアクセス許可が決まります。ユーザー ID、グループ ID、またはその両方を設定できます。個々の Lambda 関数は、そのグループのデフォルトのアクセス ID を上書きできます。詳細については、「グループ内の Lambda 関数に対するデフォルトのアクセス ID の設定」を参照してください。
-
ポート 443 経由の HTTPS トラフィック。HTTPS コミュニケーションは、デフォルトのポート 8443 ではなくポート 443 を経由するように設定できます。これにより、AWS IoT Greengrass がサポートする Application Layer Protocol Network (ALPN) TLS 拡張が補完され、すべての Greengrass メッセージングトラフィック (MQTT と HTTPS の両方) がポート 443 を使用できるようになります。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」を参照してください。
-
AWS IoT 接続用の予測される名前のクライアント ID。この変更により、AWS IoT Device Defender および AWS IoT ライフサイクルイベントのサポートが有効になり、そのため接続、切断、購読、および購読解除のイベントに関する通知を受け取ることができます。予測可能な命名により、接続 ID を中心としたロジックの作成も容易になります (例えば、証明書の属性に基づいてサブスクライブポリシーテンプレートを作成します。詳細については、「AWS IoT を使用した MQTT 接続用クライアント ID」を参照してください。
バグ修正と機能向上:
- 1.7.1
-
新機能:
バグ修正と機能向上:
さらに、このリリースでは以下の機能も使用できます。
- 1.6.1
-
新機能:
バグ修正と機能向上:
- 1.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 Greengrass Core SDK」のダウンロードページから入手できます。
バグ修正と機能向上:
- 1.3.0
-
新機能:
- 1.1.0
-
新機能:
以前のバージョンの AWS IoT Greengrass コアから移行するには:
-
証明書を /greengrass/configuration/certs
フォルダから /greengrass/certs
にコピーします。
-
/greengrass/configuration/config.json
を /greengrass/config/config.json
にコピーします。
-
/greengrass/greengrassd
の代わりに /greengrass/ggc/core/greengrassd
を実行します。
-
新規コアにグループをデプロイします。
- 1.0.0
-
当初のバージョン
AWS IoT Greengrass グループ
Greengrass グループは、Greengrass コア、デバイス、サブスクリプションなどのコンポーネントと設定のコレクションです。グループは、操作の範囲を定義するために使用されます。例えば、グループは建物の 1 つの階、1 台のトラック、または採掘現場全体を表します。次の図は、Greengrass グループを構成するために使用できるコンポーネントを示しています。
前の図の各オブジェクトについて説明します。
デプロイすると、Greengrass グループの定義、Lambda 関数、コネクタ、リソース、およびサブスクリプションテーブルがコアデバイスにコピーされます。詳細については、「AWS IoT Greengrass グループを AWS IoT Greengrass Core にデプロイする」を参照してください。
AWS IoT Greengrass のデバイス
Greengrass グループには、次の 2 種類の AWS IoT デバイスを含めることができます。
- Greengrass コア
-
Greengrass コアは、AWS IoT Greengrass Core ソフトウェアを実行するデバイスです。これにより、AWS IoT Core および AWS IoT Greengrass サービスと直接通信できます。コアには、AWS IoT Core で認証するための独自のデバイス証明書があります。これは、AWS IoT Core レジストリ内にデバイスシャドウと エントリを備えています。Greengrass コアは、ローカル Lambda ランタイム、デプロイエージェント、および IP アドレストラッカーを実行します。IP アドレストラッカーから AWS IoT Greengrass サービスに IP アドレス情報が送信されることで、クライアントデバイスはそのグループおよびコア接続情報を自動的に検出できます。詳細については、「AWS IoT Greengrass Core の設定」を参照してください。
Greengrass グループに含められるコアは 1 つのみです。
- クライアントデバイス
-
クライアントデバイス (接続されたデバイス、Greengrass デバイス、またはデバイスとも呼ばれる) は、MQTT を介して Greengrass コアに接続するデバイスのことです。AWS IoT Core 認証、デバイスシャドウ、および AWS IoT Core レジストリへのエントリに関する独自のデバイス証明書があります。クライアントデバイスは、FreeRTOS を実行、もしくは AWS IoT Device SDK または AWS IoT Greengrass Discovery API を使用して、同じ Greengrass グループ内のコアとの接続と認証に使用される検出情報を取得できます。AWS IoT コンソールを使用して AWS IoT Greengrassのクライアントデバイスを作成および設定する方法については、「モジュール 4: AWS IoT Greengrass グループでのクライアントデバイスの操作」を参照してください。または、AWS CLI を使用して AWS IoT Greengrass のクライアントデバイスを作成および設定する方法の例については、「AWS CLI コマンドリファレンス」の「create-device-definition」を参照してください。
Greengrass グループでは、クライアントデバイスが MQTT を介して Lambda 関数、コネクタ、およびグループ内の他のクライアントデバイスと通信したり、AWS IoT Core またはローカルシャドウサービスと通信したりできるようにするサブスクリプションを作成できます。MQTT メッセージはコアを通じてルーティングされます。コアデバイスがクラウドから切断された場合、クライアントデバイスはローカルネットワークを介して通信を続けることができます。クライアントデバイスのサイズは、マイクロコントローラーベースの小型デバイスから大型アプライアンスまでさまざまです。現在、Greengrass グループには最大 2,500 台のクライアントデバイスを含めることができます。クライアントデバイスは、最大 10 個のグループのメンバーにすることができます。
OPC-UA は、産業通信用の情報交換標準です。Greengrass コアで OPC-UA のサポートを実装するには、IoT SiteWise コネクタを使用できます。コネクタは、産業用デバイスデータを OPC-UA サーバーから AWS IoT SiteWise のアセットプロパティに送信します。
これらのデバイスタイプ間の関係を次の表に示します。
AWS IoT Greengrass Core デバイスでは、証明書が 2 つの場所に保存されます。
-
/greengrass-root
/certs
のコアデバイス証明書。通常、コアデバイス証明書の名前は hash
.cert.pem
です (例えば、86c84488a5.cert.pem
)。この証明書は、コアが AWS IoT Core および AWS IoT Greengrass サービスに接続するとき、相互認証のために AWS IoT クライアントによって使用されます。
-
/greengrass-root
/ggc/var/state/server
の MQTT サーバー証明書。MQTT サーバー証明書の名前は server.crt
です。この証明書は、ローカル MQTT サーバー (Greengrass コア上) と Greengrass デバイスとの間で相互認証に使用されます。
greengrass-root
は、デバイスで AWS IoT Greengrass Core ソフトウェアがインストールされているパスを表します。通常、これは /greengrass
ディレクトリです。
SDK
AWS が提供する以下の SDK を使用して AWS IoT Greengrass を操作します。
- 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 Core または AWS IoT Greengrass に接続するのに役立ちます。詳細については、「AWS IoT デベロッパーガイド」の「AWS IoT Device SDK」を参照してください。
クライアントデバイスでは、任意のAWS IoT Device SDK v2 プラットフォームを使用して、Greengrass コアの接続情報を検出できます。接続情報には、以下が含まれます。
-
クライアントデバイスが属する Greengrass グループの ID。
-
各グループに属する Greengrass コアの IP アドレス。これらは、コアエンドポイントとも呼ばれます。
-
デバイスがコアとの相互認証に使用するグループ CA 証明書。詳細については、「デバイス接続のワークフロー」を参照してください。
AWS IoT Device SDK の v1 で検出機能を備えているのは C++ と Python のプラットフォームのみです。
- AWS IoT Greengrass Core SDK
-
AWS IoT Greengrass Core SDK を使用すると、Lambda 関数は Greengrass コアとのやり取り、AWS IoT へのメッセージの発行、ローカルシャドウサービスとのやり取り、他のデプロイ済み Lambda 関数の呼び出し、およびシークレットリソースへのアクセスを行うことができます。この SDK は、AWS IoT Greengrass コアで実行される Lambda 関数で使用します。詳細については、「AWS IoT Greengrass コア 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」を参照してください。
以下の各タブは、サポートされているプラットフォームと AWS IoT Greengrass Core ソフトウェアの要件を一覧表示します。
- GGC v1.11
-
サポートされているプラットフォーム:
要件:
-
AWS IoT Greengrass コアソフトウェアに対して利用可能な最低 128 MB のディスク空き容量。OTA 更新エージェントを使用する場合、最小値は 400 MB です。
-
AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB RAM。ストリームマネージャーが有効な場合、最小値は 198 MB の RAM です。
AWS IoT コンソールで [Default Group creation] (デフォルトグループの作成) オプションを使用して Greengrass グループを作成すると、ストリームマネージャーはデフォルトで有効になります。
-
Linux カーネルバージョン:
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。
-
GNU C ライブラリ (glibc) バージョン 2.14 以降。OpenWrt ディストリビューションでは、musl C ライブラリ バージョン 1.1.16 以降が必要です。
-
/var/run
ディレクトリがデバイスに存在する必要があります。
-
/dev/stdin
、/dev/stdout
、および /dev/stderr
ファイルが利用可能である必要があります。
-
ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。有効になっていない場合、AWS IoT Greengrass は -i
フラグを使用してセキュアでないモードでのみ実行できます。
-
次の Linux カーネル設定をデバイスで有効にする必要があります。
-
Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。
-
ストリームマネージャーには、Java 8 ランタイムと、基本 AWS IoT Greengrass Core ソフトウェアのメモリ要件に加えて、最低 70 MB の RAM が必要です。AWS IoT コンソールで [Default Group creation] (デフォルトグループの作成) オプションを使用すると、ストリームマネージャーはデフォルトで有効になります。ストリームマネージャーは OpenWrt ディストリビューションではサポートされていません。
-
ローカルで実行する Lambda 関数に必要な AWS Lambda ランタイムをサポートするライブラリ。必須ライブラリは、コアにインストールし、PATH
環境変数に追加する必要があります。同じコアに複数のライブラリをインストールできます。
-
Python 3.8 ランタイムを使用する関数に対応する Python バージョン 3.8。
-
Python 3.7 ランタイムを使用する関数に対応する Python バージョン 3.7。
-
Python 2.7 ランタイムを使用する関数に対応する Python バージョン 2.7。
-
Node.js 12.x ランタイムを使用する関数に対応する Node.js バージョン 12.x。
-
Java 8 ランタイムを使用する関数に対応する Java バージョン 8 以降。
OpenWrt ディストリビューションで Java を実行することは公式にはサポートされていません。ただし、OpenWrt ビルドで Java がサポートされている場合は、Java で作成された Lambda 関数を OpenWrt デバイス上で実行できる可能性があります。
AWS IoT Greengrass が提供する、Lambda ランタイムのサポートの詳細については、「AWS IoT Greengrass コアでの Lambda 関数の実行」を参照してください。
-
次のシェルコマンド (BusyBox バリアントではない) は、無線 (OTA) 更新エージェントで必要です。
-
wget
-
realpath
-
tar
-
readlink
-
basename
-
dirname
-
pidof
-
df
-
grep
-
umount
-
mv
-
gzip
-
mkdir
-
rm
-
ln
-
cut
-
cat
-
/bin/bash
- GGC v1.10
-
サポートされているプラットフォーム:
要件:
-
AWS IoT Greengrass コアソフトウェアに対して利用可能な最低 128 MB のディスク空き容量。OTA 更新エージェントを使用する場合、最小値は 400 MB です。
-
AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB RAM。ストリームマネージャーが有効な場合、最小値は 198 MB の RAM です。
AWS IoT コンソールで [Default Group creation] (デフォルトグループの作成) オプションを使用して Greengrass グループを作成すると、ストリームマネージャーはデフォルトで有効になります。
-
Linux カーネルバージョン:
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。
-
GNU C ライブラリ (glibc) バージョン 2.14 以降。OpenWrt ディストリビューションでは、musl C ライブラリ バージョン 1.1.16 以降が必要です。
-
/var/run
ディレクトリがデバイスに存在する必要があります。
-
/dev/stdin
、/dev/stdout
、および /dev/stderr
ファイルが利用可能である必要があります。
-
ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。有効になっていない場合、AWS IoT Greengrass は -i
フラグを使用してセキュアでないモードでのみ実行できます。
-
次の Linux カーネル設定をデバイスで有効にする必要があります。
-
Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。
-
ストリームマネージャーには、Java 8 ランタイムと、基本 AWS IoT Greengrass Core ソフトウェアのメモリ要件に加えて、最低 70 MB の RAM が必要です。AWS IoT コンソールで [Default Group creation] (デフォルトグループの作成) オプションを使用すると、ストリームマネージャーはデフォルトで有効になります。ストリームマネージャーは OpenWrt ディストリビューションではサポートされていません。
-
ローカルで実行する Lambda 関数に必要な AWS Lambda ランタイムをサポートするライブラリ。必須ライブラリは、コアにインストールし、PATH
環境変数に追加する必要があります。同じコアに複数のライブラリをインストールできます。
-
Python 3.7 ランタイムを使用する関数に対応する Python バージョン 3.7。
-
Python 2.7 ランタイムを使用する関数に対応する Python バージョン 2.7。
-
Node.js 12.x ランタイムを使用する関数に対応する Node.js バージョン 12.x。
-
Java 8 ランタイムを使用する関数に対応する Java バージョン 8 以降。
OpenWrt ディストリビューションで Java を実行することは公式にはサポートされていません。ただし、OpenWrt ビルドで Java がサポートされている場合は、Java で作成された Lambda 関数を OpenWrt デバイス上で実行できる可能性があります。
AWS IoT Greengrass が提供する、Lambda ランタイムのサポートの詳細については、「AWS IoT Greengrass コアでの Lambda 関数の実行」を参照してください。
-
次のシェルコマンド (BusyBox バリアントではない) は、無線 (OTA) 更新エージェントで必要です。
-
wget
-
realpath
-
tar
-
readlink
-
basename
-
dirname
-
pidof
-
df
-
grep
-
umount
-
mv
-
gzip
-
mkdir
-
rm
-
ln
-
cut
-
cat
-
/bin/bash
- GGC v1.9
-
サポートされているプラットフォーム:
要件:
-
AWS IoT Greengrass コアソフトウェアに対して利用可能な最低 128 MB のディスク空き容量。OTA 更新エージェントを使用する場合、最小値は 400 MB です。
-
AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB RAM。
-
Linux カーネルバージョン:
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。
-
GNU C ライブラリ (glibc) バージョン 2.14 以降。OpenWrt ディストリビューションでは、musl C ライブラリ バージョン 1.1.16 以降が必要です。
-
/var/run
ディレクトリがデバイスに存在する必要があります。
-
/dev/stdin
、/dev/stdout
、および /dev/stderr
ファイルが利用可能である必要があります。
-
ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。有効になっていない場合、AWS IoT Greengrass は -i
フラグを使用してセキュアでないモードでのみ実行できます。
-
次の Linux カーネル設定をデバイスで有効にする必要があります。
-
Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。
-
ローカルで実行する Lambda 関数に必要な AWS Lambda ランタイムをサポートするライブラリ。必須ライブラリは、コアにインストールし、PATH
環境変数に追加する必要があります。同じコアに複数のライブラリをインストールできます。
-
Python 2.7 ランタイムを使用する関数に対応する Python バージョン 2.7。
-
Python 3.7 ランタイムを使用する関数に対応する Python バージョン 3.7。
-
Node.js 6.10 ランタイムを使用する関数に対応する Node.js バージョン 6.10 以降。
-
Node.js 8.10 ランタイムを使用する関数に対応する Node.js バージョン 8.10 以降。
-
Java 8 ランタイムを使用する関数に対応する Java バージョン 8 以降。
OpenWrt ディストリビューションで Java を実行することは公式にはサポートされていません。ただし、OpenWrt ビルドで Java がサポートされている場合は、Java で作成された Lambda 関数を OpenWrt デバイス上で実行できる可能性があります。
AWS IoT Greengrass が提供する、Lambda ランタイムのサポートの詳細については、「AWS IoT Greengrass コアでの Lambda 関数の実行」を参照してください。
-
次のシェルコマンド (BusyBox バリアントではない) は、無線 (OTA) 更新エージェントで必要です。
-
wget
-
realpath
-
tar
-
readlink
-
basename
-
dirname
-
pidof
-
df
-
grep
-
umount
-
mv
-
gzip
-
mkdir
-
rm
-
ln
-
cut
-
cat
- GGC v1.8
-
-
サポートされているプラットフォーム:
-
以下のアイテムは必須です。
-
AWS IoT Greengrass コアソフトウェアに対して利用可能な最低 128 MB のディスク空き容量。OTA 更新エージェントを使用する場合、最小値は 400 MB です。
-
AWS IoT Greengrass Core ソフトウェアに割り当てられる最小 128 MB RAM。
-
Linux カーネルバージョン:
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 4.4 以降が必要です。
-
コンテナを使用しない AWS IoT Greengrass の実行をサポートするには、Linux カーネルバージョン 3.17 以降が必要です。この設定では、Greengrass グループのデフォルトの Lambda 関数コンテナ化を [No container] (コンテナなし) に設定する必要があります。手順については、「グループ内の Lambda 関数のコンテナ化のデフォルト設定」を参照してください。
-
GNU C ライブラリ (glibc) バージョン 2.14 以降。
-
/var/run
ディレクトリがデバイスに存在する必要があります。
-
/dev/stdin
、/dev/stdout
、および /dev/stderr
ファイルが利用可能である必要があります。
-
ハードリンクとソフトリンクの保護がデバイス上で有効になっている必要があります。有効になっていない場合、AWS IoT Greengrass は -i
フラグを使用してセキュアでないモードでのみ実行できます。
-
次の Linux カーネル設定をデバイスで有効にする必要があります。
-
Amazon S3 と AWS IoT のルート証明書はシステムの信頼ストアに存在する必要があります。
-
次の項目は、条件付きで必須です。
AWS IoT Greengrass quotas (制限) の詳細については、「Amazon Web Services 全般のリファレンス」の「Service Quotas」を参照してください。
料金に関する詳細は、「AWS IoT Greengrass 料金表」および「AWS IoT Core 料金表」を参照してください。
AWS IoT Greengrass ダウンロード
AWS IoT Greengrass で使用するソフトウェアを見つけてダウンロードするには、以下の情報を使用できます。
AWS IoT Greengrass Core ソフトウェア
AWS IoT Greengrass Core ソフトウェアは、AWS の機能を AWS IoT Greengrass コアデバイスに拡張することで、ローカルデバイスで生成したデータをローカルで操作できるようにします。
- v1.11
-
- 1.11.6
-
バグ修正と機能向上:
-
デプロイ中に電源損失が突然発生した場合の復元力を改善しました。
-
ストリームマネージャーのデータ破損によって、AWS IoT Greengrass Core ソフトウェアが起動しない場合がある問題を修正しました。
-
新規クライアントデバイスが特定のシナリオでコアに接続できない問題を修正しました。
-
ストリームマネージャーのストリーム名に .log
が含まれなかった問題を修正しました。
- 1.11.5
-
バグ修正と機能向上:
- 1.11.4
-
バグ修正と機能向上:
- 1.11.3
-
バグ修正と機能向上:
-
デバイスへの電源供給が突然なくなった場合に、Ubuntu デバイスですぐに実行される AWS IoT Greengrass Core ソフトウェアが応答しなくなる問題を修正しました。
-
存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。
-
maxWorkItemCount
値が 1024
より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。
-
config.json の keepAlive
プロパティで指定された MQTT KeepAlive
期間を OTA 更新エージェントが無視する問題を修正しました。
-
一般的なパフォーマンス向上とバグ修正。
ストリームマネージャーを使用してデータをクラウドにエクスポートする場合は、AWS IoT Greengrass Core ソフトウェアを以前の v1.x バージョンから v1.11.3 にアップグレードしないでください。ストリームマネージャーを初めて有効にする場合は、最初に最新バージョンの AWS IoT Greengrass Core ソフトウェアをインストールすることを強くお勧めします。
- 1.11.1
-
バグ修正と機能向上:
-
ストリームマネージャーのメモリ使用量が増加する問題を修正しました。
-
Greengrass コアデバイスの電源がストリームデータの特定の有効期限 (TTL) を超えてオフになっている場合に、ストリームマネージャーがストリームのシーケンス番号を 0
にリセットする問題を修正しました。
-
AWS クラウド へのデータエクスポートの再試行をストリームマネージャーが適切に停止できない問題を修正しました。
- 1.11.0
-
新機能:
-
Greengrass コアのテレメトリエージェントが、ローカルテレメトリデータを収集し、AWS クラウド に公開します。テレメトリデータを取得してさらに処理するには、Amazon EventBridge ルールを作成して、ターゲットをサブスクライブします。詳細については、「AWS IoT Greengrass コアデバイスからシステムヘルステレメトリデータを収集する」を参照してください。
-
ローカル HTTP API が、AWS IoT Greengrass によって開始されたローカルワーカープロセスの現在の状態のスナップショットを返します。詳細については、「ローカルヘルスチェック API を呼び出す」を参照してください。
-
ストリームマネージャーが、データを Amazon S3 と AWS IoT SiteWise に自動的にエクスポートします。
新しいストリームマネージャーパラメータにより、既存のストリームを更新して、データのエクスポートを一時停止または再開できます。
-
コア上で Python 3.8.x Lambda 関数を実行するためのサポート。
-
Greengrass コア IPC ポート番号の設定に使用する、config.json の新しい ggDaemonPort
プロパティ。デフォルトのポート番号は 8000 です。
Greengrass コア IPC 認証のタイムアウト設定に使用する config.json の新しい systemComponentAuthTimeout
プロパティ。デフォルトのタイムアウトは 5000 ミリ秒です。
-
AWS IoT Greengrass グループあたりの AWS IoT デバイスの最大数を 200 から 2500 に増やしました。
グループあたりのサブスクリプションの最大数を 1000 から 10000 に増やしました。
詳細については、「AWS IoT Greengrass エンドポイントとクォータ」を参照してください。
バグ修正と機能向上:
-
Greengrass サービスプロセスのメモリ使用率を減らすことができる全体的な最適化。
-
新しいランタイム設定パラメータ (mountAllBlockDevices
) により、Greengrass が OverlayFS の設定後、バインドマウントを使用してすべてのブロックデバイスをコンテナにマウントできるようになります。この機能により、/usr
が/
階層下にない場合に、Greengrass のデプロイが失敗する問題が解決されました。
-
/tmp
がシンボリックリンクの場合に、AWS IoT Greengrass コアで障害が発生する問題を修正しました。
-
Greengrass デプロイエージェントが機械学習の未使用モデルアーティファクトを mlmodel_public
フォルダから削除する問題を修正しました。
-
一般的なパフォーマンス向上とバグ修正。
コアデバイスに AWS IoT Greengrass Core ソフトウェアをインストールするには、ご使用のアーキテクチャとオペレーティングシステム (OS) のパッケージをダウンロードし、「入門ガイド」の手順に従います。
アーキテクチャ |
オペレーティングシステム |
リンク |
Armv8 (AArch64) |
Linux |
ダウンロード |
Armv8 (AArch64) |
Linux (OpenWrt) |
ダウンロード |
Armv7l |
Linux |
ダウンロード |
Armv7l |
Linux (OpenWrt) |
ダウンロード |
Armv6l |
Linux |
ダウンロード |
x86_64 |
Linux |
ダウンロード |
- Extended life versions
-
- 1.10.5
-
v1.10 の新機能:
バグ修正と機能向上:
-
ハードウェアセキュリティ統合による無線通信 (OTA) アップデートは、OpenSSL 1.1 で設定できます。
-
ストリームマネージャーはファイルデータの破損に対する回復性が高くなっています。
-
Linux カーネル 5.1 以降を使用しているデバイスで sysfs マウントエラーが発生する問題を修正しました。
-
config.json の新しい mqttOperationTimeout
プロパティ。これを使用して、AWS IoT Core との MQTT 接続における発行、サブスクリプション、サブスクリプション解除の操作にタイムアウトを設定します。
-
ストリームマネージャーのメモリ使用量が増加する問題を修正しました。
-
Greengrass コア IPC 認証のタイムアウト設定に使用する config.json の新しい systemComponentAuthTimeout
プロパティ。デフォルトのタイムアウトは 5000 ミリ秒です。
-
config.json の keepAlive
プロパティで指定された MQTT KeepAlive
期間を OTA 更新エージェントが無視する問題を修正しました。
-
maxWorkItemCount
値が 1024
より大きい値に設定されていると、MQTT メッセージが適切に送信されない問題を修正しました。
-
存続期間の長い Lambda 関数への MQTT メッセージの配信が遅延する問題を修正しました。
-
デバイスへの電源供給が突然なくなった場合に、Ubuntu デバイスですぐに実行される AWS IoT Greengrass Core ソフトウェアが応答しなくなる問題を修正しました。
-
一般的なパフォーマンス向上とバグ修正。
コアデバイスに AWS IoT Greengrass Core ソフトウェアをインストールするには、ご使用のアーキテクチャとオペレーティングシステム (OS) のパッケージをダウンロードし、「入門ガイド」の手順に従います。
アーキテクチャ |
オペレーティングシステム |
リンク |
Armv8 (AArch64) |
Linux |
ダウンロード |
Armv8 (AArch64) |
Linux (OpenWrt) |
ダウンロード |
Armv7l |
Linux |
ダウンロード |
Armv7l |
Linux (OpenWrt) |
ダウンロード |
Armv6l |
Linux |
ダウンロード |
x86_64 |
Linux |
ダウンロード |
- 1.9.4
-
v1.9 の新機能:
-
Python 3.7 と Node.js 8.10 の Lambda ランタイムのサポート。Python 3.7 および Node.js 8.10 ランタイムを使用する Lambda 関数を AWS IoT Greengrass コアで実行できるようになりました (AWS IoT Greengrass では、引き続き Python 2.7 および Node.js 6.10 のランタイムがサポートされます)。
-
最適化された MQTT 接続。Greengrass コアは、AWS IoT Core との間で確立する接続の数を削減します。この変更により、接続の数に基づく料金の運用コストを削減できます。
-
ローカル MQTT サーバー用楕円曲線 (EC) キー。ローカル MQTT サーバーは、RSA キーに加えて EC キーをサポートします。(MQTT サーバー証明書には、キータイプに関係なく、SHA-256 RSA 署名があります。) 詳細については、「AWS IoT Greengrass Core セキュリティプリンシパル」を参照してください。
-
OpenWrt をサポートします。AWS IoT GreengrassCore ソフトウェア v1.9.2 以降は、Armv8 (AArch64) および Armv7l アーキテクチャの OpenWrt ディストリビューションにインストールできます。現在、OpenWrt は ML 推論をサポートしていません。
-
Armv6l のサポート。AWS IoT GreengrassCore ソフトウェア v1.9.3 以降は、Armv6l アーキテクチャの Raspbian ディストリビューション (例えば、Raspberry Pi Zero デバイス) にインストールできます。
-
ALPN を使用したポート 443 での OTA 更新。MQTT トラフィックにポート 443 を使用する Greengrass コアは、無線 (OTA) ソフトウェア更新をサポートするようになりました。AWS IoT Greengrass は Application Layer Protocol Network (ALPN) TLS 拡張を使用してこれらの接続を有効にします。詳細については、AWS IoT Greengrass Core ソフトウェアの OTA 更新 および ポート 443 での接続またはネットワークプロキシを通じた接続 を参照してください。
コアデバイスに AWS IoT Greengrass Core ソフトウェアをインストールするには、ご使用のアーキテクチャとオペレーティングシステム (OS) のパッケージをダウンロードし、「入門ガイド」の手順に従います。
アーキテクチャ |
オペレーティングシステム |
リンク |
Armv8 (AArch64) |
Linux |
ダウンロード |
Armv8 (AArch64) |
Linux (OpenWrt) |
ダウンロード |
Armv7l |
Linux |
ダウンロード |
Armv7l |
Linux (OpenWrt) |
ダウンロード |
Armv6l |
Linux |
ダウンロード |
x86_64 |
Linux |
ダウンロード |
- 1.8.4
-
-
新機能:
-
グループ内にある Lambda 関数の設定可能なデフォルトアクセス ID。このグループレベルの設定により、Lambda 関数の実行で使用されるデフォルトのアクセス許可が決まります。ユーザー ID、グループ ID、またはその両方を設定できます。個々の Lambda 関数は、そのグループのデフォルトのアクセス ID を上書きできます。詳細については、「グループ内の Lambda 関数に対するデフォルトのアクセス ID の設定」を参照してください。
-
ポート 443 経由の HTTPS トラフィック。HTTPS コミュニケーションは、デフォルトのポート 8443 ではなくポート 443 を経由するように設定できます。これにより、AWS IoT Greengrass がサポートする Application Layer Protocol Network (ALPN) TLS 拡張が補完され、すべての Greengrass メッセージングトラフィック (MQTT と HTTPS の両方) がポート 443 を使用できるようになります。詳細については、「ポート 443 での接続またはネットワークプロキシを通じた接続」を参照してください。
-
AWS IoT 接続用の予測される名前のクライアント ID。この変更により、AWS IoT Device Defender および AWS IoT ライフサイクルイベントのサポートが有効になり、そのため接続、切断、購読、および購読解除のイベントに関する通知を受け取ることができます。予測可能な命名により、接続 ID を中心としたロジックの作成も容易になります (例えば、証明書の属性に基づいてサブスクライブポリシーテンプレートを作成します。詳細については、「AWS IoT を使用した MQTT 接続用クライアント ID」を参照してください。
バグ修正と機能向上:
コアデバイスに AWS IoT Greengrass Core ソフトウェアをインストールするには、ご使用のアーキテクチャとオペレーティングシステム (OS) のパッケージをダウンロードし、「入門ガイド」の手順に従います。
アーキテクチャ |
オペレーティングシステム |
リンク |
Armv8 (AArch64) |
Linux |
ダウンロード |
Armv7l |
Linux |
ダウンロード |
x86_64 |
Linux |
ダウンロード |
このソフトウェアをダウンロードすると、Greengrass Core ソフトウェアのライセンス契約に同意したと見なされます。
デバイスに AWS IoT Greengrass Core ソフトウェアをインストールするためのその他のオプションについては、「AWS IoT Greengrass Core ソフトウェアをインストールします。」を参照してください。
AWS IoT Greengrass スナップソフトウェア
AWS IoT Greengrass スナップ 1.11.x では、限定バージョンの AWS IoT Greengrass をすべての必要な依存関係と共に、便利なソフトウェアパッケージを通じて、コンテナ化された環境で実行できるようにします。
AWS IoT Greengrass スナップは AWS IoT Greengrass Core ソフトウェア v1.11.x で利用できます。AWS IoT Greengrass では v1.10.x 用のスナップは提供していません。サポートされていないバージョンのバグ修正や更新プログラムは受けられません。
AWS IoT Greengrass スナップは、コネクタと機械学習 (ML) 推論をサポートしていません。
詳細については、「スナップでの AWS IoT Greengrass の実行」を参照してください。
AWS IoT Greengrass Docker ソフトウェア
AWS には、Docker コンテナで AWS IoT Greengrass を簡単に実行できるように Dockerfile と Docker イメージが用意されています。
- Dockerfile
-
Dockerfile には、AWS IoT Greengrass コンテナのカスタムイメージを構築するためのソースコードが含まれています。イメージを変更して、別のプラットフォームのアーキテクチャで実行したり、イメージサイズを縮小したりできます。手順については、README ファイルを参照してください。
該当する AWS IoT Greengrass Core ソフトウェアバージョンをダウンロードします。
- v1.11
-
- Extended life versions
-
- Docker イメージ
-
Docker イメージには、Amazon Linux 2 (x86_64) および Alpine Linux (x86_64、Armv7l、または AArch64) のベースイメージにインストールされた AWS IoT Greengrass Core ソフトウェアと依存関係が含まれています。構築済みのイメージを使用して、AWS IoT Greengrass の試用を開始できます。
2022 年 6 月 30 日、AWS IoT Greengrass は Amazon Elastic Container Registry (Amazon ECR) と Docker Hub に公開されている AWS IoT Greengrass Core ソフトウェア v1.x Docker イメージのメンテナンスを終了します。これらの Docker イメージは、メンテナンス終了から 1 年後の 2023 年 6 月 30 日まで、Amazon ECR および Docker Hub から引き続きダウンロードすることができます。ただし、AWS IoT Greengrass Core ソフトウェア v1.x Docker イメージでは、2022 年 6 月 30 日のメンテナンス終了後、セキュリティパッチやバグ修正が提供されなくなります。これらの Docker イメージに依存する本番ワークロードを実行する場合は、AWS IoT Greengrass が提供する Dockerfiles を使用して、独自の Docker イメージを構築することをお勧めします。詳細については、「AWS IoT Greengrass Version 1 メンテナンスポリシー」を参照してください。
構築済みイメージは、Docker Hub または Amazon Elastic Container Registry(Amazon ECR) からダウンロードできます。
-
Docker Hub の場合は、version
タグを使用して、特定のバージョンの Greengrass Docker イメージをダウンロードします。すべての使用可能なイメージを確認するには、Docker Hub の [タグ] ページを参照してください。
-
Amazon ECR の場合は、latest
タグを使用して、利用可能な最新バージョンの Greengrass Docker イメージをダウンロードします。使用可能なイメージバージョンのリストと Amazon ECR からのイメージダウンロードの詳細については、「Docker コンテナでの AWS IoT Greengrass の実行」を参照してください。
v1.11.6 以降の AWS IoT Greengrass Core ソフトウェアでは、Greengrass Docker イメージに Python 2.7 が含まれていません。これは、Python 2.7 のサポートが 2020 年に終了し、セキュリティ更新プログラムを取得できなくなったためです。これらの Docker イメージに更新する場合は、アプリケーションが新しい Docker イメージで動作することを検証した後に、アップデートを本番デバイスに展開することをお勧めします。Greengrass Docker イメージを使用するアプリケーションに Python 2.7 が必要な場合は、Greengrass Dockerfile を変更して、アプリケーションに Python 2.7 を含めることができます。
AWS IoT Greengrass では、AWS IoT Greengrass Core ソフトウェア v1.11.1 の Docker イメージは提供されていません。
デフォルトでは、alpine-aarch64
イメージと alpine-armv7l
イメージは Armベースのホストでのみ実行できます。これらのイメージを x86 ホストで実行するには、QEMU をインストールして QEMU ライブラリをホストにマウントできます。例:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
AWS IoT Greengrass Core SDK
Lambda 関数は AWS IoT Greengrass Core SDK を使用してローカルで AWS IoT Greengrass コアとやり取りします。これにより、デプロイされた Lambda 関数に以下を許可します。
-
AWS IoT Core で MQTT メッセージを交換します。
-
Greengrass グループのコネクタ、クライアントデバイス、その他の Lambda 関数で MQTT メッセージを交換します。
-
ローカル車道サービスとやり取りを行います。
-
その他のローカル Lambda 関数を呼び出します。
-
シークレットリソースにアクセスします。
-
ストリームマネージャーと対話します。
使用している言語またはプラットフォームの AWS IoT Greengrass Core SDK を GitHub からダウンロードします。
詳細については、「AWS IoT Greengrass コア SDK」を参照してください。
サポートされている Machine Learning ランタイムおよびライブラリ
Greengrass コアで推論を実行するには、ML モデルタイプ用の機械学習ランタイムまたはライブラリをインストールする必要があります。
AWS IoT Greengrass は、次の ML モデルタイプをサポートしています。モデルタイプおよびデバイスプラットフォーム用のランタイムまたはライブラリをインストールする方法については、次のリンクを参照してください。
機械学習のサンプル
AWS IoT Greengrass には、サポートされている ML ランタイムとライブラリで使用できるサンプルが用意されています。これらのサンプルは、Greengrass Core ソフトウェアライセンス契約に従ってリリースされます。
- Deep learning runtime (DLR)
-
お使いのデバイスプラットフォームのサンプルをダウンロードします。
DLR サンプルを使用するチュートリアルについては、「最適化された機械学習推論を AWS Management Console を使用して設定する方法」を参照してください。
- MXNet
-
お使いのデバイスプラットフォームのサンプルをダウンロードします。
MXNet サンプルを使用するチュートリアルについては、「AWS Management Console を使用して機械学習推論を設定する方法」を参照してください。
- TensorFlow
-
お使いのデバイスプラットフォーム用の Tensorflow サンプルをダウンロードします。このサンプルは、Raspberry Pi、NVIDIA Jetson TX2、Intel Atom で動作します。
AWS IoT Greengrass ML SDK ソフトウェア
AWS IoT Greengrass Machine Learning SDK により、作成済みの Lambda 関数がローカルの機械学習モデルを使用して ML フィードバックコネクタにデータを送信し、アップロードと発行を行えます。
- v1.1.0
-
- v1.0.0
-
ご意見をお待ちしております。お問い合わせの場合は、「AWS re:Post」にアクセスし、AWS IoT Greengrass タグを使用してください。