翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 オブジェクトのカスタムプレフィックスを理解する
Amazon S3 に配信されるオブジェクトは、<evaluated prefix><suffix> の名前形式に従います。実行時に評価される式を含むカスタムプレフィックスを指定できます。指定するカスタムプレフィックスは、yyyy/MM/dd/HH のデフォルトのプレフィックスを上書きします。
カスタムプレフィックスでは、フォーム !{namespace: の式を使用できます。ここで、value}namespace は、以下のセクションで説明されているとおり、以下のいずれかです。
-
firehose -
timestamp -
partitionKeyFromQuery -
partitionKeyFromLambda
プレフィックスの最後がスラッシュの場合は、Amazon S3 バケット内のフォルダとして表示されます。詳細については、「Amazon Data Firehose デベロッパーガイド」の「Amazon S3 オブジェクト名の形式」を参照してください。
timestamp 名前空間
この名前空間の有効な値は、有効な Java DateTimeFormatter!{timestamp:yyyy} は 2018 として評価されます。
タイムスタンプを評価するとき、Firehose は、書き込まれる Amazon S3 オブジェクトに含まれる最も古いレコードのおおよその到達タイムスタンプを使用します。
デフォルトでは、タイムスタンプは UTC です。ただし、希望するタイムゾーンを指定できます。たとえば、UTC の代わりに日本標準時を使用する場合は、 AWS Management Console または API パラメータ設定 (CustomTimeZone) でタイムゾーンをアジア/東京に設定できます。サポートされているタイムゾーンのリストを確認するには、「Amazon S3 Object Name Format」を参照してください。
timestamp 名前空間を同じプレフィックス式で複数回使用した場合、すべてのインスタンスが同じ時点として評価されます。
firehose 名前空間
この名前空間では、2 つの値 error-output-type および random-string を使用できます。 次の表は、これらの値の使用方法を説明しています。
| 変換 | 説明 | 入力例 | 出力例 | メモ |
|---|---|---|---|---|
error-output-type |
Firehose ストリームと失敗の理由に応じて、次の文字列のいずれかとして評価されます: {processing-failed、AmazonOpenSearchService-failed、splunk-failed、format-conversion-failed、http-endpoint-failed}。 同じ式で複数回使用した場合、すべてのインスタンスが同じエラー文字列として評価されます。 |
myPrefix/result=!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd} |
myPrefix/result=processing-failed/2018/08/03 |
error-output-type 値は、ErrorOutputPrefix フィールドでのみ使用できます。 |
random-string |
11 文字のランダムな文字列として評価されます。同じ式で複数回使用した場合、すべてのインスタンスが新しいランダム文字列として評価されます。 |
myPrefix/!{firehose:random-string}/ |
myPrefix/046b6c7f-0b/ |
両方のプレフィックスタイプで使用できます。 形式の文字列の先頭にこれを配置すると、ランダム化されたプレフィックスを取得できます。これは、Amazon S3 で非常に高いスループットを実現するために必要になることがあります。 |
partitionKeyFromLambda および partitionKeyFromQuery 名前空間
動的パーティショニングでは、S3 バケットプレフィックスで次の式形式を使用する必要があります: !{namespace:value}。ここで、名前空間は partitionKeyFromQuery または partitionKeyFromLambda、またはその両方です。インライン解析を使用してソースデータのパーティショニングキーを作成している場合は、次の形式で指定された式で構成される S3 バケットプレフィクス値を指定する必要があります: "partitionKeyFromQuery:keyID"。 AWS
Lambda 関数を使用してソースデータのパーティショニングキーを作成している場合は、次の形式で指定された式で構成される S3 バケットプレフィックス値を指定する必要があります。"partitionKeyFromLambda:keyID"。詳細については、「Creating an Amazon Firehose stream」の「Choose Amazon S3 for Your Destination」を参照してください。
セマンティックルール
Prefix および ErrorOutputPrefix 式には、以下のルールが制限されます。
-
timestamp名前空間では、一重引用符で囲まれていないすべての文字が評価されます。言い換えると、値フィールドで一重引用符によりエスケープされたすべての文字列が文字どおりに解釈されます。 -
タイムスタンプ名前空間式が含まれないプレフィックスを指定した場合、Firehose は式
!{timestamp:yyyy/MM/dd/HH/}をPrefixフィールドの値に追加します。 -
シーケンス
!{は、!{namespace:式にのみ現れます。value} -
Prefixに式が含まれていない場合、ErrorOutputPrefixは null にのみすることができます。この場合、Prefixは<specified-prefix>yyyy/MM/DDD/HH/と評価され、ErrorOutputPrefixは<specified-prefix><error-output-type>yyyy/MM/DDD/HH/と評価されます。DDDは日を表します。 -
ErrorOutputPrefixの式を指定した場合、!{firehose:error-output-type}のインスタンスを少なくとも 1 つ含める必要があります。 -
Prefixに!{firehose:error-output-type}を含めることはできません。 -
PrefixとErrorOutputPrefixのどちらも、評価後に 512 文字を超えることはできません。 -
送信先が Amazon Redshift の場合、
Prefixに式を含めることはできず、ErrorOutputPrefixは null にする必要があります。 -
宛先が Amazon OpenSearch Service または Splunk であり、
ErrorOutputPrefixが指定されていない場合、Firehose は失敗したレコードにPrefixフィールドを使用します。 -
送信先が Amazon S3 の場合、Amazon S3 送信先設定の
PrefixおよびErrorOutputPrefixは、それぞれ成功したレコードと失敗したレコードに使用されます。 AWS CLI または API を使用する場合は、ExtendedS3DestinationConfigurationを使用して Amazon S3 バックアップ設定をそれ自身のPrefixとErrorOutputPrefixを用いて指定できます。 -
を使用して送信先を Amazon S3 に設定する AWS Management Console と、Firehose は送信先設定
ErrorOutputPrefixでPrefixと をそれぞれ成功レコードと失敗レコードに使用します。式を使用してプレフィックスを指定する場合は、!{firehose:error-output-type}を含むエラープレフィックスを指定する必要があります。 -
ExtendedS3DestinationConfigurationを AWS CLI、 API、または で AWS CloudFormation使用する場合S3BackupConfiguration、Firehose はデフォルトの を提供しませんErrorOutputPrefix。 -
ErrorOutputPrefix 式を作成するときに、
partitionKeyFromLambdaおよびpartitionKeyFromQuery名前空間を使用することはできません。
プレフィックスの例
| Input | 評価されるプレフィックス (2018 年 8 月 27 日の午前 10:30 UTC) |
|---|---|
|
|
|
|
|
無効な入力: Prefix に式が含まれている場合、ErrorOutputPrefix を null にすることはできません。 |
|
|
|
|
|
|
|
|