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:
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:
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:
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.
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.
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:
-
Cambie el parámetro
document_level_security_supported
en el archivoconfig/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"/>
-
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
-
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
ySftpSecurityHandler.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.
- Código fuente Java (
Compilación y empaquetado del código fuente
-
Asegúrese de que se encuentra en el directorio de desarrollo del conector personalizado en su sistema local:
cd {local_directory}
-
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.