AWS IoT Greengrass ストリームマネージャーの設定 - AWS IoT Greengrass

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

AWS IoT Greengrass ストリームマネージャーの設定

AWS IoT Greengrass コアでは、ストリームマネージャーはIoTデバイスデータを保存、処理、エクスポートできます。ストリームマネージャーは、グループレベルのランタイム設定を設定するために使用するパラメータを提供します。これらの設定は、Greengrass コアのすべてのストリームに適用されます。AWS IoT コンソール または AWS IoT Greengrass API を使用して、ストリームマネージャー設定を設定できます。変更は、グループがデプロイされた後に有効になります。

注記

ストリームマネージャーを設定したら、Greengrass コアで実行されるIoTアプリケーションの作成とデプロイを行い、ストリームマネージャーと対話できます。これらのIoTアプリケーションは、通常、ユーザー定義Lambda関数です。詳細については、を参照してください 使用 StreamManagerClient ストリームとの共同作業を

ストリームマネージャーのパラメータ

ストリームマネージャーは、グループレベルの設定を定義するための次のパラメータを提供します。すべてのパラメーターは省略可能です。

ストレージディレクトリ

パラメータ名: STREAM_MANAGER_STORE_ROOT_DIR

ストリームを保存するために使用されるローカルディレクトリの絶対パス。この値は、スラッシュ (/data など) で開始する必要があります。

ストリームデータのセキュリティ保護については、「ローカルデータセキュリティ」を参照してください。

最小AWS IoT Greengrassコアバージョン: 1.10.0

Server port

パラメータ名: STREAM_MANAGER_SERVER_PORT

ストリームマネージャーとの通信に使用されるローカルポート番号。デフォルト: 8088

最小AWS IoT Greengrassコアバージョン: 1.10.0

クライアントを認証する

パラメータ名: STREAM_MANAGER_AUTHENTICATE_CLIENT

ストリームマネージャーと対話するためにクライアントを認証する必要があるかどうかを示します。クライアントとストリームマネージャー間のすべての相互作用は、AWS IoT Greengrass Core SDK によって制御されます。このパラメータは、ストリームを操作するために AWS IoT Greengrass Core SDK を呼び出すことができるクライアントを決定します。詳細については、を参照してください クライアント認証

有効な値は trueまたは false です。 デフォルトです true (推奨)。

  • true。 関数のみをクライアントとして許可します。Greengrass Lambda関数クライアントは、内部Lambdaプロトコルを使用して で認証AWS IoT Greengrass コアします。AWS IoT Greengrass Core SDK

  • false。 で実行されるすべてのプロセスをクライアントとして許可します。AWS IoT Greengrass コアビジネスケースで要求されない限り、false に設定しないでください。たとえば、コアデバイス上の非 Lambda プロセスが、コア上で実行されている Docker コンテナなど、ストリームマネージャーと直接通信する必要がある場合にのみ、この値を false に設定します。

最小AWS IoT Greengrassコアバージョン: 1.10.0

最大帯域幅

パラメータ名: STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH

データのエクスポートに使用できる平均最大帯域幅 (キロビット/秒)。デフォルトでは、使用可能な帯域幅を無制限に使用することができます。

最小AWS IoT Greengrassコアバージョン: 1.10.0

スレッドプールサイズ

パラメータ名: STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE

データのエクスポートに使用できるアクティブなスレッドの最大数。デフォルト: 5

最適なサイズは、ハードウェア、ストリームボリューム、予定されているエクスポートストリームの数によって異なります。エクスポート速度が遅い場合は、この設定を調整して、ハードウェアとビジネスケースに最適なサイズを見つけることができます。コアデバイスハードウェアの CPU とメモリは、制限要因です。開始するには、この値をデバイスのプロセッサコアの数と同じ値に設定してみてください。

ハードウェアがサポートできるサイズよりも大きいサイズを設定しないように注意してください。各ストリームはハードウェアリソースを消費するため、制約のあるデバイス上のエクスポートストリームの数を制限する必要があります。

