翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
JSON ミューテーションプロセッサ
このセクションでは、ログイベントトランスフォーマーで使用できる JSON ミューテーションプロセッサについて説明します。
addKeys
addKeys プロセッサを使用して、ログイベントに新しいキーと値のペアを追加します。
| フィールド | 説明 | 必須? | デフォルト | 制限 |
|---|---|---|---|---|
|
エントリ |
エントリの配列。配列内の各項目には、key、value、overwriteIfExists フィールドを含めることができます。 |
はい |
最大エントリ: 5 |
|
|
key |
追加する新しいエントリのキー |
はい |
最大長: 128 ネストされたキーの最大深度: 3 |
|
|
値 |
追加する新しいエントリの値 |
はい |
最大長: 256 |
|
|
overwriteIfExists |
これを true に設定すると、key が既にイベントに存在する場合、既存の値は上書きされます。デフォルト値は false です。 |
いいえ |
false |
無制限 |
例
ログイベントの例を以下に示します。
{ "outer_key": { "inner_key": "inner_value" } }
トランスフォーマーの設定は次のようになります。addKeys と parseJSON を併用します。
[ { "parseJSON": {} }, { "addKeys": { "entries": [ { "source": "outer_key.new_key", "value": "new_value" } ] } } ]
変換されたログイベントは次のとおりです。
{ "outer_key": { "inner_key": "inner_value", "new_key": "new_value" } }
DeleteKeys
deleteKeys プロセッサを使用して、ログイベントからフィールドを削除します。これらのフィールドには、キーと値のペアを含めることができます。
| フィールド | 説明 | 必須? | デフォルト | 制限 |
|---|---|---|---|---|
|
withKeys |
削除するキーのリスト。 |
はい |
無制限 |
最大エントリ: 5 |
例
ログイベントの例を以下に示します。
{ "outer_key": { "inner_key": "inner_value" } }
トランスフォーマーの設定は次のようになります。deleteKeys と parseJSON を併用します。
[ { "parseJSON": {} }, { "deleteKeys": { "withKeys":["outer_key.inner_key"] } } ]
変換されたログイベントは次のとおりです。
{ "outer_key": {} }
moveKeys
moveKeys プロセッサを使用して、あるフィールドから別のフィールドにキーを移動します。
| フィールド | 説明 | 必須? | デフォルト | 制限 |
|---|---|---|---|---|
|
エントリ |
エントリの配列。配列内の各項目には、source、target、overwriteIfExists フィールドを含めることができます。 |
はい |
最大エントリ: 5 |
|
|
ソース |
移動するキー |
はい |
最大長: 128 ネストされたキーの最大深度: 3 |
|
|
target |
移動先のキー |
はい |
最大長: 128 ネストされたキーの最大深度: 3 |
|
|
overwriteIfExists |
これを true に設定すると、key が既にイベントに存在する場合、既存の値は上書きされます。デフォルト値は false です。 |
いいえ |
false |
無制限 |
例
ログイベントの例を以下に示します。
{ "outer_key1": { "inner_key1": "inner_value1" }, "outer_key2": { "inner_key2": "inner_value2" } }
トランスフォーマーの設定は次のようになります。moveKeys と parseJSON を併用します。
[ { "parseJSON": {} }, { "moveKeys": { "entries": [ { "source": "outer_key1.inner_key1", "target": "outer_key2" } ] } } ]
変換されたログイベントは次のとおりです。
{ "outer_key1": {}, "outer_key2": { "inner_key2": "inner_value2", "inner_key1": "inner_value1" } }
renameKeys
renameKeys プロセッサを使用して、ログイベントのキーの名前を変更します。
| フィールド | 説明 | 必須? | デフォルト | 制限 |
|---|---|---|---|---|
|
エントリ |
エントリの配列。配列内の各項目には、key、target、overwriteIfExists フィールドを含めることができます。 |
はい |
無制限 |
最大エントリ: 5 |
|
key |
名前を変更するキー |
はい |
無制限 |
最大長: 128 |
|
target |
新しいキー名 |
はい |
無制限 |
最大長: 128 ネストされたキーの最大深度: 3 |
|
overwriteIfExists |
これを true に設定すると、key が既にイベントに存在する場合、既存の値は上書きされます。デフォルト値は false です。 |
いいえ |
false |
無制限 |
例
ログイベントの例を以下に示します。
{ "outer_key": { "inner_key": "inner_value" } }
トランスフォーマーの設定は次のようになります。renameKeys と parseJSON を併用します。
[ { "parseJSON": {} }, { "renameKeys": { "entries": [ { "key": "outer_key", "target": "new_key" } ] } } ]
変換されたログイベントは次のとおりです。
{ "new_key": { "inner_key": "inner_value" } }
copyValue
copyValue プロセッサを使用して、ログイベント内の値をコピーします。このプロセッサを使用して、以下のメタデータキーの値をログイベントにコピーすることでメタデータをログイベントに追加することもできます。@logGroupName、@logGroupStream、@accountId、@regionName。これについて、次の例で説明します。
| フィールド | 説明 | 必須? | デフォルト | 制限 |
|---|---|---|---|---|
|
エントリ |
エントリの配列。配列内の各項目には、source、target、overwriteIfExists フィールドを含めることができます。 |
はい |
最大エントリ: 5 |
|
|
ソース |
コピーするキー |
はい |
最大長: 128 ネストされたキーの最大深度: 3 |
|
|
target |
値をコピーするキー |
はい |
無制限 |
最大長: 128 ネストされたキーの最大深度: 3 |
|
overwriteIfExists |
これを true に設定すると、key が既にイベントに存在する場合、既存の値は上書きされます。デフォルト値は false です。 |
いいえ |
false |
無制限 |
例
ログイベントの例を以下に示します。
{ "outer_key": { "inner_key": "inner_value" } }
トランスフォーマーの設定は次のようになります。copyValue と parseJSON を併用します。
[ { "parseJSON": {} }, { "copyValue": { "entries": [ { "source": "outer_key.new_key", "target": "new_key" }, { "source": "@logGroupName", "target": "log_group_name" }, { "source": "@logGroupStream", "target": "log_group_stream" }, { "source": "@accountId", "target": "account_id" }, { "source": "@regionName", "target": "region_name" } ] } } ]
変換されたログイベントは次のとおりです。
{ "outer_key": { "inner_key": "inner_value" }, "new_key": "inner_value", "log_group_name": "myLogGroupName", "log_group_stream": "myLogStreamName", "account_id": "012345678912", "region_name": "us-east-1" }
listToMap
listToMap プロセッサは、キーフィールドを含むオブジェクトのリストを取得し、ターゲットキーのマップに変換します。
| フィールド | 説明 | 必須? | デフォルト | 制限 |
|---|---|---|---|---|
|
ソース |
マップに変換されるオブジェクトのリストを含む ProcessingEvent のキー |
はい |
最大長: 128 ネストされたキーの最大深度: 3 |
|
|
key |
生成されたマップでキーとして抽出されるフィールドのキー |
はい |
最大長: 128 |
|
|
valueKey |
これを指定すると、このパラメータで指定した値が source オブジェクトから抽出され、生成されたマップの値に配置されます。それ以外の場合、ソースリスト内の元のオブジェクトは、生成されたマップの値に配置されます。 |
いいえ |
最大長: 128 |
|
|
target |
生成されたマップを保持するフィールドのキー |
いいえ |
ルートノード |
最大長: 128 ネストされたキーの最大深度: 3 |
|
flatten |
リストを単一の項目にフラット化するか、生成されたマップの値をリストにするかを示すブール値。 デフォルトでは、一致するキーの値は配列で表されます。 |
いいえ |
false |
|
|
flattenedElement |
flatten を true に設定する場合は、flattenedElement を使用して、first または last のどちらの要素を保持するかを指定します。 |
|
値は first または last です。 |
例
ログイベントの例を以下に示します。
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ] }
ユースケース 1 のトランスフォーマー: flatten は false です
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": false } } ]
変換されたログイベントは次のとおりです。
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": [ "val-a" ], "b": [ "val-b1", "val-b2" ], "c": [ "val-c" ] }
ユースケース 2 のトランスフォーマー: flatten は true で、flattenedElement は first です
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "first" } } ]
変換されたログイベントは次のとおりです。
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": "val-a", "b": "val-b1", "c": "val-c" }
ユースケース 3 のトランスフォーマー: flatten は true で、flattenedElement は last です
[ { "parseJSON": {} }, { "listToMap": { "source": "outer_key" "key": "inner_key", "valueKey": "inner_value", "flatten": true, "flattenedElement": "last" } } ]
変換されたログイベントは次のとおりです。
{ "outer_key": [ { "inner_key": "a", "inner_value": "val-a" }, { "inner_key": "b", "inner_value": "val-b1" }, { "inner_key": "b", "inner_value": "val-b2" }, { "inner_key": "c", "inner_value": "val-c" } ], "a": "val-a", "b": "val-b2", "c": "val-c" }