커스텀 변환기 개발

다음에서 지원:

IDE 내에서 직접 Python 기반 커스텀 변환 함수와 논리 연산자를 만들고 복잡하고 다양한 사용 사례를 위한 플레이북에서 사용할 수 있습니다.

확장팩

확장팩 은 커스텀 변환 함수와 논리 연산자의 컨테이너 역할을 하도록 설계된 특수 통합 유형입니다. 표준 통합과 달리 확장팩에는 인스턴스 구성이 필요하지 않으며 IDE에서 직접 만들 수 있습니다.

확장팩 권장사항

  • 통합: 하나의 기본 확장팩을 만들고 여기에 여러 변환 함수 또는 논리 연산자를 추가합니다.
  • 분리: 기본 팩과 충돌할 수 있는 다른 Python 라이브러리 (종속 항목) 세트가 필요한 경우 새 확장팩을 만듭니다.

확장팩 만들기

새 확장팩을 만들려면 다음 단계를 따르세요.

  1. 응답 > IDE 로 이동합니다.
  2. 추가 새 항목 만들기를 클릭합니다.
  3. 드롭다운에서 확장팩 을 선택합니다.
  4. 확장팩의 고유한 이름 을 입력합니다.
  5. 저장 을 클릭합니다.

종속 항목 업로드

표준 통합과 마찬가지로 확장팩은 Python 라이브러리를 관리할 수 있는 가상 환경에서 실행됩니다.

라이브러리를 관리하려면 다음 단계를 따르세요.

  1. IDE에서 확장팩 설정 을 엽니다.
  2. PyPi에서 필요한 Python 라이브러리를 추가하거나 컴퓨터에서 업로드합니다.

이러한 종속 항목은 이 특정 확장팩에 포함된 모든 변환기와 논리 연산자에서 사용할 수 있습니다.

가져오기 및 내보내기

IDE 인터페이스 내에서 직접 확장팩을 수동으로 가져오고 내보낼 수 있습니다.

커스텀 변환기

커스텀 변환기표현식 빌더 의 기본 제공 함수를 확장하는 사용자 정의 Python 함수입니다. IDE 내에서 직접 만들어 데이터를 추출하고 조작할 수 있으며 기존 기본 제공 함수와 함께 사용할 수 있습니다.

커스텀 변환기 만들기

새 커스텀 변환기를 정의하려면 다음 단계를 따르세요.

  1. IDE 에서 대상 확장팩을 찾습니다.
  2. 팩 아래에 새 항목을 추가할 대상 확장팩을 선택합니다.
  3. 커스텀 변환 함수 를 선택합니다.
  4. 이름을 지정합니다.
  5. (선택사항) 설명을 추가합니다. 표현식 빌더에서 커스텀 변환기 위로 마우스를 가져가면 표시됩니다.
  6. Python을 사용하여 스크립트 로직을 정의합니다. 제공된 기본 템플릿을 시작점으로 사용할 수 있습니다.
    • 스크립트에는 main 함수가 미리 정의된 템플릿에 표시된 대로 포함되어야 합니다.
    • 스크립트는 SDK end 함수를 사용하여 표현식 빌더에 결과를 반환해야 합니다.
    • 커스텀 변환기의 입력은 다양한 유형 (예: 문자열 또는 목록)일 수 있습니다. `main` 함수에서 예상되는 유형으로 변환해야 합니다.
    • 변환기의 IDE 내에서 SDK 메서드의 하위 집합만 사용할 수 있습니다. 변환기:
      • transformer.extract_param("ParamName"): 입력 값을 검색합니다.
      • transformer.LOGGER: 디버깅을 위한 로그를 작성합니다.
      • transformer.end(result): 변환된 값을 반환합니다.
  7. 매개변수 만들기:
    • 각 커스텀 변환기 함수에는 기본 입력 매개변수가 포함되어 있습니다. 이 매개변수는 함수가 적용되는 자리표시자인 입력 데이터를 나타냅니다. 이 매개변수는 삭제할 수 없습니다.
    • 또한 함수 내에서 사용할 선택성 매개변수를 추가할 수 있습니다.
  8. 문서 (선택사항): 표현식 빌더의 제품 내 문서를 정의합니다.
    • 예상 입력: 이 변환기에 대해 함수가 수신할 것으로 예상되는 데이터 유형 (예: "문자열" 또는 "문자열 목록")을 설명합니다.
    • 예상 출력: 이 변환기에 대해 함수가 반환할 것으로 예상되는 데이터 유형 (예: '불리언')을 설명합니다.
    • 사용 예: 함수를 호출하는 방법의 예 (예: if_empty("new_value"))를 제공합니다.

