Montagem e compilação de um conector personalizado
Você empacota vários arquivos de componentes juntos para criar um conector customizado.
IBM Cloud Pak for Data IBM Software Hub
Essas informações se aplicam apenas a implementações instaladas.
Componentes do conector customizado
Um pacote de conector personalizado é um arquivo compactado que contém os seguintes componentes:
| Caminho | Descrição |
|---|---|
config/template.xml |
Um modelo de configuração |
config/messages.properties |
Um arquivo de propriedades para mensagens da IU |
lib/*.jar |
Os arquivos JAR necessários para o conector customizado, não incluindo o código do conector que você grava |
Modelo de configuração
O modelo de configuração é um arquivo XML dividido em seções. Cada seção contém configurações relacionadas. Os fragmentos XML são obtidos do arquivo de exemplo template.xml cujo local está listado em Entendendo o arquivo custom-crawler-docs.zip.
Configurações de declaração
As configurações declaradas são representadas pelo elemento <declare />. O elemento tem os atributos a seguir:
| Nome do atributo | Descrição |
|---|---|
type |
Tipo de dados; um de string, long, boolean, list de sequências ou enum |
name |
O nome da configuração |
initial-value |
O valor inicial da configuração |
enum-value |
Uma lista de valores de enum separados por barras verticais ( | ) |
required |
Indica que a configuração é necessária |
hidden |
Indica se a configuração deve ficar oculta na IU. Especifique um valor de true para ocultar a configuração. |
Na versão atual, os atributos required e hidden não são aplicados na interface de usuário do produto Discovery.
Exemplos de configuração de declaração
Para declarar um tipo enum, use um código semelhante ao trecho a seguir:
<declare type="enum" name="type" enum-values="PROXY|BASIC|NTLM" initial-value="BASIC"/>
Para declarar um string oculto com um valor inicial, use um código semelhante ao trecho a seguir:
<declare type="string" name="custom_config_class" hidden="true" initial-value="com.example.ExampleCrawlerConfig" />
Para declarar um long obrigatório, use um código semelhante ao trecho a seguir:
<declare type="long" name="port" required="required" initial-value="22"/>
Configurações condicionais
As configurações condicionais são representadas pelo elemento <condition />. Uma configuração condicional será exibida somente se a condição for atendida. O elemento tem os atributos a seguir:
| Nome do atributo | Descrição |
|---|---|
name |
O nome da configuração |
enable |
Ative a configuração se o valor do atributo name for igual ao valor do atributo enable |
in |
Ative a configuração se o valor do atributo name estiver incluso em uma lista especificada de valores |
Na liberação atual, as configurações condicionais não são aplicadas na interface do usuário do produto Discovery.
Exemplos de configuração condicional
Para ativar uma seção usando uma condição boolean, use um código semelhante ao trecho a seguir:
<declare type="boolean" name="use_key" initial-value="true" />
<condition name="use_key" enabled="true">
<declare type="string" name="key" hidden="false" />
</condition>
Para ativar uma seção usando uma condição enum, use um código semelhante ao trecho a seguir:
<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">
Seções de modelo
Cada seção inclui um elemento <declare /> para cada uma de suas configurações.
| expressão XPath | Descrição |
|---|---|
/function/@name |
O nome (tipo) do crawler. Não é um nome de exibição para a IU. Não é possível conter espaços. |
/function/prototype/proto-section |
Uma seção da configuração. |
Seção: general_settings
A expressão XPath é /function/prototype/proto-section[@section="general_settings"].. Ele inclui configurações comuns para todos os rastreadores, incluindo as seguintes configurações:
<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" />
O crawler customizado é inicializado com as configurações a seguir na seção general_settings. Para obter informações sobre as interfaces, consulte Desenvolvendo o código do conector customizado.
| Nome | Valor |
|---|---|
custom_config_class |
O nome de uma classe que implementa a interface com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration |
custom_crawler_class |
O nome de uma classe que implementa a interface com.ibm.es.ama.custom.crawler.CustomCrawler |
custom_security_class |
O nome de uma classe que implementa a interface com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler |
document_level_security_supported |
Especifica se a segurança de nível de documento está ativada (true) ou desativada (false) |
Para especificar as interfaces, use um código semelhante ao trecho a seguir:
<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"/>
Se você construiu um conector personalizado com um pacote SDK que foi empacotado com a versão 2.2.1 ou anterior, document_level_security_supported deve ser desativado (configurado como false). A segurança de nível
de documentos não é suportada em 2.2.1 e releases anteriores. No entanto, a opção Ativar Segurança de Nível de Documento é exibida em Discovery mesmo quando a segurança de nível de documento não é suportada. Não selecione
esta opção quando você criar uma nova coleção.
Para ocultar a opção Ativar Segurança de Nível de Documento a partir de Discovery se o conector personalizado foi construído com um pacote SDK que foi empacotado com a versão 2.2.1 ou anterior, complete as seguintes etapas:
-
Altere o parâmetro
document_level_security_supportedno arquivoconfig/template.xmlpara ler da seguinte forma:<declare type="boolean" name="document_level_security_supported" hidden="true" initial-value="false"/> -
Reconstrua o pacote do conector e, em seguida, faça o upload novamente.
Seção: datasource_settings
A expressão XPath é /function/prototype/proto-section[@section="datasource_settings"].. Ela inclui configurações específicas para a origem de dados.
<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>
Seção: crawlspace_settings
A expressão XPath é /function/prototype/proto-section[@section="crawlspace_settings"].. A seção contém apenas um elemento <declare /> para especificar o caminho. O valor do caminho é fornecido pelo
código do conector.
<proto-section section="crawlspace_settings" cardinality="multiple">
<declare type="string" name="path" hidden="true" />
</proto-section>
Propriedades do arquivo
Para obter um exemplo de um arquivo de propriedades, consulte o arquivo de exemplo messages.properties cujo local está listado em Entendendo o arquivo custom-crawler-docs.zip.
Arquivos JAR
Os arquivos JAR para quaisquer interfaces usadas pelo seu código de conector customizado, incluindo o arquivo ama-zing-custom-crawler-{version_numbers}.jar, cujo local está listado em Entendendo o arquivo custom-crawler-docs.zip.
O arquivo ama-zing-custom-crawler-{version_numbers}.jar inclui o pacote Java com.ibm.es.ama.custom.crawler, que é descrito em Desenvolvendo código do conector customizado.
Compilando e empacotando o conector customizado
Depois de gravar o código-fonte e os arquivos de configuração para o seu conector customizado, é necessário compilá-lo e empacotá-lo.
Pré-requisitos
Para compilar um conector personalizado, você precisa ter os seguintes itens em seu sistema local. Consulte Exemplo de conector customizado para obter detalhes.
-
Java SDK 1.8 ou superior
-
O arquivo
custom-crawler-docs.zipde uma instância do Discovery instalada -
O pacote JSch
-
Os arquivos a seguir para o conector customizado de exemplo:
- Código-fonte Java (
SftpCrawler.javaeSftpSecurityHandler.java) - Arquivo de definição XML (
template.xml) - Arquivo de propriedades (
messages.properties)
Não altere os nomes ou caminhos dos arquivos de conector personalizado de exemplo. Fazer isso pode resultar em problemas, inclusive falhas de compilação.
- Código-fonte Java (
Compilando e empacotando o código-fonte
-
Verifique se você está no diretório de desenvolvimento do conector personalizado em seu sistema local:
cd {local_directory} -
Use Gradle para compilar seu código-fonte Java e criar um arquivo compactado que inclua todos os componentes necessários para o conector personalizado:
gradle build packageCustomCrawler
Gradle cria um arquivo em {local_directory}/build/distributions/{built_connector_zip_file}, onde o nome do {built_connector_zip_file} é baseado no valor rootProject.name de settings.gradle.
Por exemplo, se a linha for a seguinte, Gradle gera um arquivo chamado {local_directory}/build/distributions/my-sftp-connector.zip.
rootProject.name = 'my-sftp-connector'
Próxima Etapa
Continue com Instalando e desinstalando um conector customizado para instalar o conector customizado em sua instância do Discovery.