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

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

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

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

この機能は、で利用できます。AWS IoT GreengrassCore v1.7 以降。

コネクタは、のAWS IoT Greengrassは、事前に構築されたモジュールで、ローカルインフラストラクチャー、デバイスプロトコル、AWS、およびその他のクラウドサービスが含まれます。コネクタを使用することで、新しいプロトコルや API を学習する時間を短縮し、のロジックそれはあなたのビジネスにとって重要です。

次の図は、コネクタがAWS IoT Greengrass 風景。


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

多くのコネクタは、MQTT メッセージを使用して、グループのデバイスおよび Greengrass Lambda 関数と通信したり、AWS IoTローカルシャドウサービス。以下の例では、Twilio 通知コネクタはユーザー定義の Lambda 関数による MQTT メッセージを受信し、からのシークレットのローカル参照を使用します。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 コネクタの使用

Aコネクタはグループコンポーネントの一種です。他のグループコンポーネント (デバイスおよびユーザー定義の Lambda 関数など) と同様に、グループにコネクタを追加して、設定を行い、にデプロイします。AWS IoT Greengrassコア。コネクタは、コア環境で実行されます。

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

それ以外のコネクタは、さらに大きいソリューションの構成要素として追加することができます。以下のサンプルソリューションでは、Modbus-RTU Protocol Adapter コネクタはセンサーからのメッセージを処理し、Twilio 通知コネクタは Twilio メッセージを開始します。


                Lambda 関数からModbus-RTUプロトコルアダプタコネクタへのLambda 関数へのTwilio通知コネクタへのTwilioへのデータフロー。

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

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

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

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

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

    注記

    シークレットリソースは、AWS Secrets Manager からのパスワード、トークン、および他のシークレットを参照します。シークレットは、コネクタおよび Lambda 関数でサービスやアプリケーションの認証に使用できます。デフォルトでは、AWS IoT Greengrass は名前が「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 GreengrassAPI はバージョンを使用してグループを管理します。バージョンは変更不可であるため、グループコンポーネント (グループのデバイス、関数、リソースなど) を追加または変更するには、新規コンポーネントまたは更新されたコンポーネントのバージョンを作成する必要があります。次に、各コンポーネントのターゲットバージョンを含むグループバージョンを作成し、デプロイします。

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

入力と出力

多くの Greengrass コネクタは、MQTT メッセージを送受信することで、他のエンティティと通信できます。MQTT 通信を制御するサブスクリプションでは、Greengrass グループの 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-123sensor/group-a/id-123 には発行できますが、sensor には発行できません。

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

コンテナ化のサポート

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

ただし、この Greengrass コンテナ化は、一部の環境ではサポートされていません。たとえば、AWS IoT GreengrassDockerコンテナまたは cgroups のない古い Linux カーネルで。これらの環境では、コネクタはコンテナなしモードで実行する必要があります。コンテナなしモードをサポートするコネクタを検索するには、「AWS-提供する Greengrass コネクタ」を参照してください。一部のコネクタはこのモードでネイティブに動作し、一部のコネクタでは分離モードを設定できます。

Greengrass コンテナ化をサポートする環境では、分離モードを [コンテナなし] に設定することもできますが、可能であれば [Greengrass コンテナ] モードを使用することをお勧めします。

注記

Greengrass グループの既定のコンテナ化設定は、コネクタには適用されません。

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

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

左AWS IoTコンソールでは、Greengrass グループのコネクタの新しいバージョンを確認できます。

  1. 左AWS IoTコンソールのナビゲーションペインで、[Greengrass,クラシック (V1),Groups

  2. []Greengrass グループグループを選択します。

  3. [コネクタ] を選択して、グループのコネクタを表示します。

    コネクタに新しいバージョンがある場合は、使用可能ボタンがアップグレード列でロードバランサーの ID をクリックします。

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

    1. [コネクタ] ページの [アップグレード] 列で、[使用可能] を選択します。[コネクタのアップグレード] ページが開き、現在のパラメータ設定が表示されます (該当する場合)。

      新しいコネクタのバージョンを選択し、必要に応じてパラメータを定義して、[アップグレード] を選択します。

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

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

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

AWS IoT Greengrass API からコネクタをアップグレードするには、更新されたコネクタとサブスクリプションを含むグループバージョンを作成してデプロイします。コネクタをグループに追加する場合と同じプロセスを使用します。詳細な手順については、使用方法を示します。AWS CLITwilio 通知コネクタの例を設定およびデプロイする方法については、」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/region/aws/function-name.log

Greengrass ログ記録の詳細については、」AWS IoT Greengrass ログでのモニタリング