Greengrass コネクタを使用したサービスおよびプロトコルとの統合 - AWS IoT Greengrass

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

Greengrass コネクタを使用したサービスおよびプロトコルとの統合

この機能は AWS IoT Greengrass Core v1.7 以降で使用できます。

Greengrass コネクタは、一般的なエッジシナリオの開発ライフサイクルの加速化に役立つあらかじめ構築されたモジュールです。これらのモジュールにより、ローカルインフラストラクチャ、デバイスプロトコル、AWS、その他のクラウドサービスとのやり取りが容易になります。コネクタを使用すれば、新しいプロトコルや API を学習する時間を短縮し、ビジネスにとって重要なロジックに注力できます。

次の図は、AWS IoT Greengrass 環境でコネクタが役立つ場所を示しています。

コネクタはデバイス、サービス、ローカルリソースに接続する。

多くのコネクターは、MQTTメッセージを使用してデバイスと通信し、 Greengrass Lambda グループ内の関数、または AWS IoT 現地のシャドーサービスです 次の例では、 Twilio 通知 コネクターはユーザー定義の MQTT メッセージを受信します。 Lambda 関数は、 AWS Secrets ManagerおよびはTwilio APIを呼び出します。

コネクタは Lambda 関数からの MQTT メッセージを受信し、サービスを呼び出す。

このソリューションを作成するチュートリアルについては、以下を参照してください。 Greengrass コネクタの開始方法 (コンソール) および Greengrass コネクタの開始方法 (CLI).

Greengrass コネクタは、デバイスの機能をすばやく拡張したり、専用デバイスを作成したりするのに役立ちます。コネクタを使用することで、以下のことが簡単に行えるようになります。

  • 再利用可能なビジネスロジックを実装する。

  • AWS やサードパーティーのサービスを含め、クラウドサービスおよびローカルサービスとやり取りする。

  • デバイスのデータを収集して処理する。

  • MQTT トピックのサブスクリプションとユーザー定義の Lambda 関数を使用して、デバイス間呼び出しを可能にする。

AWS では、一般的なサービスおよびデータソースとのやり取りを簡略化する一連の Greengrass コネクタを提供しています。これらの事前構築済みモジュールにより、ログ記録と診断、補充、産業データ処理、アラームとメッセージングのシナリオに対応できます。詳細については、「」を参照してください。AWS が提供する Greengrass コネクタ.

Requirements

コネクタには以下の要件が適用されます。

  • 使用している各コネクタの要件を満たす必要があります。これらの要件には、AWS IoT Greengrass コアソフトウェアの最小バージョン、デバイスの前提条件、必要なアクセス許可、制限などがあります。詳細については、「」を参照してください。AWS が提供する Greengrass コネクタ.

  • Greengrass グループに含めることができる、コネクタの設定済みインスタンスは 1 つのみですが、このインスタンスは複数のサブスクリプションで使用することができます。詳細については、「」を参照してください。設定パラメータ.

  • デフォルトコンテナ化 Greengrassグループが コンテナなし、グループ内のコネクタはコンテナ化せずに実行する必要があります。サポートしているコネクターを見つけるには コンテナなし モード、を参照 AWS が提供する Greengrass コネクタ.

Greengrass コネクタの使用

コネクタはグループコンポーネントの一種です。デバイスやユーザー定義の Lambda 機能を使用するには、グループにコネクタを追加し、設定を構成して、 AWS IoT Greengrass コア. コネクタは、コア環境で実行されます。

一部のコネクタは、シンプルなスタンドアロンアプリケーションとしてデプロイすることができます。たとえば、 Device Defender コネクターがコア・デバイスからシステム・メトリックを読み取り、 AWS IoT Device Defender 分析のために。

