JSON 변형 프로세서 - Amazon CloudWatch Logs

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

JSON 변형 프로세서

이 섹션에는 로그 이벤트 변환기와 함께 사용할 수 있는 JSON 변형 프로세서에 대한 정보가 포함되어 있습니다.

addKeys

addKeys 프로세서를 사용하여 로그 이벤트에 새 키-값 쌍을 추가합니다.

필드 설명 필수 기본값 제한 사항

항목

항목의 배열. 배열의 각 항목에는 key, valueoverwriteIfExists 필드가 포함될 수 있습니다.

최대 항목: 5

추가할 새 항목의 키

최대 길이: 128

최대 중첩 키 깊이: 3

추가할 새 항목의 값

최대 길이: 256

overwriteIfExists

이 값을 true로 설정하면 이벤트에 key가 이미 있는 경우 기존 값을 덮어씁니다. 기본값은 false입니다. 아니요

false

제한 없음

예제

다음 예제 로그 이벤트를 살펴봅니다.

{ "outer_key": { "inner_key": "inner_value" } }

변환기 구성은 addKeysparseJSON과 사용하는 경우 다음과 같습니다.

[ { "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" } }

변환기 구성은 deleteKeysparseJSON과 사용하는 경우 다음과 같습니다.

[ { "parseJSON": {} }, { "deleteKeys": { "withKeys":["outer_key.inner_key"] } } ]

변환된 로그 이벤트는 다음과 같습니다.

{ "outer_key": {} }

moveKeys

moveKeys 프로세서를 사용하여 한 필드에서 다른 필드로 키를 이동합니다.

필드 설명 필수 기본값 제한 사항

항목

항목의 배열. 배열의 각 항목에는 source, targetoverwriteIfExists 필드가 포함될 수 있습니다.

최대 항목: 5

source

이동할 키

최대 길이: 128

최대 중첩 키 깊이: 3

대상

이동할 키

최대 길이: 128

최대 중첩 키 깊이: 3

overwriteIfExists

이 값을 true로 설정하면 이벤트에 key가 이미 있는 경우 기존 값을 덮어씁니다. 기본값은 false입니다. 아니요

false

제한 없음

예제

다음 예제 로그 이벤트를 살펴봅니다.

{ "outer_key1": { "inner_key1": "inner_value1" }, "outer_key2": { "inner_key2": "inner_value2" } }

변환기 구성은 moveKeysparseJSON과 사용하는 경우 다음과 같습니다.

[ { "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, targetoverwriteIfExists 필드가 포함될 수 있습니다.

제한 없음

최대 항목: 5

이름을 바꿀 키

제한 없음

최대 길이: 128

대상

새 키 이름

제한 없음

최대 길이: 128

최대 중첩 키 깊이: 3

overwriteIfExists

이 값을 true로 설정하면 이벤트에 key가 이미 있는 경우 기존 값을 덮어씁니다. 기본값은 false입니다. 아니요

false

제한 없음

예제

다음 예제 로그 이벤트를 살펴봅니다.

{ "outer_key": { "inner_key": "inner_value" } }

변환기 구성은 renameKeysparseJSON과 사용하는 경우 다음과 같습니다.

[ { "parseJSON": {} }, { "renameKeys": { "entries": [ { "key": "outer_key", "target": "new_key" } ] } } ]

변환된 로그 이벤트는 다음과 같습니다.

{ "new_key": { "inner_key": "inner_value" } }

copyValue

copyValue 프로세서를 사용하여 로그 이벤트 내에서 값을 복사합니다. 또한 이 프로세서를 사용하여 @logGroupName, @logGroupStream, @accountId, @regionName 등 메타데이터 키 값을 로그 이벤트에 복사하여 로그 이벤트에 메타데이터를 추가할 수 있습니다. 다음 예제에 설명되어 있습니다.

필드 설명 필수 기본값 제한 사항

항목

항목의 배열. 배열의 각 항목에는 source, targetoverwriteIfExists 필드가 포함될 수 있습니다.

최대 항목: 5

source

복사할 키

최대 길이: 128

최대 중첩 키 깊이: 3

대상

값을 복사할 키

제한 없음

최대 길이: 128

최대 중첩 키 깊이: 3

overwriteIfExists

이 값을 true로 설정하면 이벤트에 key가 이미 있는 경우 기존 값을 덮어씁니다. 기본값은 false입니다. 아니요

false

제한 없음

예제

다음 예제 로그 이벤트를 살펴봅니다.

{ "outer_key": { "inner_key": "inner_value" } }

변환기 구성은 copyValueparseJSON과 사용하는 경우 다음과 같습니다.

[ { "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 프로세서는 키 필드가 포함된 객체 목록을 가져와 대상 키 맵으로 변환합니다.

필드 설명 필수 기본값 제한 사항

source

맵으로 변환될 객체 목록이 있는 ProcessingEvent의 키

최대 길이: 128

최대 중첩 키 깊이: 3

생성된 맵에서 키로 추출할 필드의 키

최대 길이: 128

valueKey

이렇게 지정하면 이 파라미터에서 지정하는 값이 source 객체에서 추출되어 생성된 맵의 값에 추가됩니다. 그렇지 않으면 소스 목록의 원본 객체가 생성된 맵의 값에 추가됩니다.

아니요

최대 길이: 128

대상

생성된 맵을 보관할 필드의 키.

아니요

루트 노드

최대 길이: 128

최대 중첩 키 깊이: 3

평면화

목록을 단일 항목으로 평탄화할지 아니면 생성된 맵의 값을 목록으로 만들지 나타내는 부울 값입니다.

기본적으로 매칭 키의 값은 배열로 표시됩니다. flattentrue로 설정하여 배열을 flattenedElement의 값을 기반으로 하는 단일 값으로 변환합니다.

아니요

false

flattenedElement

flattentrue로 설정한 경우 flattenedElement를 사용하여 유지할 요소 first 또는 last를 지정합니다.

flattentrue로 설정된 경우 필요합니다.

값은 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용 변환기: flattenfalse입니다

[ { "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용 변환기: flattentrue이며, flattenedElementfirst입니다

[ { "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용 변환기: flattentrue이며, flattenedElementlast입니다

[ { "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" }