Firehose - AWS IoT Greengrass

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

Firehose

Firehose コンポーネント (aws.greengrass.KinesisFirehose) は、Amazon Data Firehose 配信ストリームを介して、Amazon S3、Amazon Redshift、Amazon OpenSearch Service などの送信先にデータを発行します。詳細については、「Amazon Data Firehose デベロッパーガイド」の「Amazon Data Firehose とは」を参照してください。

このコンポーネントを使用して Kinesis 配信ストリームに発行するには、このコンポーネントがサブスクライブしているトピックにメッセージを発行します。デフォルトでは、このコンポーネントは kinesisfirehose/message および kinesisfirehose/message/binary/#ローカルパブリッシュ/サブスクライブトピックにサブスクライブしています。このコンポーネントをデプロイするときに、 AWS IoT Core MQTT トピックを含む他のトピックを指定できます。

注記

このコンポーネントは、 AWS IoT Greengrass V1 の Firehose コネクタと同様の機能を提供します。詳細については、AWS IoT Greengrass 「 V1 デベロッパーガイド」の「Firehose コネクタ」を参照してください。

バージョン

このコンポーネントには、次のバージョンがあります。

  • 2.1.x

  • 2.0.x

タイプ

このコンポーネントは Lambda コンポーネントです (aws.greengrass.lambda)。Greengrass nucleus は、Lambda ランチャーコンポーネントを使用してこのコンポーネントの Lambda 関数を実行します。

詳細については、「コンポーネントタイプ」を参照してください。

オペレーティングシステム

このコンポーネントは、Linux コアデバイスにのみインストールできます。

要件

このコンポーネントには次の要件があります。

  • コアデバイスは、Lambda 関数を実行するための要件を満たしている必要があります。コアデバイスが、コンテナ化された Lambda 関数を実行させる場合、そのデバイスは要件を満たす必要があります。詳細については、「Lambda 関数の要件」を参照してください。

  • Python バージョン 3.7 がコアデバイスにインストールされ、PATH 環境変数に追加されています。

  • 次の IAM ポリシーの例で示されているように、Greengrass デバイスのロールは、firehose:PutRecord および firehose:PutRecordBatch のアクションを許可する必要があります。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/stream-name" ] } ] }

    このコンポーネントの入力メッセージペイロードのデフォルト配信ストリームを動的にオーバーライドできます。アプリケーションでこの機能を使用する場合、IAM ポリシーにはすべてのターゲットストリームをリソースとして含める必要があります。リソースにきめ細かいアクセス権限または条件付きアクセス権限を付与できます (たとえば、ワイルドカード * 命名スキームを使用)。

  • このコンポーネントから出力データを受信するには、このコンポーネントをデプロイするときに、次の設定更新プログラムをレガシーサブスクリプションルーターのコンポーネント (aws.greengrass.LegacySubscriptionRouter) のためにマージする必要があります。この設定は、このコンポーネントがレスポンスを公開するトピックを指定します。

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "component:aws.greengrass.KinesisFirehose", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-kinesisfirehose:version", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    • region AWS リージョン は、使用する に置き換えます。

    • バージョンを、このコンポーネントが実行する Lambda 関数のバージョンに置き換えます。Lambda 関数のバージョンを確認するには、デプロイするこのコンポーネントのバージョンの recipe を確認する必要があります。AWS IoT Greengrass コンソールで、このコンポーネントの詳細ページを開き、[Lambda function] (Lambda 関数) の key-value ペアを見つけます。このキー値のペアには、Lambda 関数の名前とバージョンが含まれます。

    重要

    このコンポーネントをデプロイするたびに、レガシーサブスクリプションルーターの Lambda 関数のバージョンを更新する必要があります。これにより、デプロイするコンポーネントバージョンに正しい Lambda 関数のバージョンが使用されることが保証されます。

    詳細については、「デプロイの作成」を参照してください。

  • Firehose コンポーネントは、VPC での実行がサポートされています。このコンポーネントを VPC にデプロイするには、以下が必要です。

    • Firehose コンポーネントは、VPC エンドポイントが firehose.region.amazonaws.comである への接続が必要ですcom.amazonaws.region.kinesis-firehose

エンドポイントおよびポート

このコンポーネントは、基本的な操作に必要なエンドポイントとポートに加えて、次のエンドポイントとポートに対し、アウトバウンドリクエストを実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。

エンドポイント ポート 必要 説明

firehose.region.amazonaws.com

443 はい

Firehose にデータをアップロードします。

依存関係

コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソールでも確認できます。コンポーネントの詳細ページで [Dependencies] (依存関係) リストを確認します。

2.1.7

次の表に、このコンポーネントのバージョン 2.1.7 に関する依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.13.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.1.6

