Integrar com conectores push

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 3 min. de leitura
  • Integre com um conector push para se conectar a uma origem de evento externo. Os conectores push processam as mensagens de evento coletadas e as transformam no formato de evento necessário.

    Antes de Iniciar

    Certifique-se de que o plug-in Gestão de eventos Connectors (sn_em_connector) esteja instalado.

    Função necessária: evt_mgmt_admin

    Nota:
    Se você estiver atualizando uma instância [ Now Platform de Paris ou anterior, poderá usar scripts de transformação de ouvinte legado. Consulte Usar scripts de transformação de ouvinte legado para obter mais informações.

    Por Que e Quando Desempenhar Esta Tarefa

    Os conectores push aceitam mensagens de evento que são geradas por origens de evento externas.

    Configure um conector para ouvir uma origem de evento externo. Usando um conector de push personalizado, envie as mensagens de evento por meio de MID Server ou da instância.

    Nota:
    Você pode usar este URL de destino JSON genérico para coletar eventos:https:/<<INSTANCE> >/api/sn_em_connector/em/inbound_event?source=genericJson . Este URL pode ser usado como está e requer que uma regra de evento seja configurada.

    Procedimento

    1. Navegar até Todos > Gestão de eventos > Integrações > Conectores de push.
    2. Clique em Novo ou clique no conector push que você deseja modificar, por exemplo, AWS ou Azure.
    3. No formulário, preencha os campos.
      Campo Descrição
      Nome Unome exclusivo deste conector push para facilitar a identificação.
      Descrição Insira uma descrição para o uso do conector push.
      Nome do cabeçalho Especifique o nome do cabeçalho para o qual você deseja o valor; por exemplo, Definir-Cabeçalho.
      Valor de cabeçalho O valor do nome do cabeçalho para o qual você deseja o valor; por exemplo, Definir-Cabeçalho.
      Tipo Selecione para enviar eventos de Instância ou MID. Em cada caso, use o URL do tipo selecionado. Consulte a descrição do campo de valor de parâmetro de URL.
      Ativo Selecione esta opção para ativar a extração de eventos desta origem de evento externo.
      Ordem Ordem na qual uma regra de evento é avaliada quando várias regras são definidas para o mesmo tipo de evento. As regras de evento são avaliadas em ordem crescente.
      Valor de parâmetro de URL
      • Envie eventos para a instância.

        Use a URL neste formato para todos os conectores: https://<<INSTANCE> >/api/sn_em_connector/em/inbound_event?source={URL_parameter_value}

      • Envie eventos por meio de MID Server.

        Use a URL no formato:http://{MID_Server_IP}:{MID_Web_Server_Port}/api/mid/em/inbound_event?Transform={Transform_script}

        Nota:
        O envio de eventos para o MID Server requer a configuração anterior da extensão do Ouvinte de eventos do MID WebService.
    4. Na seção Script:
      • Se o valor selecionado para o campo Tipo for MID, o campo Script de transformação será exibido. Neste campo, especifique ou pesquise o nome da inclusão de script do MID que aceita mensagens de evento geradas pela origem de evento externo necessária e que o script analisa no formato de evento necessário. Use esta convenção de nomenclatura para o script: TransformEvents_<your source>
      • Se o valor selecionado para o campo Tipo for Instância, o Editor de script será exibido. No Editor de script, insira o script personalizado que aceita mensagens de evento geradas pela origem de evento externo necessária e que o script analisa no formato de evento necessário.
      Este exemplo mostra os campos que foram transformados, sendo adicionados a um formulário de evento.
      (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);