最小AWS IoT Greengrassコアバージョン: 1.10.0

JVM の引数

パラメータ名: JVM_ARGS

起動時にストリームマネージャーに渡すカスタム Java 仮想マシン引数。複数の引数はスペースで区切る必要があります。

このパラメータは、JVM で使用されるデフォルト設定を上書きする必要がある場合にのみ使用します。たとえば、大量のストリームをエクスポートする場合は、デフォルトのヒープサイズを大きくする必要があります。

最小限のAWS IoT Greengrassコアバージョン: 1.10.0

読み取り専用の入力ファイルディレクトリ

パラメータ名: STREAM_MANAGER_READ_ONLY_DIRS

入力ファイルを格納するルートファイルシステム外のディレクトリへの絶対パスを示すカンマ区切りリスト。ストリームマネージャーは、ファイルを に読み取ってアップロードAmazon S3し、ディレクトリを読み取り専用としてマウントします。へのエクスポートの詳細については、「」を参照してくださいAmazon S3。Amazon S3 オブジェクト

このパラメータは、次の条件が true の場合にのみ使用します。

  • にエクスポートするストリームの入力ファイルディレクトリAmazon S3は、次のいずれかの場所にあります。

    • ルートファイルシステム以外のパーティション。

    • ルートファイルシステム/tmp上の 。

  • Greengrass グループのデフォルトのコンテナ化は Greengrass コンテナです

値の例:/mnt/directory-1,/mnt/directory-2,/tmp

最小AWS IoT Greengrassコアバージョン: 1.11.0

マルチパートアップロードの最小サイズ

パラメータ名: STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES

へのマルチパートアップロードのパートの最小サイズ (バイト単位)Amazon S3。ストリームマネージャーは、この設定と入力ファイルのサイズを使用して、マルチパート PUT リクエストでデータをバッチ処理する方法を決定します。デフォルト値および最小値は5242880バイト (5 MB) です。

注記

ストリームマネージャーは、ストリームsizeThresholdForMultipartUploadBytesのプロパティを使用して、 を単一アップロードまたはマルチパートアップロードAmazon S3としてエクスポートするかどうかを決定します。ユーザー定義Lambda関数は、 にエクスポートするストリームを作成するときに、このしきい値を設定しますAmazon S3。デフォルトのしきい値は 5 MB です。

最小限のAWS IoT Greengrassコアバージョン: 1.11.0

ストリームマネージャーの設定 (コンソール)

AWS IoT コンソール は以下のロール管理タスクに使用できます。

変更は、Greengrass グループがデプロイされた後に有効になります。ストリームマネージャーとやり取りするLambda関数を含む Greengrass グループをデプロイする方法を示すチュートリアルについては、「」を参照してくださいAWSクラウドへのデータストリームのエクスポート (コンソール)

注記

コンソールを使用してストリームマネージャーを有効にし、グループをデプロイすると、ストリームマネージャーのメモリサイズはデフォルトで 4194304 KB (4 GB) に設定されます。メモリサイズは 128000 KB 以上に設定することをお勧めします。

 

ストリームマネージャーが有効になっているかどうかを確認するには (コンソール)

  1. AWS IoT コンソールで、[Greengrass]、[グループ] の順に選択します。

  2. ターゲットグループを選択します。

  3. [設定] を選択します。

  4. [Stream manager (ストリームマネージャー)] で、有効または無効のステータスを確認します。設定されているカスタムストリームマネージャー設定も表示されます。

    
                            の [設定] ページの [ストリームマネージャー] セクションAWS IoT コンソール。

 

