표현식 빌더로 로직 빌드

다음에서 지원:

표현식 빌더를 사용하면 후속 작업에서 사용할 JSON 결과를 파싱하고 수정할 수 있습니다. 표현식 빌더는 연결, 미리보기, 테스트가 가능한 다양한 동적 변환 함수를 생성하여 원시 작업 결과를 변환하고 파싱하는 대화형 환경을 제공합니다.

플레이북 작업에서 매개변수의 자리표시자를 선택한 후 JSON 결과를 사용할 수 있습니다. 이러한 결과는 작업에서 반환된 포괄적인 정보 를 제공하며, 이 정보는 후속 플레이북 작업 및 흐름에서 사용할 수 있습니다. 자세한 내용은 표현식 빌더의 사용 사례를 참고하세요.

표현식 빌더 보기

이 예는 잠재적 데이터를 보여주며 실시간 결과를 반영하지 않습니다. 실제 데이터는 다를 수 있으며 필드가 더 많거나 더 적을 수 있습니다. 분석가가 런타임에 반환될 추가 필드를 알고 있는 경우 구문 필드에 해당하는 키 경로를 입력할 수 있습니다.

함수

다음 파이프 함수가 지원됩니다.

  • First (x): 배열의 처음 X개 요소를 반환합니다.
    예: alerts | First(2) (alerts[{"id": "A"}, {"id": "B"}, {"id": "C"}]인 경우 [{"id": "A"}, {"id": "B"}]를 반환함)
  • Last (x): 배열의 마지막 X개 요소를 반환합니다.
    예: alerts | Last(1) (alerts[{"id": "A"}, {"id": "B"}, {"id": "C"}]인 경우 [{"id": "C"}]를 반환함)
  • Min (KeyPath): 배열에서 최솟값을 가진 항목을 반환합니다. keyPath 매개변수가 제공되면 지정된 경로에서 최솟값을 가진 객체를 반환합니다.
    예: alerts | Min("score") (alertsscore 필드가 있는 객체 목록이 포함된 경우 점수가 가장 낮은 객체를 반환함)
  • Max (KeyPath): 배열에서 최댓값을 가진 항목을 반환합니다. keyPath 매개변수가 제공되면 지정된 경로에서 최댓값을 가진 객체를 반환합니다.
    예: alerts | Max("score") (alertsscore 필드가 있는 객체 목록이 포함된 경우 점수가 가장 높은 객체를 반환함)
  • Filter (ConditionKey, Operator, Value): 객체 배열을 필터링하여 지정된 필드의 조건을 충족하는 객체만 반환합니다.
    • ConditionKey: 조건에 대해 평가할 각 객체의 필드입니다.
    • 연산자: 조건에 사용할 연산자입니다.
      • 문자열 입력의 경우: =, !=, in, not in.
      • 숫자/날짜 입력의 경우: =, !=, >, >=, < , <=.
  • : 조건에서 확인할 값입니다.
    예: alerts | Filter("severity", "=", "HIGH") (severity 필드가 'HIGH'인 모든 알림을 반환함)
  • dateFormat ("pattern") - 날짜 문자열의 형식을 지정합니다. pattern 매개변수를 사용하여 입력 날짜 문자열의 형식을 설명합니다. 이 함수는 날짜를 YYYY-MM-DD hh:mm:ss 형식으로 표준화합니다.
    예: timestamp_field | dateFormat("yyyy/MM/ddTHH:mm:ss") (timestamp_field가 "2024/07/20T10:00:00Z"인 경우 "2024-07-20 10:00:00"을 반환함)

    지원되는 패턴 토큰:

    • 연도: yyyy (4자리), yy (2자리), y (1자리 또는 2자리)
    • 월: MM (01~12), M (1~12), MMMM (전체 이름), MMM (약어)
    • 일: dd (01~31), d (1~31), dddd (전체 요일 이름), ddd (약어)
    • 시간: HH (24시간, 00~23), H (24시간, 0~23), hh (12시간, 01~12), h (12시간, 1~12)
    • 분: mm (00~59), m (0~59)
    • 초: ss (00~59), s (0~59)
    • 소수점 이하 초: fff 또는 FFF
    • 시간대: zzz (예: -08:00), zz, z
    • 오전/오후: tt (오전/오후), t (오전/오후).
  • Count (): 입력 배열의 항목 수를 반환합니다.
    예: alerts | Count() (alerts가 요소 4개가 있는 배열인 경우 4를 반환함)
  • OrderBy("keyPath", "direction"): 지정된 키 경로의 값을 기준으로 객체 배열을 정렬합니다.
    예: alerts | OrderBy("score", "DESC") (alerts 배열을 score를 기준으로 내림차순으로 정렬함)
  • toLower (): 입력을 소문자로 변환합니다.
    예: status_field | toLower() (status_field가 "OPEN"인 경우 "open"을 반환함)
  • toUpper (): 입력을 대문자로 변환합니다.
    예: severity_field | toUpper() (severity_field이 "high"인 경우 "HIGH"를 반환함)
  • Replace("x", "y"): 문자열 내의 하위 문자열을 다른 문자열로 바꿉니다.
    예: message_field | Replace("World", "Universe") (message_field가 "Hello World"인 경우 "Hello Universe"를 반환함)
  • Distinct (): 배열에서 중복 값을 삭제합니다. 객체 배열의 경우 중복된 객체를 식별하기 위해 심층 비교를 실행합니다.
    예: [10, 20, 30, 20, 40] | Distinct() ([10, 20, 30, 40]을 반환함)
  • getByIndex("index"): 지정된 색인 또는 색인 목록으로 배열의 항목을 가져옵니다.
    예: alerts | getByIndex("0") (alerts 배열의 첫 번째 요소를 반환함)
    예: alerts | getByIndex("0,2") (alerts 배열의 첫 번째 요소와 세 번째 요소를 반환함)
  • split("delimiter"): 지정된 구분자를 사용하여 문자열을 하위 문자열 배열로 나눕니다.
    예: "tag1,tag2,tag3" | split(",") (["tag1", "tag2", "tag3"]을 반환함)
  • join("delimiter"): 지정된 구분자를 사용하여 문자열 배열을 단일 문자열로 연결합니다.
    예: ["malware", "critical"] | join(" & ")('malware & critical'을 반환함)
  • trim (): 문자열에서 선행 및 후행 공백을 삭제합니다.
    예: " hello world " | trim()('hello world'를 반환함)
  • trimChars ("characters"): 문자열의 시작과 끝에서 지정된 문자를 삭제합니다. 선행 및 후행 공백은 명시적으로 지정하지 않아도 항상 삭제됩니다.
    예: "--TEST--ABC--" | trimChars("-")('TEST--ABC'를 반환함)
  • substring (start, end): 지정된 시작 색인과 선택적 종료 색인을 사용하여 문자열에서 하위 문자열을 추출합니다.
    예: "Hello World" | substring(0, 5)('Hello'를 반환함)
    예: "Hello World" | substring(6)('World'를 반환함)
  • incrementValue (value): 숫자 값을 지정된 양만큼 늘립니다. 양을 지정하지 않으면 값이 1씩 증가합니다.
    예: score_field | incrementValue(5) (score_field가 90인 경우 95를 반환함)
    예: counter_field | incrementValue() (counter_field가 10인 경우 11을 반환함)
  • setIfEmpty("defaultValue"): 입력 값이 비어 있으면 제공된 기본값을 반환합니다.
    예: optional_field | setIfEmpty("N/A") (optional_field가 비어 있으면 'N/A'를 반환하고, 그렇지 않으면 optional_field의 값을 반환함)
  • toUnixtime (): 사람이 읽을 수 있는 날짜 및 시간 문자열 (예: "2014/03/12T13:37:27Z" 또는 "2014-03-12T13:37:27+01:00")을 UTC로 표현된 Unix 타임스탬프로 변환합니다.
    예: "2024-07-20T10:00:00Z" | toUnixtime() (1721469600을 반환함)
  • ifThenElse ("operator", "comparedValue", "trueResult", "falseResult") - 조건을 평가하고 true이면 첫 번째 표현식을 반환하고, 그렇지 않으면 두 번째 표현식을 반환합니다.
    예: severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority") (severity_field가 'HIGH'인 경우 'High Priority'를 반환하고, 그렇지 않으면 'Normal Priority'를 반환함)
    예: score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold") (score_field가 90인 경우 'Above Threshold'를 반환하고, score_field가 60인 경우 'Below Threshold'를 반환함)

표현식

표현식 필드는 함수 및 파이프와 함께 JSON 결과를 삽입하여 여러 함수를 함께 추가하고 표현식을 빌드하는 곳입니다.

실행 / 결과

표현식 빌더를 작성한 후 실행 을 클릭하여 표현식 빌더에 표시된 JSON 샘플 데이터를 기반으로 결과를 표시합니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.