それ以外のコネクタは、さらに大きいソリューションの構成要素として使用することができます。次のソリューション例では、 Modbus-RTU プロトコルアダプタ センサーからのメッセージを処理するコネクタと、 Twilio 通知 コネクターを使用してTwilioメッセージをトリガします。


                データ フロー Lambda 関数から Modbus-RTU プロトコルアダプタ コネクタから Lambda 関数から Twilio 通知 を当社へ譲渡します。

ソリューションには、多くの場合、コネクタの横に配置され、コネクタが送受信するデータを処理するユーザー定義の Lambda 関数が含まれています。この例では、TempMonitor 関数は、 Modbus-RTU プロトコルアダプタは、ビジネス ロジックを実行し、データを Twilio 通知.

ソリューションを作成してデプロイするには、以下の一般的なプロセスに従います。

  1. データフローの概要を設計します。作業に必要なデータソース、データチャネル、サービス、プロトコル、リソースを特定します。このサンプルソリューションでは、Modbus RTU プロトコル、物理 Modbus シリアルポート、Twilio でのデータが含まれています。

  2. ソリューションに含めるコネクタを特定し、グループに追加します。解決策の例には、 Modbus-RTU プロトコルアダプタ および Twilio 通知. シナリオに該当するコネクタを見つけ、個々の要件を知るには、「」を参照してください。AWS が提供する Greengrass コネクタ.

  3. ユーザー定義の Lambda 関数、デバイス、またはリソースが必要かどうかを特定し、それらを作成してグループに追加します。たとえば、ビジネスロジックを含む関数や、ソリューション内の別のエンティティに必要な形式にデータを加工する関数を作成して追加します。このサンプルソリューションでは、Modbus RTU リクエストを送信して Twilio 通知をトリガーする関数を使用しています。また、Modbus RTU シリアルポートのローカルデバイスリソースと、Twilio 認証トークンのシークレットリソースも含まれています。

    注記

    シークレットリソースは、 からのパスワード、トークン、および他のシークレットを参照します。AWS Secrets Manager. シークレットは、コネクタおよび Lambda 関数でサービスやアプリケーションの認証に使用できます。デフォルトでは、 AWS IoT Greengrass は、"グリーングラス-"。詳細については、「」を参照してください。AWS IoT Greengrass Core にシークレットをデプロイする.

  4. ソリューション内のエンティティに MQTT メッセージの交換を許可するサブスクリプションを作成します。サブスクリプションでコネクタを使用する場合、コネクタ、およびメッセージのソースまたはターゲットでは、コネクタによってサポートされている事前定義済みのトピック構文を使用する必要があります。詳細については、「」を参照してください。入力と出力.

  5. Greengrass Core にグループをデプロイします。

コネクタを作成してデプロイする方法については、以下のチュートリアルを参照してください。

設定パラメータ

多くのコネクタには、動作や出力をカスタマイズするためのパラメータが用意されています。これらのパラメータは、コネクタのライフサイクルでの初期化時、実行時などのタイミングで使用します。

パラメータのタイプと使用方法はコネクタごとに異なります。たとえば、 SNS コネクタには、デフォルトのSNSトピックを構成するパラメータがあります。 Device Defender には、データ サンプリング レートを構成するパラメータがあります。

グループバージョンには、複数のコネクタを含めることができますが、一度に使用されるコネクタのインスタンスは 1 つのみです。これは、グループの各コネクタのアクティブな設定は 1 つだけであることを意味します。ただし、コネクタインスタンスはグループ内の複数のサブスクリプションで使用できます。たとえば、複数のデバイスに Kinesis Firehose コネクタへのデータの送信を許可するサブスクリプションを作成できます。

グループリソースへのアクセスに使用するパラメータ

Greengrass コネクタでは、グループリソースを使用して、Core デバイス上のファイルシステム、ポート、周辺機器、その他のローカルリソースにアクセスします。コネクタには、グループリソースへのアクセスを必要とする場合に使用する設定パラメータがあります。

