IBM Cloud Docs
Ensamblaje y compilación de un conector personalizado

Ensamblaje y compilación de un conector personalizado

Puede empaquetar varios archivos de componentes juntos para crear un conector personalizado.

IBM Cloud Pak for Data IBM Software Hub

Esta información sólo se aplica a los despliegues instalados.

Componentes de un conector personalizado

Un paquete de conexión personalizado es un archivo comprimido que contiene los siguientes componentes:

Componentes de conector
Vía de acceso Descripción
config/template.xml Una plantilla de configuración
config/messages.properties Un archivo de propiedades para mensajes de la IU
lib/*.jar Los archivos JAR que necesita el conector personalizado, sin incluir el código de conector que escriba

Plantilla de configuración

La plantilla de configuración es un archivo XML que se divide en secciones. Cada sección contiene valores relacionados. Los fragmentos de código XML se toman del archivo template.xml de ejemplo, cuya ubicación se muestra en Visión general del archivo custom-crawler-docs.zip.

Valores de declaración

Los ajustes declarados se representan mediante el elemento " <declare /> ". El elemento tiene los atributos siguientes:

Declarar atributos de elemento
Nombre de atributo Descripción
type Tipo de datos; puede ser string, long, boolean, list de series o enum
name El nombre del valor
initial-value El valor inicial del valor
enum-value Una lista de valores de tipo " enum " separados por barras verticales ( | )
required Indica que el valor es obligatorio
hidden Indica si se debe ocultar el valor en la IU. Especifique el valor true para ocultar el valor.

En la versión actual, los atributos required y hidden no se aplican en la interfaz de usuario del producto Discovery.

Ejemplos de valores de declaración

Para declarar un tipo de e enum, utilice un código similar al siguiente fragmento:

<declare type="enum" name="type" enum-values="PROXY|BASIC|NTLM" initial-value="BASIC"/>

Para declarar un string oculto con un valor inicial, utilice un código similar al siguiente fragmento:

<declare type="string" name="custom_config_class" hidden="true" initial-value="com.example.ExampleCrawlerConfig" />

Para declarar un " long " (elemento de datos de la etiqueta), utilice un código similar al siguiente fragmento:

<declare type="long" name="port" required="required" initial-value="22"/>

Valores condicionales

Los ajustes condicionales están representados por el elemento " <condition /> ". Un valor condicional solo se visualiza si se satisface la condición. El elemento tiene los atributos siguientes:

Atributos del elemento Condición
Nombre de atributo Descripción
name El nombre del valor
enable Habilite el valor si el valor del atributo name es igual al valor del atributo enable
in Habilite el valor si el valor del atributo name se incluye en una lista especificada de valores

En el release actual, los valores condicionales no se aplican en la interfaz de usuario del producto Discovery.

Ejemplos de valores condicionales

Para habilitar una sección mediante una condición de " boolean ", utilice un código similar al siguiente fragmento:

<declare type="boolean" name="use_key" initial-value="true" />

<condition name="use_key" enabled="true">
  <declare type="string" name="key" hidden="false" />
</condition>

Para habilitar una sección mediante una condición de " enum ", utilice un código similar al siguiente fragmento:

<declare type="enum" name="type" enum-values="PROXY|BASIC|NTLM" initial-value="BASIC"/>

<condition name="type" in="BASIC|NTLM|PROXY">
</condition>

<condition name="type" in="PROXY">

Secciones de la plantilla

Cada sección incluye un elemento e <declare /> o para cada uno de sus ajustes.

Secciones de la plantilla
expresión XPath Descripción
/function/@name El nombre (tipo) del rastreador. No es un nombre de visualización para la interfaz de usuario. No pueden contener espacios.
/function/prototype/proto-section Una sección de la configuración.

Sección: general_settings

La expresión XPath es /function/prototype/proto-section[@section="general_settings"]. Incluye configuraciones comunes para todos los rastreadores, incluidas las siguientes:

<declare type="string" name="crawler_name" />
<declare type="string" name="description" />
<declare type="long" name="fetch_interval" initial-value="0" />
<declare type="long" name="number_of_max_threads" initial-value="10" />
<declare type="long" name="number_of_max_documents" initial-value="2000000000" />
<declare type="long" name="max_page_length" initial-value="32768" />

El rastreador personalizado se inicializa con los valores siguientes en la sección general_settings. Para obtener información acerca de las interfaces, consulte Desarrollo de código de conector personalizado.

Valores generales predeterminados de sección
Nombre Valor
custom_config_class El nombre de una clase que implementa la interfaz com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration
custom_crawler_class El nombre de una clase que implementa la interfaz com.ibm.es.ama.custom.crawler.CustomCrawler
custom_security_class El nombre de una clase que implementa la interfaz com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler
document_level_security_supported Especifica si la seguridad de nivel de documento está habilitada (true) o inhabilitada (false)

Para especificar las interfaces, utilice un código similar al siguiente fragmento:


  <declare type="string" name="custom_config_class" hidden="true" initial-value="com.ibm.es.ama.custom.crwler.sample.sftp.SftpCrawler" />

  <declare type="string" name="custom_crawler_class" hidden="true" initial-value="com.ibm.es.ama.custom.crwler.sample.sftp.SftpCrawler" />

  <declare type="string" name="custom_security_class" hidden="true" initial-value="com.ibm.es.ama.custom.crwler.sample.sftp.SftpCrawler" />

  <declare type="boolean" name="document_level_security_supported" initial-value="true" hidden="true"/>

Si ha creado un conector personalizado con un paquete SDK que se ha empaquetado con la versión 2.2.1 o anterior, document_level_security_supported debe estar inhabilitado (establecido en false). La seguridad a nivel de documento no está soportada en 2.2.1 y releases anteriores. Sin embargo, la opción Habilitar seguridad de nivel de documento se muestra en Discovery incluso cuando la seguridad de nivel de documento no está soportada. No seleccione esta opción cuando cree una colección nueva.

Para ocultar la opción Habilitar seguridad de nivel de documento de Discovery si el conector personalizado se ha creado con un paquete SDK que se ha empaquetado con la versión 2.2.1 o anterior, realice los pasos siguientes:

  1. Cambie el parámetro document_level_security_supported en el archivo config/template.xml para que se lea como se indica a continuación:

    <declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/>
    
  2. Vuelva a crear el paquete de conector y, a continuación, vuelva a cargarlo.

Sección: datasource_settings

La expresión XPath es /function/prototype/proto-section[@section="datasource_settings"]. Incluye valores específicos del origen de datos.


  <proto-section section="datasource_settings">

      <declare type="string" name="host" required="required" initial-value="localhost"/>
      <declare type="long" name="port" required="required" initial-value="22"/>
      <declare type="string" name="user" required="required" />

      <declare type="boolean" name="use_key" initial-value="true" />

      <condition name="use_key" enabled="true">
        <declare type="string" name="key" hidden="false" />
        <declare type="password" name="passphrase" hidden="false" />
      </condition>

      <condition name="use_key" enabled="false">
        <declare type="password" name="secret_key" hidden="false" />
      </condition>
  </proto-section>

Sección: crawlspace_settings

La expresión XPath es /function/prototype/proto-section[@section="crawlspace_settings"]. La sección contiene solo un elemento <declare /> para especificar la ruta. El valor de la vía de acceso lo proporciona el código del conector.


  <proto-section section="crawlspace_settings" cardinality="multiple">
    <declare type="string" name="path" hidden="true" />
  </proto-section>

Archivo de propiedades

Para ver un ejemplo de un archivo de propiedades, consulte el archivo messages.properties de ejemplo cuya ubicación se muestra en Visión general del archivo custom-crawler-docs.zip.

Archivos JAR

Los archivos JAR correspondientes a cualquier interfaz utilizada por el código de conector personalizado, incluido el archivo ama-zing-custom-crawler-{version_numbers}.jar cuya ubicación se muestra en Visión general del archivo custom-crawler-docs.zip. El archivo ama-zing-custom-crawler-{version_numbers}.jar incluye el paquete Java com.ibm.es.ama.custom.crawler que se describe en el apartado sobre Desarrollo de código de conector personalizado.

Compilación y empaquetado del conector personalizado

Después de escribir el código fuente y los archivos de configuración para el conector personalizado, debe compilarlo y empaquetarlo.

Requisitos previos

Para compilar un conector personalizado, necesita tener los siguientes elementos en su sistema local. Consulte Ejemplo de conector personalizado para obtener detalles.

  • Java SDK 1.8 o superior

  • Gradle

  • El archivo custom-crawler-docs.zip de una instancia de Discovery instalada

  • El paquete JSch

  • Los archivos siguientes para el conector personalizado de ejemplo:

    • Código fuente Java (SftpCrawler.java y SftpSecurityHandler.java)
    • Archivo de definición XML (template.xml)
    • Archivo de propiedades (messages.properties)

    No cambie los nombres ni las vías de acceso de los archivos de conector personalizados de ejemplo. Hacerlo puede provocar problemas, como fallos de construcción.

Compilación y empaquetado del código fuente

  1. Asegúrese de que se encuentra en el directorio de desarrollo del conector personalizado en su sistema local:

    cd {local_directory}
    
  2. Utilice Gradle para compilar su código fuente de Java y crear un archivo comprimido que incluya todos los componentes necesarios para el conector personalizado:

    gradle build packageCustomCrawler
    

Gradle crea un archivo en {local_directory}/build/distributions/{built_connector_zip_file}, donde el nombre del {built_connector_zip_file} se basa en el valor rootProject.name de settings.gradle. Por ejemplo, si la línea dice lo siguiente, Gradle genera un archivo que se llama {local_directory}/build/distributions/my-sftp-connector.zip.

rootProject.name = 'my-sftp-connector'

Paso siguiente

Continúe con Instalación y desinstalación de un conector personalizado para instalar el conector personalizado en la instancia de Discovery.