次の表に、このコンポーネントのバージョン 2.1.6 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.12.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.1.5

次の表に、このコンポーネントのバージョン 2.1.5 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.11.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.1.4

次の表に、このコンポーネントのバージョン 2.1.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.10.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.1.3

次の表に、このコンポーネントのバージョン 2.1.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.9.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.1.2

次の表に、このコンポーネントのバージョン 2.1.2 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.8.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.1.1

次の表に、このコンポーネントのバージョン 2.1.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.7.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.8 - 2.1.0

次の表に、このコンポーネントのバージョン 2.0.8 および 2.1.0 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.6.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.7

次の表に、このコンポーネントのバージョン 2.0.7 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.5.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.6

次の表に、このコンポーネントのバージョン 2.0.6 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.4.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.5

次の表に、このコンポーネントのバージョン 2.0.5 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.3.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.4

次の表に、このコンポーネントのバージョン 2.0.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.2.0 ハード
Lambda ランチャー ^2.0.0 ハード
Lambda ランタイム ^2.0.0 ソフト
トークン交換サービス ^2.0.0 ハード
2.0.3

次の表に、このコンポーネントのバージョン 2.0.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.3 <2.1.0 ハード
Lambda ランチャー >=1.0.0 ハード
Lambda ランタイム >=1.0.0 ソフト
トークン交換サービス >=1.0.0 ハード

コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。

構成

このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。

注記

このコンポーネントのデフォルト設定には、Lambda 関数のパラメータが含まれます。デバイスにこのコンポーネントを設定するには、次のパラメータのみを編集することをお勧めします。

lambdaParams

このコンポーネントの Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。

EnvironmentVariables

Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。

DEFAULT_DELIVERY_STREAM_ARN

コンポーネントがデータを送信するデフォルトの Firehose 配信ストリームの ARN。入力メッセージペイロードの delivery_stream_arn プロパティを使用して、送信先ストリームをオーバーライドできます。

注記

コアデバイスロールは、すべてのターゲット配信ストリームで必要なアクションを許可する必要があります。詳細については、「要件」を参照してください。

PUBLISH_INTERVAL

(オプション) コンポーネントがバッチ処理されたデータを Firehose に発行するまでの最大待機秒数。メトリクスを受信した時点でメトリクスをパブリッシュするようにコンポーネントを設定するには (バッチ処理なし)、0 を指定します。

この値は最大 900 秒になります。

デフォルト: 10 秒

DELIVERY_STREAM_QUEUE_SIZE

(オプション) コンポーネントが同じ配信ストリームの新しいレコードを拒否するまでに、メモリに保持するレコードの最大数。

この値は 2,000 件以上に指定する必要があります。

デフォルト: 5,000 件

containerMode

(オプション) このコンポーネントのコンテナ化モード。次のオプションから選択します。

  • NoContainer - コンポーネントは、分離されたランタイム環境では実行されません。

  • GreengrassContainer – コンポーネントは、 AWS IoT Greengrass コンテナ内の分離されたランタイム環境で実行されます。

デフォルト: GreengrassContainer

containerParams

(オプション) このコンポーネントのコンテナパラメータを含むオブジェクト。containerModeGreengrassContainer を指定した場合、コンポーネントはこれらのパラメータを使用します。

このオブジェクトには、次の情報が含まれます。

memorySize

(オプション) コンポーネントに割り当てるメモリ量 (KB 単位)。

デフォルトは 64 MB (65,535 KB) です。

pubsubTopics