グループリソースには以下のものが含まれます。

  • ローカルリソース。. Greengrass Core デバイス上に存在するディレクトリ、ファイル、ポート、ピン、周辺機器。

  • 機械学習リソース. クラウドでトレーニングされ、ローカル推論のために Core にデプロイされる機械学習モデル。

  • シークレットリソース。. からのパスワード、キー、トークン、または任意のテキストの暗号化されたローカルコピー。AWS Secrets Manager. コネクタは、これらのローカルシークレットに安全にアクセスし、それらを使用してサービスまたはローカルインフラストラクチャを認証できます。

たとえば、 Device Defender ホストのシステム メトリックへのアクセスの有効化 /proc ディレクトリ、およびパラメータ Twilio 通知 ローカルに保存されたTwilio認証トークンへのアクセスを有効にする。

コネクタのパラメータの更新

コネクタを Greengrass グループに追加すると、パラメータが設定されます。コネクタを追加したら、パラメータ値を変更することができます。

  • コンソールで: グループ構成ページから、 コネクタ、およびコネクターのコンテキストメニューから、 編集.

    注記

    コネクタで使用されているシークレットリソースを、別のシークレットを参照するように後で変更する場合は、コネクタのパラメータを編集し、変更を確認する必要があります。

  • APIで: 新しい構成を定義する別のバージョンのコネクタを作成します。

    AWS IoT Greengrass API では、バージョンを使用してグループを管理します。バージョンはイミュータブルであるため、グループコンポーネント (グループのデバイス、関数、リソースなど) を追加または変更するには、新規作成または更新したコンポーネントのバージョンを作成する必要があります。次に、各コンポーネントのターゲットバージョンを含むグループバージョンを作成してデプロイします。

コネクタの設定に変更を加えたら、これらの変更をコアに反映するためにグループをデプロイする必要があります。

入力と出力

多くの Greengrass コネクタは、MQTT メッセージを送受信することで、他のエンティティと通信できます。MQTT通信は、コネクタがデータを Lambda 機能、デバイス、およびグリーングラス グループのその他のコネクタ、または AWS IoT 現地のシャドーサービスです この通信を許可するには、コネクタが属するグループにサブスクリプションを作成する必要があります。詳細については、「」を参照してください。MQTT メッセージングワークフローにおけるマネージドサブスクリプション.

コネクタは、メッセージ受信者、メッセージ発行者、またはその両方になります。各コネクタは、発行またはサブスクライブする MQTT トピックを定義します。メッセージソースまたはメッセージターゲットがコネクタとなるサブスクリプションでは、これらの事前定義済みのトピックを使用する必要があります。コネクタの購読を構成する手順を含むチュートリアルは、以下を参照してください。 Greengrass コネクタの開始方法 (コンソール) および Greengrass コネクタの開始方法 (CLI).

注記

多くのコネクタには、クラウドサービスまたはローカルサービスとやり取りするための組み込みの通信モードもあります。これらはコネクタによって異なり、パラメータの設定や グループの役割. コネクタの要件については、「」を参照してください。AWS が提供する Greengrass コネクタ.

入力トピック

コネクタには通常、MQTT トピックに関する入力データが送信されます。一部のコネクタは、入力データ用に複数のトピックにサブスクライブします。たとえば、シリアルストリーム コネクタは以下の 2 つのトピックをサポートしています。

  • serial/+/read/#

  • serial/+/write/#

このコネクタでは、読み取りリクエストと書き込みリクエストを対応するトピックに送信します。サブスクリプションを作成するときは、実装に合ったトピックを使用してください。

は、 + および # 前の例の文字はワイルドカードです。これらのワイルドカードを使用すると、受信者は複数のトピックに関するメッセージを受信できます。発行者は発行先のトピックをカスタマイズできます。

  • は、 + ワイルドカードは、トピック階層の任意の場所に表示されます。このワイルドカードは、1 つの階層項目に置き換わります。

    例としては、 sensor/+/input、メッセージはトピックに公開できます sensor/id-123/input しかし、 sensor/group-a/id-123/input.

  • は、 # ワイルドカードは、トピック階層の最後にのみ表示されます。0 以上の階層項目で置き換えることができます。

    例としては、 sensor/#、メッセージはに公開できます sensor/sensor/id-123、および sensor/group-a/id-123、ただし、 sensor.

