翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 配信用の S3 出力キーテンプレート Amazon S3
汎用 Amazon S3 バケットに配信する場合、配信されたファイルのオブジェクトキー構造を制御するように S3 出力キーテンプレートを設定できます。キーテンプレートはオプションです。指定しない場合、Amazon S3 配信はデフォルトのテンプレートを使用します。
デフォルトのテンプレート
カスタムキーテンプレートを指定しない場合、Amazon S3 配信は次のデフォルトを使用します。
kinesis-channel/!{channel-name}/!{channel-id}/!{yyyy}/!{MM}/!{dd}/!{HH}/!{channel-name}-!{channel-id}-!{yyyy}-!{MM}-!{dd}-!{HH}-!{mm}!{extension}
最後のスラッシュ (/) の前の部分はオブジェクトキープレフィックス (フォルダ構造) を形成し、最後のセグメントはオブジェクト名を形成します。デフォルトのテンプレートは、配信されたオブジェクトをチャネル別および時間別に整理し、オブジェクト名で同じ値を繰り返して、各オブジェクトを自己記述します。Amazon Kinesis Data Streams は、すべてのオブジェクトキーに一意のサフィックスを自動的に追加するため、テンプレートに区別するのに十分なタイムコンポーネントが含まれていない場合でも、オブジェクトキーは一意です。
テンプレート変数
キーテンプレートでは、次の変数を使用できます。
| 可変 | 説明 | 値の例 |
|---|---|---|
!{channel-name} |
配信の名前。 | my-channel |
!{channel-id} |
配信の一意の識別子。 | abc123def456 |
!{stream-name} |
ソース Kinesis Data Streams ストリームの名前。 | my-stream |
!{yyyy} |
4 桁の年 (UTC)。 | 2026 |
!{yy} |
2 桁の年 (UTC)。 | 26 |
!{MM} |
2 桁の月 (UTC)、ゼロ詰め。 | 07 |
!{dd} |
2 桁の日 (UTC)、ゼロパディング。 | 20 |
!{HH} |
2 桁の時間 (UTC、24 時間)、ゼロパディング。 | 14 |
!{mm} |
2 桁分 (UTC)、ゼロパディング。 | 30 |
!{extension} |
設定された圧縮タイプから派生したファイル拡張子 (GZIP .gzの場合は 、ZSTD .zstの場合は など)。存在する場合は、テンプレートの末尾に表示される必要があります。 |
.gz |
!{extension:. |
指定したリテラルファイル拡張子。ピリオドで始まり、小文字とピリオドのみを含める必要があります。存在する場合は、テンプレートの末尾に表示される必要があります。 | !{extension:.json} |
テンプレートルール
キーテンプレートは、次のルールに従う必要があります。
-
すべての変数を展開した後、結果のオブジェクトキーは Amazon S3 オブジェクトキーの制限である 1,024 文字を超えることはできません。Amazon Kinesis Data Streams は最大 38 文字の一意のサフィックスを追加するため、拡張されたテンプレート自体は 986 文字を超えることはできません。
-
パストラバーサルを含めることはできません。連続するピリオド (
..)、ピリオドのみのパスセグメント (.)、およびスラッシュ () で始まることはできません/。 -
連続するスラッシュ () を含めることはできません
//。 -
すべての変数プレースホルダーを閉じ (それぞれが一致する を持っている
!{必要があります})、サポートされている変数名を使用する必要があります。 -
使用できるリテラル文字は、英数字と です
! - _ ' . * ( ) / =。=文字を使用すると、 などの Hive スタイルのパーティショニングを表現できますyear=!{yyyy}/month=!{MM}/。 -
テンプレートには、最大 1 つの拡張プレースホルダー (
!{extension}または!{extension:.) を含めることができます。存在する場合は、テンプレートの最後に表示する必要があります。literal} -
圧縮 (GZIP または ZSTD) が有効になっている場合、テンプレートには拡張プレースホルダーを含める必要があります。
注記
テンプレートに一意性変数を含める必要はありません。Amazon Kinesis Data Streams は、配信された各オブジェクトキーに一意のサフィックスを自動的に追加します。
有効な例と無効な例
| テンプレート | 有効です | Reason |
|---|---|---|
!{channel-name}/!{yyyy}/!{MM}/!{dd}/!{HH}/records!{extension} |
はい | サポートされている変数を使用し、1 つの拡張プレースホルダーで終了します。 |
data/stream=!{stream-name}/!{yyyy}-!{MM}-!{dd}/!{HH}!{mm}!{extension:.json} |
はい | 最後にリテラル拡張を使用した Hive スタイルのパーティショニング。 |
!{channel-name}/!{channel-id} |
はい | 最小テンプレート。Kinesis Data Streams は、一意のサフィックスを自動的に追加します。 |
/data/!{channel-name}!{extension} |
いいえ | スラッシュで始まります。 |
data/../!{channel-name}!{extension} |
いいえ | パストラバーサル () が含まれます..。 |
data//!{channel-name}!{extension} |
いいえ | 連続するスラッシュ () が含まれます//。 |
!{channel-name}!{extension}/!{yyyy} |
いいえ | 拡張プレースホルダーがテンプレートの末尾にありません。 |
data/!{partition-id}!{extension} |
いいえ | !{partition-id} はサポートされている変数ではありません。 |
data/!{channel-name} (GZIP または ZSTD 圧縮を使用) |
いいえ | 圧縮は有効ですが、テンプレートには拡張プレースホルダーがありません。 |
data/!{channel-name}/!{yyyy} (中括弧なし) |
いいえ | 閉じていない変数プレースホルダー。 |