플레이북에서 사용하기 전에 IDE 내에서 직접 커스텀 변환 함수 로직을 테스트할 수 있습니다. 이를 통해 Python 스크립트가 다양한 입력 유형과 매개변수를 올바르게 처리하고 예상 결과를 반환하는지 확인할 수 있습니다.

시간 초과

  • 기본 시간 초과: 1분
  • 최대 시간 초과: 3분

표현식 빌더에서 커스텀 변환기 사용

저장되면 커스텀 변환기가 표현식 빌더의 함수 목록에 기본 제공 함수와 함께 표시됩니다. 형식 ExtensionPackName.TransformerName으로 식별됩니다. 함수 위로 마우스를 가져가면 매개변수 설명에서 생성된 문서가 표시됩니다.

모든 자리표시자 지원 (JSON 및 비 JSON)

표현식 빌더는 JSON이 아닌 결과를 포함하여 플레이북 디자이너에 노출된 모든 자리표시자를 지원합니다.

JSON이 아닌 자리표시자의 경우:

  • 표현식 빌더에 샘플 데이터를 수동으로 입력하여 다양한 입력 유형(문자열, 목록(쉼표로 구분된 값), JSON)에 대해 로직을 테스트할 수 있습니다.
  • 입력 유형으로 테스트한다고 해서 자리표시자가 런타임에 해당 특정 유형을 반환하는 것은 아닙니다.
  • 대부분의 자리표시자는 문자열로 확인되지만 수량에 따라 문자열 또는 목록으로 확인되는 특정 유형 (예: entity.identifier)은 예외입니다. 이러한 경우 항상 입력을 목록으로 처리하는 것이 좋습니다.

오류 처리

커스텀 변환 함수를 실행하는 동안 오류가 발생하면 해당 변환기를 사용하는 플레이북 작업이 실패합니다. Python 스크립트에서 생성된 특정 오류 메시지가 플레이북 실행 뷰 내의 화면에 표시되므로 로직을 직접 해결할 수 있습니다.

커스텀 논리 연산자

커스텀 논리 연산자 를 사용하면 값을 비교하기 위한 자체 불리언 로직을 정의할 수 있습니다.

커스텀 논리 연산자 만들기

새 논리 연산자를 정의하려면 다음 단계를 따르세요.

  1. IDE 에서 대상 확장팩 을 찾습니다.
  2. 커스텀 논리 연산자 를 선택합니다.
  3. 이름을 지정합니다.
  4. (선택사항) 플레이북 디자이너의 논리 연산자 메뉴에 대한 설명을 추가합니다.
  5. Python을 사용하여 스크립트 로직을 정의합니다. 제공된 미리 정의된 템플릿을 시작점으로 사용할 수 있습니다.
    • 스크립트에는 main 함수가 포함되어야 합니다.
    • 스크립트는 SDK end 함수를 사용하여 조건에 불리언 결과를 반환해야 합니다.
    • 논리 연산자의 IDE 내에서 SDK 메서드의 하위 집합만 사용할 수 있습니다.
      • logical_operator.extract_param("ParamName"): 입력 값을 검색합니다.
      • logical_operator.LOGGER: 디버깅을 위한 로그를 작성합니다.
      • logical_operator.end(result): 결과는 불리언 값 (true 또는 false)입니다.

IDE 내에서 직접 커스텀 논리 연산자 로직을 테스트할 수 있습니다. 이를 통해 인수의 테스트 값을 입력하고 함수가 정의된 조건에 따라 올바른 불리언 (True 또는 False) 결과를 반환하는지 확인할 수 있습니다.

매개변수

커스텀 논리 연산자는 두 가지 매개변수(왼쪽 (필수이며 수정할 수 없음) 및 오른쪽(선택사항, 사용자가 사용 중지할 수 있음))을 허용합니다.

  • 예 1: if [left side] not in [right side]
  • 예 2: if [left side] is greater than 80 (오른쪽 없음 ).

시간 초과

  • 기본 시간 초과: 1분
  • 최대 시간 초과: 3분

플레이북에서 사용

커스텀 논리 연산자는 플레이북 조건, 이전 작업 조건, 항목 선택 내의 연산자 메뉴에 표시됩니다.

커스텀 논리 연산자는 표준 연산자 (예: '같음' 또는 '포함')와 함께 선택할 수 있습니다.

오류 처리

커스텀 논리 연산자 함수를 실행하는 동안 오류가 발생하면 해당 연산자를 사용하는 플레이북 조건 또는 단계가 실패합니다. Python 스크립트에서 반환된 오류 메시지가 문제 해결을 지원하기 위해 플레이북 실행 뷰 내에 표시됩니다.

제한사항

  • 커스텀 변환 함수와 논리 연산자는 지원되지 않습니다. 트리거 또는 웹훅에서.

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