ワイルドカード文字は、トピックにサブスクライブするときにのみ有効です。ワイルドカードを含むトピックにメッセージを発行することはできません。入力または出力トピックの要件については、コネクタのドキュメントを参照してください。詳細については、「」を参照してください。AWS が提供する Greengrass コネクタ.

コンテナ化のサポート

デフォルトでは、ほとんどのコネクタは、 によって管理されている分離されたランタイム環境の Greengrass コア上で実行されます。AWS IoT Greengrass. これらのランタイム環境は、 コンテナでは、コネクターとホストシステム間の分離が可能になり、ホストとコネクターのセキュリティが強化されます。

ただし、このグリーングラスのコンテナ化は、 AWS IoT Greengrass Dockerコンテナ内、またはcgroupのない古いLinuxカーネル。これらの環境では、コネクターは コンテナなし モード。サポートしているコネクターを見つけるには コンテナなし モード、を参照 AWS が提供する Greengrass コネクタ. 一部のコネクタはこのモードでネイティブに動作し、一部のコネクタでは分離モードを設定できます。

絶縁モードを コンテナなし グリーングラスのコンテナ化をサポートする環境で使用していますが、 グリーングラス容器 可能な場合はモードにします。

注記

は、 デフォルトコンテナ化 グリーングラス グループの設定はコネクターには適用されません。

コネクタのバージョンのアップグレード

コネクタプロバイダーは、機能の追加、問題の修正、パフォーマンスの向上を行うコネクタの新しいバージョンをリリースすることがあります。使用可能なバージョンおよび関連する変更についての詳細は、 各コネクタのマニュアル.

の AWS IoT コンソール、Greengrassグループのコネクタの新しいバージョンをチェックできます。

  1. 選択 グリーングラスグループを選択し、グループを選択します。

  2. 選択 コネクタ グループのコネクターを表示します。

    コネクタに新しいバージョンがある場合は、 利用可能 ボタンが アップグレード 列。

  3. コネクタのバージョンをアップグレードするには:

    1. コネクタ ページの アップグレード 列、選択 利用可能. は、 アップグレードコネクタ ページが開き、必要に応じて現在のパラメータ設定が表示されます。

      新しいコネクタバージョンを選択し、必要に応じてパラメータを定義してから、 アップグレード.

    2. サブスクリプション ページで、新しい購読をグループに追加して、そのコネクターをソースまたはターゲットとして使用するすべてのものを置き換えます。次に、古いサブスクリプションを削除します。

      サブスクリプションはバージョンごとにコネクタを参照するため、グループのコネクタバージョンを変更すると無効になります。

    3. から アクション メニュー、選択 展開 コアに変更をデプロイします。

からコネクタをアップグレードするには AWS IoT Greengrass API を使用して、更新されたコネクターと購読を含むグループ バージョンを作成および配布します。コネクタをグループに追加する場合と同じプロセスを使用します。の使用法を示す詳細な手順については、 AWS CLI 構成と導入を Twilio 通知 コネクタ、を参照[こねくたー:さんし Greengrass コネクタの開始方法 (CLI).

コネクタのログ記録

Greengrass コネクタには、Greengrass ログにイベントとエラーを書き込む Lambda 関数が含まれています。グループ設定に応じて、ログは CloudWatch Logs、ローカルファイルシステム、またはその両方に書き込まれます。コネクタからのログには、対応する関数の ARN が含まれています。以下のサンプル ARN は、Kinesis Firehose コネクタのものです。

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

ログ記録のデフォルト設定では、情報レベルのログが以下のディレクトリ構造でファイルシステムに書き込まれます。

greengrass-root/ggc/var/log/user/リージョン/aws/function-name.log

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