View a markdown version of this page

Amazon S3 配信用の S3 出力キーテンプレート Amazon S3 - Amazon Kinesis Data Streams

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

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 は、すべてのオブジェクトキーに一意のサフィックスを自動的に追加するため、テンプレートに区別するのに十分なタイムコンポーネントが含まれていない場合でも、オブジェクトキーは一意です。

テンプレート変数

キーテンプレートでは、次の変数を使用できます。

S3 キーテンプレート変数
可変 説明 値の例
!{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:.literal} 指定したリテラルファイル拡張子。ピリオドで始まり、小文字とピリオドのみを含める必要があります。存在する場合は、テンプレートの末尾に表示される必要があります。 !{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} (中括弧なし) いいえ 閉じていない変数プレースホルダー。