12장. 이벤트 필터 플러그인


이벤트에는 불필요한 추가 데이터가 있고 규칙 엔진을 덮어쓸 수 있는 경우가 있습니다. 규칙에 중요한 사항에 집중할 수 있도록 이벤트 필터를 사용하여 추가 데이터를 제거합니다. 이벤트 필터에서는 규칙 조건이 데이터와 더 적합할 수 있도록 데이터의 형식을 변경할 수도 있습니다.

이벤트는 Python 코드로 정의되고 컬렉션으로 배포됩니다. 기본 eda 컬렉션에 는 다음과 같은 필터가 있습니다.

이름설명

json_filter

이 필터는 이벤트 오브젝트에서 키를 포함 및 제외

dashes_to_underscores

이 필터는 페이로드의 모든 키의 대시를 밑줄로 변경합니다.

ansible.eda.insert_hosts_to_meta

이 필터는 ansible-rulebook에서 해당 정보를 찾아 사용할 수 있도록 이벤트에 호스트 정보를 추가하는 데 사용됩니다.

ansible.eda.normalize_keys

이 필터는 알파 숫자 이외의 키를 밑줄로 변경하려는 경우에 사용됩니다.

이벤트 필터를 연결한 후 이벤트 필터를 연결할 수 있으며 업데이트된 데이터는 하나의 필터에서 다음으로 전송됩니다. 이벤트 필터는 소스를 정의한 후 룰북에 정의됩니다. 룰북이 소스 플러그인을 시작할 때 올바른 필터를 연결하고 데이터를 큐에 배치하기 전에 변환합니다.

sources:
  - name: azure_service_bus
    ansible.eda.azure_service_bus:
      conn_str: "{{connection_str}}"
      queue_name: "{{queue_name}}"
    filters:
      - json_filter:
          include_keys: ['clone_url']
          exclude_keys: ['*_url', '_links', 'base', 'sender', 'owner', 'user']
      - dashes_to_underscores:

이 예에서 데이터는 먼저 json_filter 를 통과한 다음 dashes_to_underscores 필터를 통해 전달됩니다. 이벤트 페이로드에서 키는 문자, 숫자, 밑줄만 포함할 수 있습니다. 마침표(.)는 중첩된 키에 액세스하는 데 사용됩니다.

모든 이벤트는 이벤트의 출처를 기록해야 하므로 eda.builtin.insert_meta_info소스 이름,유형, received_at 을 추가하기 위해 ansible-rulebook에 의해 자동으로 추가됩니다. received_at 는 UTC ISO8601 형식으로 날짜 시간을 저장하고 microseconds를 포함합니다. uuid 는 이벤트의 고유 ID를 저장합니다. 메타 키는 이벤트 및 이벤트에 대한 메타데이터를 저장하는 데 사용됩니다. aap-server에서 이벤트를 올바르게 보고하는 데 필요합니다.

12.1. 이벤트 필터 작성

이벤트 필터는 이벤트 데이터에서 변환을 수행하는 python 모듈의 함수입니다. 이벤트 데이터 구조에서 데이터를 제거, 추가, 변경 또는 이동할 수 있습니다. 이벤트 필터는 이벤트를 첫 번째 인수로 사용하고 추가 키워드 인수는 룰북의 구성에서 제공합니다.

기본 구조는 다음과 같습니다.

   # my_namespace.my_collection/extensions/eda/plugins/event_filter/my_filter.py
    def main(event: dict, arg1, arg2):
        # Process event data here
        return event

이 필터를 이벤트 소스의 필터 목록에 추가하여 룰북에서 사용할 수 있습니다.

  sources:
    - name: azure_service_bus
      ansible.eda.azure_service_bus:
        conn_str: "{{connection_str}}"
        queue_name: "{{queue_name}}"
      filters:
        - my_namespace.my_collection.my_filter:
            arg1: hello
            arg2: world

추가 리소스

권한을 부여하는 방법에 대한 자세한 예제는 ansible.eda 컬렉션의 이벤트 필터 플러그인을 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat, Inc.