翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Firehose
Firehose コンポーネント (aws.greengrass.KinesisFirehose
) は、Amazon Data Firehose 配信ストリームを介してAmazon S3、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
) のためにマージする必要があります。この設定は、このコンポーネントがレスポンスを公開するトピックを指定します。詳細については、「デプロイの作成」を参照してください。
-
Firehose コンポーネントは、 での実行がサポートされていますVPC。このコンポーネントを にデプロイするにはVPC、以下が必要です。
-
Firehose コンポーネントには、VPCエンドポイントが
firehose.region.amazonaws.com
である への接続が必要ですcom.amazonaws.region.kinesis-firehose
。
-
エンドポイントおよびポート
このコンポーネントは、基本的な操作に必要なエンドポイントとポートに加えて、次のエンドポイントとポートに対し、アウトバウンドリクエストを実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。
エンドポイント | [ポート] | 必要 | 説明 |
---|---|---|---|
|
443 | あり |
Firehose にデータをアップロードします。 |
依存関係
コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソール
コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。
構成
このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。
注記
このコンポーネントのデフォルト設定には、Lambda 関数のパラメータが含まれます。デバイスにこのコンポーネントを設定するには、次のパラメータのみを編集することをお勧めします。
lambdaParams
-
このコンポーネントの Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。
EnvironmentVariables
-
Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。
DEFAULT_DELIVERY_STREAM_ARN
-
コンポーネントがデータを送信するARNデフォルトの Firehose 配信ストリームの 。入力メッセージペイロードの
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
-
(オプション) このコンポーネントのコンテナパラメータを含むオブジェクト。
containerMode
のGreengrassContainer
を指定した場合、コンポーネントはこれらのパラメータを使用します。このオブジェクトには、次の情報が含まれます。
memorySize
-
(オプション) コンポーネントに割り当てるメモリ量 (KB 単位)。
デフォルトは 64 MB (65,535 KB) です。
pubsubTopics
-
(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピックを含むオブジェクト。各トピックと、コンポーネントが からMQTTトピックをサブスクライブするか、ローカルのパブリッシュ/サブスクライブトピック AWS IoT Core をサブスクライブするかを指定できます。
このオブジェクトには、次の情報が含まれます。
0
- これは文字列としての配列インデックスです。-
次の情報が含まれるオブジェクト。
type
-
(オプション) このコンポーネントがメッセージをサブスクライブするために使用するパブリッシュ/サブスクライブメッセージングのタイプ。次のオプションから選択します。
-
PUB_SUB
- ローカルのパブリッシュ/サブスクライブメッセージをサブスクライブします。このオプションを選択した場合、トピックにMQTTワイルドカードを含めることはできません。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。 -
IOT_CORE
– メッセージをサブスクライブします AWS IoT Core MQTT。このオプションを選択すると、トピックにMQTTワイルドカードを含めることができます。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「メッセージの発行/サブスクライブ AWS IoT Core MQTT 」を参照してください。
デフォルト:
PUB_SUB
-
topic
-
(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピック。
IotCore
に を指定する場合はtype
、このトピックで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 種類の入力データを受け入れます。
-
JSON
kinesisfirehose/message
トピックの データ。 -
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
として指定する必要があります。カスタムコンポーネントでこのトピックに関するメッセージへサブスクライブする方法の詳細については、「メッセージの発行/サブスクライブ AWS IoT Core MQTT 」を参照してください。
デフォルトトピック (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" } ] }
注記
コンポーネントが、接続エラーなどの再試行可能なエラーを検出した場合、次のバッチでパブリッシュを再試行します。
ローカルログファイル
このコンポーネントは次のログファイルを使用します。
/logs/aws.greengrass.KinesisFirehose.log
/greengrass/v2
このコンポーネントのログを確認するには
-
コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。を AWS IoT Greengrass ルートフォルダへのパス
に置き換えます。/greengrass/v2
sudo tail -f
/logs/aws.greengrass.KinesisFirehose.log/greengrass/v2
ライセンス
このコンポーネントには、次のサードパーティーソフトウェア/ライセンス品が含まれています。
-
AWS SDK for Python (Boto3)
/Apache License 2.0 -
botocore
/Apache License 2.0 -
dateutil
/PSF ライセンス -
docutils
/BSD License、GNUGeneral Public License (GPL)、Python Software Foundation License、Public Domain -
jmespath/
MITライセンス -
s3transfer
/Apache License 2.0 -
urllib3
/MIT ライセンス
このコンポーネントは、Greengrass Core ソフトウェアライセンス契約
変更ログ
次の表は、コンポーネントの各バージョンにおける変更を示します。
バージョン |
変更 |
---|---|
2.1.8 |
Greengrass nucleus バージョン 2.13.0 リリース用にバージョンが更新されました。 |
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 |
当初のバージョン |
以下も参照してください。
-
Amazon Data Firehose デベロッパーガイドの「Amazon Data Firehose とは」