グループの作成中にストリームマネージャーを有効または無効にするには (コンソール)

  1. AWS IoT コンソールで、[Greengrass]、[グループ] の順に選択します。

  2. [Create Group (グループの作成)] を選択します。次のページで選択すると、グループのストリームマネージャーの設定方法が決まります。

  3. デフォルトのグループ設定でグループを作成します。これにより、デフォルトのストリームマネージャー設定でストリームマネージャーも有効になります。

    1. [Use default creation (デフォルトの作成を使用)] を選択します。

    2. ステップ 5 に進みます。

  4. カスタムグループ設定を使用してグループを作成するには:

    1. [Customize (カスタマイズ)] を選択します。

    2. [Name your Group (グループに名前を付ける)] ページと [Attach an IAM Role to your Group (IAM ロールをグループにアタッチする)] ページに進みます。

    3. [Stream manager (ストリームマネージャー)] ページで、グループのストリームマネージャーを設定します。

      • デフォルト設定でストリームマネージャーを有効にするには、[Use defaults (デフォルトを使用)] を選択します。

         

      • カスタム設定でストリームマネージャーを有効にするには、[Customize settings (設定をカスタマイズ)] を選択します。

        1. [Configure stream manager (ストリームマネージャーの設定)] ページで、[Enable (有効にする)] を選択します。

        2. [Custom settings (カスタム設定)] で、ストリームマネージャーパラメータの値を入力します。詳細については、を参照してください ストリームマネージャーのパラメータ。AWS IoT Greengrass でデフォルト値を使用できるようにするには、フィールドを空のままにします。

           

      • ストリームマネージャーを無効にするには、[Customize settings (設定をカスタマイズ)] を選択します。

        1. [Configure stream manager (ストリームマネージャーの設定)] ページで、[Disable (無効にする)] を選択します。

           

      
                            グループ作成ワークフローの [Stream manager (ストリームマネージャー)] ページ。
  5. [] を選択します。

  6. 残りのページに進み、グループを作成します。

  7. [Connect your Core device (コアデバイスの接続)] ページで、セキュリティリソースをダウンロードし、情報を確認して、[Finish (完了)] を選択します。

    注記

    ストリームマネージャーが有効になっている場合、グループをデプロイする前に、コアデバイスに Java 8 ランタイムをインストールする必要があります。

 

既存のグループのストリームマネージャーを有効または無効にするには (コンソール)

  1. AWS IoT コンソールで、[Greengrass]、[グループ] の順に選択します。

  2. ターゲットグループを選択します。

  3. [設定] を選択します。

  4. [Stream manager (ストリームマネージャー)] の下に、カスタムストリームマネージャーの設定と共に、有効または無効のステータスが表示されます。[Edit (編集)] を選択します。

  5. [Enable (有効にする)] または [Disable (無効にする)] を選択します。

  6. [Save] を選択します。

 

ストリームマネージャーの設定を変更するには (コンソール)

  1. AWS IoT コンソールで、[Greengrass]、[グループ] の順に選択します。

  2. ターゲットグループを選択します。

  3. [設定] を選択します。

  4. [Stream manager (ストリームマネージャー)] の下に、カスタムストリームマネージャーの設定と共に、有効または無効のステータスが表示されます。[Edit (編集)] を選択します。

  5. ストリームマネージャーパラメータの値を編集します。AWS IoT Greengrass が、対応するパラメータにデフォルト値を使用できるようにするには、フィールドを空のままにします。

  6. [Save] を選択します。

ストリームマネージャーの設定 (CLI)

AWS CLI では、システム GGStreamManager Lambda 関数を使用してストリームマネージャーを設定します。システム Lambda 関数は、AWS IoT Greengrass Core ソフトウェアのコンポーネントです。ストリームマネージャーおよび他のシステムLambda関数では、Greengrass グループ内の対応する Function FunctionDefinitionVersionおよび オブジェクトを管理することで Greengrass 機能を設定できます。詳細については、を参照してください AWS IoT Greengrass グループオブジェクトモデルの概要

API は以下の管理タスクに使用できます。このセクションの例では の使用方法を示しますが、AWS CLIAPI AWS IoT Greengrass を直接呼び出すことも、AWSSDK を使用することもできます。

