맞춤 변환 함수 및 논리 연산자
IDE 내에서 직접 맞춤 Python 기반 변환 함수와 논리 연산자를 만들어 복잡하고 다양한 사용 사례를 위한 플레이북에서 사용할 수 있습니다.
확장 프로그램 패키지
확장 프로그램 팩은 맞춤 변환 함수와 논리 연산자의 컨테이너 역할을 하도록 설계된 특수 통합 유형입니다. 표준 통합과 달리 확장 프로그램 팩에는 인스턴스 구성이 필요하지 않으며 IDE에서 직접 만들 수 있습니다.
확장 프로그램 팩 권장사항
- 통합: 하나의 기본 확장 프로그램 팩을 만들고 여기에 여러 변환 함수 또는 논리 연산자를 추가합니다.
- 분리: 기본 팩과 충돌할 수 있는 다른 Python 라이브러리 (종속 항목) 집합이 필요한 경우 새 확장 프로그램 팩을 만듭니다.
확장 프로그램 팩 만들기
새 확장 프로그램 팩을 만들려면 다음 단계를 따르세요.
- 응답 > IDE로 이동합니다.
- 추가 새 항목 만들기를 클릭합니다.
- 드롭다운에서 Extension Pack을 선택합니다.
- 확장 프로그램 팩의 고유한 이름을 입력합니다.
- 저장을 클릭합니다.
종속 항목 업로드
표준 통합과 마찬가지로 확장 프로그램 팩은 Python 라이브러리를 관리할 수 있는 가상 환경에서 실행됩니다.
라이브러리를 관리하려면 다음 단계를 따르세요.
- IDE에서 확장 프로그램 팩 설정을 엽니다.
- PyPi에서 필수 Python 라이브러리를 추가하거나 컴퓨터에서 업로드합니다.
이러한 종속 항목은 이 특정 확장 프로그램 팩에 포함된 모든 트랜스포머와 논리 연산자에서 사용할 수 있습니다.
가져오기 및 내보내기
IDE 인터페이스 내에서 직접 확장 프로그램 팩을 수동으로 가져오고 내보낼 수 있습니다.
맞춤 트랜스포머
맞춤 변환기는 표현식 빌더의 사전 빌드 함수를 확장하는 사용자 정의 Python 함수입니다. IDE 내에서 직접 만들어 데이터를 추출하고 조작할 수 있으며, 기존의 기본 제공 함수와 함께 사용할 수 있습니다.
맞춤 변환기 만들기
새 맞춤 변환기를 정의하려면 다음 단계를 따르세요.
- IDE에서 타겟 확장 프로그램 팩을 찾습니다.
- 팩 아래에 새 항목을 추가할 타겟 확장 프로그램 팩을 선택합니다.
- 맞춤 변환 함수를 선택합니다.
- 이름을 지정합니다.
- (선택사항) 설명을 추가합니다. 표현식 빌더에서 맞춤 변환기 위로 마우스를 가져가면 표시됩니다.
- Python을 사용하여 스크립트 로직을 정의합니다. 제공된 기본 템플릿을 시작점으로 사용할 수 있습니다.
- 스크립트에는 사전 정의된 템플릿에 표시된 대로
main함수가 포함되어야 합니다. - 스크립트는 SDK
end함수를 사용하여 표현식 빌더에 결과를 반환해야 합니다. - 맞춤 변환기의 입력은 다양한 유형(예: 문자열 또는 목록)일 수 있습니다.
main함수에서 예상되는 유형으로 변환해야 합니다. - 트랜스포머용 IDE 내에서 SDK 메서드의 하위 집합만 사용할 수 있습니다.
transformer.extract_param("ParamName"): 입력 값을 가져옵니다.transformer.LOGGER: 디버깅을 위해 로그를 작성합니다.transformer.end(result): 변환된 값을 반환합니다.
- 스크립트에는 사전 정의된 템플릿에 표시된 대로
- 매개변수 만들기:
- 각 맞춤 변환기 함수에는 기본 Input 매개변수가 포함됩니다. 이 매개변수는 입력 데이터를 나타내며, 이는 함수가 적용되는 자리표시자입니다. 이 매개변수는 삭제할 수 없습니다.
- 또한 함수 내에서 사용할 선택적 매개변수를 추가할 수 있습니다.
- 문서 (선택사항): 표현식 빌더의 제품 내 문서를 정의합니다.
- 예상 입력: 이 변환기에 대해 함수가 수신할 것으로 예상되는 데이터 유형을 설명합니다 (예: '문자열' 또는 '문자열 목록').
- 예상 출력: 함수가 이 변환기에 반환할 것으로 예상되는 데이터 유형을 설명합니다 (예: 'boolean').
- 사용 예: 함수를 호출하는 방법의 예를 제공합니다 (예:
if_empty("new_value")).
플레이북에서 사용하기 전에 IDE 내에서 직접 맞춤 변환 함수 로직을 테스트할 수 있습니다. 이를 통해 Python 스크립트가 다양한 입력 유형과 매개변수를 올바르게 처리하고 예상 결과를 반환하는지 확인할 수 있습니다.
제한 시간
- 기본 제한 시간: 1분
- 최대 제한 시간: 3분
표현식 빌더에서 맞춤 변환기 사용
저장하면 맞춤 변환기가 표현식 빌더의 함수 목록에 내장 함수와 함께 표시됩니다. ExtensionPackName.TransformerName 형식으로 식별됩니다. 함수 위로 마우스를 가져가면 매개변수 설명에서 생성된 문서가 표시됩니다.
모든 자리표시자 지원 (JSON 및 비JSON)
표현식 빌더는 JSON이 아닌 결과를 포함하여 플레이북 디자이너에 노출된 모든 자리표시자를 지원합니다.
JSON이 아닌 자리표시자의 경우:
- 표현식 빌더에 샘플 데이터를 수동으로 입력하여 다양한 입력 유형(문자열, 목록(쉼표로 구분된 값), JSON)에 대한 로직을 테스트할 수 있습니다.
- 입력 유형으로 테스트해도 자리표시자가 런타임에 해당 특정 유형을 반환한다고 보장할 수는 없습니다.
- 대부분의 자리표시자는 문자열로 처리되지만, 수량에 따라 문자열 또는 목록으로 처리되는 특정 유형 (예:
entity.identifier)은 예외입니다. 이러한 경우 항상 입력을 목록으로 처리하는 것이 좋습니다.
오류 처리
맞춤 변환 함수가 실행 중에 오류를 발견하면 해당 변환기를 사용하는 플레이북 작업이 실패합니다. Python 스크립트에서 생성된 특정 오류 메시지가 플레이북 실행 뷰 내 화면에 표시되므로 로직을 직접 문제 해결할 수 있습니다.
맞춤 논리 연산자
맞춤 논리 연산자를 사용하면 값을 비교하기 위한 자체 불리언 논리를 정의할 수 있습니다.
맞춤 논리 연산자 만들기
새 논리 연산자를 정의하려면 다음 단계를 따르세요.
- IDE에서 타겟 확장 프로그램 팩을 찾습니다.
- 맞춤 논리 연산자를 선택합니다.
- 이름을 지정합니다.
- 선택사항: Playbook Designer에서 논리 연산자 메뉴에 대한 설명을 추가합니다.
- 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 전문가에게 문의하여 답변을 받으세요.