밀어넣기 커넥터와 통합
외부 이벤트 소스에 연결하기 위해 밀어넣기 커넥터와 통합합니다. 밀어넣기 커넥터는 수집된 이벤트 메시지를 처리하고 필요한 이벤트 형식으로 변환합니다.
시작하기 전에
커넥터(sn_em_connector) 플러그인이 이벤트 관리 설치되어 있는지 확인합니다.
필요한 역할: evt_mgmt_admin
주:
인스턴스를 ServiceNow AI Platform 이전 버전에서 Paris 업그레이드하는 경우 레거시 수신기 변환 스크립트를 사용할 수 있습니다. 자세한 내용은 다음을 참조하십시오 레거시 수신기 변환 스크립트 사용 .
이 태스크 정보
외부 이벤트 소스를 수신하도록 커넥터를 구성합니다. 사용자 지정 밀어넣기 커넥터를 사용하여 또는 인스턴스를 통해 MID 서버 이벤트 메시지를 보냅니다.
주:
https:/<<INSTANCE>>/api/sn_em_connector/em/inbound_event?source=genericJson과 같은 일반 JSON 대상 URL을 사용하여 이벤트를 수집할 수 있습니다. 이 URL은 있는 그대로 사용할 수 있으며 이벤트 규칙을 구성해야 합니다.프로시저
- 다음으로 이동 모두 > 이벤트 관리 > 통합 > 밀어넣기 커넥터.
- 새로 만들기를 클릭하거나 수정하려는 밀어넣기 커넥터(예AWS: Azure 또는 Azure)를 클릭합니다.
-
양식에서 필드를 채웁니다.
필드 설명 이름 쉬운 식별을 위한 이 푸시 커넥터의 고유한 이름입니다. 설명 밀어넣기 커넥터 사용에 대한 설명을 입력합니다. 헤더 이름 Set-Header처럼 값을 원하는 헤더의 이름을 지정합니다. 헤더 값 Set-Header처럼 값을 원하는 헤더 이름의 값입니다. 유형 이벤트를 인스턴스 또는 MID로 보내려면 선택합니다. 각각의 경우 선택한 유형의 URL을 사용합니다. URL 매개변수 값 필드에 대한 설명을 참조하십시오. 활성 이 외부 이벤트 소스에서 이벤트 끌어오기를 활성화하려면 선택합니다. 순서 같은 유형의 이벤트에 대해 여러 규칙이 정의된 경우 이벤트 규칙을 평가하는 순서입니다. 이벤트 규칙은 오름차순으로 평가됩니다. URL 매개변수 값 - 인스턴스에 이벤트를 보냅니다.
모든 커넥터에 다음 형식의 URL을 사용하십시오.
https://<<INSTANCE>>/api/sn_em_connector/em/inbound_event?source={URL_parameter_value} - 를 통해 이벤트를 보냅니다.MID 서버
다음 형식의 URL을 사용하십시오.
http://{MID_Server_IP}:{MID_Web_Server_Port}/api/mid/em/inbound_event? 변환={Transform_script}주:에 MID 서버 이벤트를 보내려면 MID WebService 이벤트 수신기 확장을 미리 구성해야 합니다.
- 인스턴스에 이벤트를 보냅니다.
-
스크립트 섹션에서 다음을 수행합니다.
- 유형 필드에서 선택한 값이 MID이면 변환 스크립트 필드가 나타납니다. 이 필드에서 필수 외부 이벤트 소스가 생성하고 스크립트가 필수 이벤트 형식으로 구문 분석하는 이벤트 메시지를 승인하는 MID 스크립트 포함의 이름을 지정하거나 검색합니다. 스크립트에 다음 명명 규칙을 사용합니다.
TransformEvents_<소스> - 유형 필드에서 선택한 값이 인스턴스인 경우 스크립트 편집기가 나타납니다. 필수 외부 이벤트 소스가 생성하고 스크립트가 필수 이벤트 형식으로 구문 분석하는 이벤트 메시지를 승인하는 사용자 지정 스크립트를 스크립트 편집기에 입력합니다.
이 예 는 변환되어 이벤트 양식에 추가되는 필드를 보여줍니다.(function process(/*RESTAPIRequest*/ request, body) { /*Function that receives a JSON object, adding all its fields to the Additional information object. The field name is a concatenation of the field key and the parent field key if it exists.*/ function updateAdditionalInfo(event, field,jsonObject,additionalInfo) { for (var key in jsonObject) { var newKey = key; if (field != "") { newKey = field + '_' + key; } // You can do some transformation here and set fields on the event //if(key == "MySource") // event.source = jsonObject[key]; additionalInfo[newKey] = jsonObject[key]; } } try { gs.info("TransformEvents_generic received body:" + body); var jsonObject = JSON.parse(body); var event = new GlideRecord('em_event'); event.source = "GenericJson"; //TODO: Need to define event.event_class = "GenericJsonClass"; //TODO: Need to define event.severity = "5"; var additionalInfo = {}; updateAdditionalInfo(event, "",jsonObject,additionalInfo); /*Iterates over Additional information JSON object and adds all nested objects' fields as fields of the Additional information object*/ var notDone = true; while (notDone) { notDone = false; for (var key in additionalInfo) { if (Object.prototype.toString.call(additionalInfo[key]) == '[object Object]') { notDone = true; updateAdditionalInfo(event, key,additionalInfo[key],additionalInfo); additionalInfo[key] = ""; } } } gs.info("TransformEvents_generic generated additional information:" + JSON.stringify(additionalInfo)); event.additional_info = JSON.stringify(additionalInfo); event.insert(); } catch(er){ gs.error(er); status=500; return er; } return "success"; })(request, body); - 유형 필드에서 선택한 값이 MID이면 변환 스크립트 필드가 나타납니다. 이 필드에서 필수 외부 이벤트 소스가 생성하고 스크립트가 필수 이벤트 형식으로 구문 분석하는 이벤트 메시지를 승인하는 MID 스크립트 포함의 이름을 지정하거나 검색합니다. 스크립트에 다음 명명 규칙을 사용합니다.