変更は、グループがデプロイされた後に有効になります。ストリームマネージャーとやり取りするLambda関数を使用して Greengrass グループをデプロイする方法を示すチュートリアルについては、「」を参照してくださいデータ ストリームを AWS クラウド(CLI)

ヒント

コアデバイスでストリームマネージャーが有効で実行されているかどうかを確認するには、デバイスのターミナルで次のコマンドを実行します。

ps aux | grep -i 'streammanager'

 

ストリームマネージャーが有効になっているかどうかを確認するには (CLI)

デプロイされた関数定義バージョンにシステム GGStreamManager Lambda 関数が含まれている場合、ストリームマネージャーが有効になります。確認するには、次の手順を実行します。

  1. 取得する IDs (ターゲット Greengrass グループおよびグループ バージョン)。この手順は、これが最新のグループおよびグループ バージョンであることを前提としています。次のクエリ リターン 最も最近作成されたグループです。

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    または、名前でクエリを実行することもできます。グループ名は一意である必要はないため、複数のグループが返されることがあります。

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    注記

    これらの値は AWS IoT コンソール にもあります。グループ ID は、グループの [Settings (設定)] ページに表示されます。グループバージョン IDs が、グループの [デプロイ] ページに表示されます。

  2. 出力のターゲットグループから Id 値と LatestVersion 値をコピーします。

  3. 最新のグループバージョンを取得します。

    • 置換 group-idId コピーしたファイル。

    • 置換 latest-group-version-idLatestVersion コピーしたファイル。

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. 出力FunctionDefinitionVersionArnの で、 関数定義と 関数定義バージョンの を取得します。IDs

    • 関数定義 ID は、Amazon リソースネーム (ARN) のfunctionsセグメントに続く GUID です。

    • 関数定義のバージョン ID は、ARN の versions セグメントに続く GUID です。

    arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/function-definition-id/versions/function-definition-version-id
  5. 関数定義バージョンの ID。

    • 置換 function-definition-id を関数定義 ID に置き換えます。

    • 置換 function-definition-version-id を関数定義のバージョン ID に置き換えます。

    aws greengrass get-function-definition-version \ --function-definition-id function-definition-id \ --function-definition-version-id function-definition-version-id

出力内の functions 配列に GGStreamManager 関数が含まれている場合、ストリームマネージャーが有効になります。関数に定義された環境変数は、ストリームマネージャーのカスタム設定を表します。

ストリームマネージャーを有効化、無効化、設定するには (CLI)

AWS CLI では、システム GGStreamManager Lambda 関数を使用してストリームマネージャーを設定します。変更は、グループをデプロイした後に有効になります。

  • ストリームマネージャーを有効にするには、関数定義バージョンの functions 配列に GGStreamManager を含めます。カスタム設定を設定するには、対応するストリームマネージャーのパラメータの環境変数を定義します。

  • ストリームマネージャーを無効にするには、関数定義バージョンの functions 配列から GGStreamManager を削除します。

デフォルト設定のストリームマネージャー

次の設定例では、デフォルト設定でストリームマネージャーを有効にします。任意の関数 ID を streamManager に設定します。

{ "FunctionArn": "arn:aws:lambda:::function:GGStreamManager:1", "FunctionConfiguration": { "MemorySize": 4194304, "Pinned": true, "Timeout": 3 }, "Id": "streamManager" }
注記

FunctionConfigurationプロパティについて、以下がわかっている場合があります。

  • MemorySizeは、デフォルト設定で 4194304 KB (4 GB) に設定されています。この値はいつでも変更できます。128000 KB 以上に設定することをお勧めします。MemorySize

  • Pinnedtrue に設定する必要があります。

  • Timeout は関数定義バージョンで必要ですが、GGStreamManager は使用しません。

カスタム設定のストリームマネージャー

次の設定例では、ストレージディレクトリ、サーバーポート、スレッドプールサイズのパラメータ用のカスタム値を使用して、ストリームマネージャーを有効にします。