(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピックを含むオブジェクト。各トピックと、コンポーネントが から MQTT トピックをサブスクライブするか、ローカルのパブリッシュ/サブスクライブトピックをサブスクライブ AWS IoT Core するかを指定できます。

このオブジェクトには、次の情報が含まれます。

0 - これは文字列としての配列インデックスです。

次の情報が含まれるオブジェクト。

type

(オプション) このコンポーネントがメッセージをサブスクライブするために使用するパブリッシュ/サブスクライブメッセージングのタイプ。次のオプションから選択します。

  • PUB_SUB - ローカルのパブリッシュ/サブスクライブメッセージをサブスクライブします。このオプションを選択した場合、トピックに MQTT ワイルドカードを含めることはできません。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。

  • IOT_CORE – AWS IoT Core MQTT メッセージをサブスクライブします。このオプションを選択した場合、トピックに MQTT ワイルドカードを含めることができます。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「MQTT メッセージの公開/購読 AWS IoT Core」を参照してください。

デフォルト: PUB_SUB

topic

(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピック。typeIotCore を指定した場合、このトピックで MQTT ワイルドカード (+ および #) を使用できます。

例: 設定マージの更新 (コンテナモード)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
例: 設定マージの更新 (コンテナモードなし)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "NoContainer" }

入力データ

このコンポーネントは、以下のトピックに関するストリームコンテンツを受け入れ、そのコンテンツをターゲット配信ストリームに送信します。コンポーネントは、以下の 2 種類の入力データを受け入れます。

  • kinesisfirehose/message トピックの JSON データ。

  • kinesisfirehose/message/binary/# トピックのバイナリデータ。

JSON データのデフォルトトピック (ローカルパブリッシュ/サブスクライブ): kinesisfirehose/message

メッセージは、次のプロパティを受付けます。入力メッセージは JSON 形式である必要があります。

request

配信ストリームに送信するデータ、およびターゲット配信ストリーム (デフォルトストリームと異なる場合)。

タイプ: 次の情報が含まれる object

data

配信ストリームに送信するデータ。

タイプ: string

delivery_stream_arn

(オプション) ターゲット Firehose 配信ストリームの ARN。デフォルトの配信ストリームを上書きするには、このプロパティを指定します。

タイプ: string

id

リクエストの任意の ID。このプロパティを使用して、入力リクエストを出力レスポンスにマッピングします。このプロパティを指定するとき、コンポーネントはこの値に対してレスポンスオブジェクトの id プロパティを設定します。

タイプ: string

例 入力例
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" }
バイナリデータのデフォルトトピック (ローカルパブリッシュ/サブスクライブ): kinesisfirehose/message/binary/#

このトピックを使用して、バイナリデータを含むメッセージを送信します。コンポーネントはバイナリデータを解析しません。コンポーネントはデータをそのままストリーミングします。

入力リクエストを出力レスポンスにマッピングするには、メッセージトピックの # ワイルドカードを任意のリクエスト ID に置き換えます。例えば、メッセージを kinesisfirehose/message/binary/request123 に発行する場合、レスポンスオブジェクトの id プロパティを request123 に設定します。

リクエストをレスポンスにマッピングしない場合は、メッセージを kinesisfirehose/message/binary/ に発行できます。末尾にスラッシュ (/) を含めてください。

出力データ

このコンポーネントは、デフォルトで次の MQTT トピックに出力データとしてレスポンスを公開します。このトピックは、[legacy subscription router component] (レガシーサブスクリプションルーターコンポーネント) の設定で subject として指定する必要があります。カスタムコンポーネントでこのトピックに関するメッセージへサブスクライブする方法の詳細については、「MQTT メッセージの公開/購読 AWS IoT Core」を参照してください。

デフォルトトピック (AWS IoT Core MQTT): kinesisfirehose/message/status

例 出力例

応答には、バッチで送信される各データレコードのステータスが含まれます。

{ "response": [ { "ErrorCode": "error", "ErrorMessage": "test error", "id": "request123", "status": "fail" }, { "firehose_record_id": "xyz2", "id": "request456", "status": "success" }, { "firehose_record_id": "xyz3", "id": "request890", "status": "success" } ] }
注記

コンポーネントが、接続エラーなどの再試行可能なエラーを検出した場合、次のバッチでパブリッシュを再試行します。

ローカルログファイル

このコンポーネントは次のログファイルを使用します。

/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
このコンポーネントのログを確認するには
  • コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。を AWS IoT Greengrass ルートフォルダへのパス/greengrass/v2に置き換えます。

    sudo tail -f /greengrass/v2/logs/aws.greengrass.KinesisFirehose.log

ライセンス

このコンポーネントには、次のサードパーティーソフトウェア/ライセンス品が含まれています。

このコンポーネントは、Greengrass Core ソフトウェアライセンス契約に従ってリリースされています。

変更ログ

次の表は、コンポーネントの各バージョンにおける変更を示します。

バージョン

変更

2.1.7

Greengrass nucleus バージョン 2.12.0 リリース用にバージョンが更新されました。

2.1.6

Greengrass nucleus バージョン 2.11.0 のリリース用にバージョンが更新されました。

2.1.5

Greengrass nucleus バージョン 2.10.0 のリリース用にバージョンが更新されました。

2.1.4

Greengrass nucleus バージョン 2.9.0 のリリース用にバージョンが更新されました。

2.1.3

Greengrass nucleus バージョン 2.8.0 のリリース用にバージョンが更新されました。

2.1.2

Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。

2.1.1

Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。

2.1.0

新機能

2.0.8

Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。

2.0.7

Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。

2.0.6

Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。

2.0.5

Greengrass nucleus バージョン 2.2.0 のリリース用にバージョンが更新されました。

2.0.4

Greengrass nucleus バージョン 2.1.0 のリリース用にバージョンが更新されました。

2.0.3

当初のバージョン

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