기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
JSON 변형 프로세서
이 섹션에는 로그 이벤트 변환기와 함께 사용할 수 있는 JSON 변형 프로세서에 대한 정보가 포함되어 있습니다.
addKeys
addKeys 프로세서를 사용하여 로그 이벤트에 새 키-값 쌍을 추가합니다.
| 필드 | 설명 | 필수 | 기본값 | 제한 사항 |
|---|---|---|---|---|
|
항목 |
항목의 배열. 배열의 각 항목에는 key, value 및 overwriteIfExists 필드가 포함될 수 있습니다. |
예 |
최대 항목: 5 |
|
|
키 |
추가할 새 항목의 키 |
예 |
최대 길이: 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 |
|
|
source |
이동할 키 |
예 |
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
|
대상 |
이동할 키 |
예 |
최대 길이: 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 |
|
키 |
이름을 바꿀 키 |
예 |
제한 없음 |
최대 길이: 128 |
|
대상 |
새 키 이름 |
예 |
제한 없음 |
최대 길이: 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 |
|
|
source |
복사할 키 |
예 |
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
|
대상 |
값을 복사할 키 |
예 |
제한 없음 |
최대 길이: 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 프로세서는 키 필드가 포함된 객체 목록을 가져와 대상 키 맵으로 변환합니다.
| 필드 | 설명 | 필수 | 기본값 | 제한 사항 |
|---|---|---|---|---|
|
source |
맵으로 변환될 객체 목록이 있는 ProcessingEvent의 키 |
예 |
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
|
키 |
생성된 맵에서 키로 추출할 필드의 키 |
예 |
최대 길이: 128 |
|
|
valueKey |
이렇게 지정하면 이 파라미터에서 지정하는 값이 source 객체에서 추출되어 생성된 맵의 값에 추가됩니다. 그렇지 않으면 소스 목록의 원본 객체가 생성된 맵의 값에 추가됩니다. |
아니요 |
최대 길이: 128 |
|
|
대상 |
생성된 맵을 보관할 필드의 키. |
아니요 |
루트 노드 |
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
평면화 |
목록을 단일 항목으로 평탄화할지 아니면 생성된 맵의 값을 목록으로 만들지 나타내는 부울 값입니다. 기본적으로 매칭 키의 값은 배열로 표시됩니다. |
아니요 |
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" }