{ "FunctionArn": "arn:aws:lambda:::function:GGStreamManager:1", "FunctionConfiguration": { "Environment": { "Variables": { "STREAM_MANAGER_STORE_ROOT_DIR": "/data", "STREAM_MANAGER_SERVER_PORT": "1234", "STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE": "4" } }, "MemorySize": 4194304, "Pinned": true, "Timeout": 3 }, "Id": "streamManager" }

AWS IoT Greengrassは、環境変数として指定されていないストリームマネージャーのパラメータにデフォルト値を使用します。

Amazon S3エクスポート用のカスタム設定を含むストリームマネージャー

次の設定例では、アップロードディレクトリのカスタム値とマルチパートアップロードの最小サイズパラメータを使用してストリームマネージャーを有効にします。

{ "FunctionArn": "arn:aws:lambda:::function:GGStreamManager:1", "FunctionConfiguration": { "Environment": { "Variables": { "STREAM_MANAGER_READ_ONLY_DIRS": "/mnt/directory-1,/mnt/directory-2,/tmp", "STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES": "10485760" } }, "MemorySize": 4194304, "Pinned": true, "Timeout": 3 }, "Id": "streamManager" }

 

ストリームマネージャーを有効化、無効化、設定するには (CLI)

  1. 取得する IDs (ターゲット Greengrass グループおよびグループ バージョン)。この手順は、これが最新のグループおよびグループ バージョンであることを前提としています。次のクエリ リターン 最も最近作成されたグループです。

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"

    または、名前でクエリを実行することもできます。グループ名は一意である必要はないため、複数のグループが返されることがあります。

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
    注記

    これらの値は AWS IoT コンソール にもあります。グループ ID は、グループの [Settings (設定)] ページに表示されます。グループバージョン IDs が、グループの [デプロイ] ページに表示されます。

  2. 出力のターゲットグループから Id 値と LatestVersion 値をコピーします。

  3. 最新のグループバージョンを取得します。

    • 置換 group-idId コピーしたファイル。

    • 置換 latest-group-version-idLatestVersion コピーしたファイル。

    aws greengrass get-group-version \ --group-id group-id \ --group-version-id latest-group-version-id
  4. 出力CoreDefinitionVersionArnから、 ARNsおよび他のすべてのバージョンをコピーFunctionDefinitionVersionArnします ( を除く)。 これらの値は、後でグループバージョンを作成するときに使用します。

  5. 出力の FunctionDefinitionVersionArn で、関数定義の ID をコピーします。ID は、次の例に示すように、ARN の functions セグメントに続く GUID です。

    arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/bcfc6b49-beb0-4396-b703-6dEXAMPLEcu5/versions/0f7337b4-922b-45c5-856f-1aEXAMPLEsf6
    注記

    または、 create-function-definition コマンドを実行し、出力からIDをコピーします。

  6. 関数定義に関数定義バージョンを追加します。

    • 置換 function-definition-id 関数定義のコピーIdした に置き換えます。

    • functions配列には、Greengrass コアで利用可能な他のすべての関数を含めます。get-function-definition-version コマンドを使用して、既存の関数のリストを取得できます。

     

    デフォルト設定でストリームマネージャーを有効にする

    次の例では、GGStreamManager配列にfunctions関数を含めることで、ストリームマネージャーを有効にします。この例では、ストリームマネージャーのパラメータにデフォルト値を使用します。

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[ { "FunctionArn": "arn:aws:lambda:::function:GGStreamManager:1", "FunctionConfiguration": { "MemorySize": 4194304, "Pinned": true, "Timeout": 3 }, "Id": "streamManager" }, { "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:MyLambdaFunction:MyAlias", "FunctionConfiguration": { "Executable": "myLambdaFunction.function_handler", "MemorySize": 16000, "Pinned": true, "Timeout": 5 }, "Id": "myLambdaFunction" }, ... more user-defined functions ] }'
    注記

    例の myLambdaFunction 関数は、ユーザー定義 Lambda 関数の 1 つを表します。

    カスタム設定でストリームマネージャーを有効にする

    次の例では、functions 配列に GGStreamManager 関数を含めることで、ストリームマネージャーを有効にします。デフォルト値を変更しない限り、すべてのストリームマネージャー設定はオプションです。この例では、環境変数を使用してカスタム値を設定する方法を示します。

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[ { "FunctionArn": "arn:aws:lambda:::function:GGStreamManager:1", "FunctionConfiguration": { "Environment": { "Variables": { "STREAM_MANAGER_STORE_ROOT_DIR": "/data", "STREAM_MANAGER_SERVER_PORT": "1234", "STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE": "4" } }, "MemorySize": 4194304, "Pinned": true, "Timeout": 3 }, "Id": "streamManager" }, { "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:MyLambdaFunction:MyAlias", "FunctionConfiguration": { "Executable": "myLambdaFunction.function_handler", "MemorySize": 16000, "Pinned": true, "Timeout": 5 }, "Id": "myLambdaFunction" }, ... more user-defined functions ] }'
    注記

    FunctionConfigurationプロパティについて、以下がわかっている場合があります。

    • MemorySizeは、デフォルト設定で 4194304 KB (4 GB) に設定されています。この値はいつでも変更できます。128000 KB 以上に設定することをお勧めします。MemorySize

    • Pinnedtrue に設定する必要があります。

    • Timeout は関数定義バージョンで必要ですが、GGStreamManager は使用しません。

    ストリームマネージャーを無効にする

    次の例では、ストリームマネージャーを無効にする GGStreamManager 関数を省略しています。

    aws greengrass create-function-definition-version \ --function-definition-id function-definition-id \ --functions '[ { "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:MyLambdaFunction:MyAlias", "FunctionConfiguration": { "Executable": "myLambdaFunction.function_handler", "MemorySize": 16000, "Pinned": true, "Timeout": 5 }, "Id": "myLambdaFunction" }, ... more user-defined functions ] }'
    注記

    Lambda 関数をデプロイしない場合は、関数定義バージョンを完全に省略できます。

  7. 出力から 関数定義バージョンの Arn をコピーします。

  8. システムの Lambda 関数が含まれているグループバージョンを作成します。

    • 置換 group-idId 必要があります。

    • 置換 core-definition-version-arnCoreDefinitionVersionArn が、最新のグループバージョンからコピーされました。

    • 置換 function-definition-version-arnArn 新しい関数定義バージョン用にコピーした。

    • 交換する ARNs 他のグループコンポーネント(たとえば、 SubscriptionDefinitionVersionArn 又は DeviceDefinitionVersionArn)。

    • 使用されていないパラメータをすべて削除します。たとえば、グループバージョンにリソースがない場合には、--resource-definition-version-arn を削除します。

    aws greengrass create-group-version \ --group-id group-id \ --core-definition-version-arn core-definition-version-arn \ --function-definition-version-arn function-definition-version-arn \ --device-definition-version-arn device-definition-version-arn \ --logger-definition-version-arn logger-definition-version-arn \ --resource-definition-version-arn resource-definition-version-arn \ --subscription-definition-version-arn subscription-definition-version-arn
  9. 出力から Version をコピーします。これは新しいグループバージョンの ID です。

  10. 新しいグループバージョンでグループをデプロイします。

    • 置換 group-idId コピーしたグループ名が表示されます。

    • 置換 group-version-idVersion コピーした新しいグループバージョンが表示されます。

    aws greengrass create-deployment \ --group-id group-id \ --group-version-id group-version-id \ --deployment-type NewDeployment

 

後でストリームマネージャー設定を再度編集する場合は、この手順に従います。更新された設定の関数を含むGGStreamManager関数定義バージョンを必ず作成します。グループバージョンは、コアにデプロイARNsするすべてのコンポーネントバージョンを参照する必要があります。変更は、グループがデプロイされた後に有効になります。

以下の資料も参照してください。