Nifi Create Controller через Rest-API - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь создать службу DbcpController из nifi rest api. Я также получаю правильный ответ, но когда я захожу в пользовательский интерфейс, служба контроллера не отображается.

curl -i -X POST -H 'Content-Type:application/json' 
-d '{"revision":{"clientId":"a09f2359-0165-1000-bf28-1dca98f6e259","version":0},
"permissions":{"canRead":true,"canWrite":true},"bulletins":[],
"component":{"name":"Dynamic-Pool","type":"org.apache.nifi.dbcp.DBCPConnectionPool",
"bundle":{"group":"org.apache.nifi","artifact":"nifi-dbcp-service-nar","version":"1.6.0"},
"controllerServiceApis":[{"type":"org.apache.nifi.dbcp.DBCPService",
"bundle":{"group":"org.apache.nifi","artifact":"nifi-standard-services-api-nar","version":"1.6.0"}}],
"comments":"","state":"DISABLED","persistsState":false,"restricted":false,"deprecated":false,
"multipleVersionsAvailable":true,"properties":{"Database Connection URL":"jdbc:oracle:thin:@144.21.86.182:1521/ORCL.607022672.oraclecloud.internal",
"Database Driver Class Name":"oracle.jdbc.driver.OracleDriver",
"database-driver-locations":"/home/siddharth/Downloads/ojdbc7.jar","Database User":"test","Password":"***",
"Max Wait Time":"500 millis","Max Total Connections":"8","Validation-query":null},"descriptors":{ } } }' 
http://localhost:9090/nifi-api/controller/controller-services/

Ответ:

HTTP/1.1 201 Created
Date: Mon, 03 Sep 2018 18:19:28 GMT
X-Frame-Options: SAMEORIGIN
Location: http://localhost:9090/nifi-api/controller-services/a0a93568-0165-1000-0c3b-ff9494571881
Content-Type: application/json
Vary: Accept-Encoding
Vary: User-Agent
Content-Length: 3614
Server: Jetty(9.4.3.v20170317)

Если я нажму на местоположение, появится информация.

Есть ли какой-либо параметр в запросе, который мне не хватает.

1 Ответ

0 голосов
/ 03 сентября 2018

Я не уверен, что означает "Когда я иду в пользовательский интерфейс, служба контроллера не видна".

  1. Когда вы заходите в интерфейс Apache NiFi UI и нажимаете Глобальное меню > Настройки контроллера> Службы контроллера , вы не видите никаких служб контроллера в списке - Возможно обновление твой браузер и очистить кеш? Я не думаю, что это ваша проблема
  2. Служба контроллера указана в списке, но она недоступна для использования в процессоре - это происходит потому, что CS добавляется на глобальный уровень, что означает, что он доступен для ссылок на задачи отчетов, но не для процессоров на холсте. Вам нужно будет указать parentGroupId в ControllerServiceDTO объекте в JSON, чтобы CS был доступен для компонента на холсте (в этой родительской группе). Ваш URL будет выглядеть так: /nifi-api/process-groups/a0f3dfb7-0165-1000-8310-4fb72628adaa/controller-services. Я думаю, что это ваша проблема
  3. Служба контроллера доступна для использования в процессоре, но она не включена - это потому, что вы устанавливаете состояние CS на DISABLED. Вы можете выполнить дополнительную команду, которая включает CS, или установить состояние на ENABLED первоначально

Если щелкнуть правой кнопкой мыши на холсте и выбрать Настроить , вы получите диалоговое окно для группы процессов, в которой вы находитесь (по умолчанию называется «Поток NiFi» в root * 1031). * уровень), и есть вкладка для «Службы контроллера», которая будет перечислять CS, который вы создали.

The process group configuration dialog on the Controller Services tab

Вы всегда можете выполнять эти операции в пользовательском интерфейсе и использовать панель инструментов разработчика вашего браузера для мониторинга запросов - пользовательский интерфейс NiFi является потребителем REST API, поэтому любое действие, выполняемое там, может быть выполнено с использованием только API.

Примеры:

Добавление службы контроллера задач отчетов

curl 'http://localhost:8080/nifi-api/controller/controller-services' -H 'Origin: http://localhost:8080' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' -H 'Content-Type: application/json' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: http://localhost:8080/nifi/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'DNT: 1' --data-binary '{"revision":{"clientId":"a0f490b8-0165-1000-a521-4d24892f12c0","version":0},"disconnectedNodeAcknowledged":false,"component":{"type":"org.apache.nifi.processors.aws.credentials.provider.service.AWSCredentialsProviderControllerService","bundle":{"group":"org.apache.nifi","artifact":"nifi-aws-nar","version":"1.8.0-SNAPSHOT"}}}' --compressed

Включение службы контроллера задач отчетов

curl 'http://localhost:8080/nifi-api/controller-services/a0f4dbe2-0165-1000-8cd2-dd50d7dba48d' -X PUT -H 'Origin: http://localhost:8080' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' -H 'Content-Type: application/json' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: http://localhost:8080/nifi/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'DNT: 1' --data-binary '{"revision":{"clientId":"a0f490b8-0165-1000-a521-4d24892f12c0","version":1},"disconnectedNodeAcknowledged":false,"component":{"id":"a0f4dbe2-0165-1000-8cd2-dd50d7dba48d","state":"ENABLED"}}' --compressed

Добавление службы контроллера, доступной для компонента на холсте

curl 'http://localhost:8080/nifi-api/process-groups/a0f3dfb7-0165-1000-8310-4fb72628adaa/controller-services' -H 'Origin: http://localhost:8080' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' -H 'Content-Type: application/json' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: http://localhost:8080/nifi/?processGroupId=root&componentIds=a0f7e36a-0165-1000-ef42-c59f18644d42' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'DNT: 1' --data-binary '{"revision":{"clientId":"a0f490b8-0165-1000-a521-4d24892f12c0","version":0},"disconnectedNodeAcknowledged":false,"component":{"type":"org.apache.nifi.ssl.StandardRestrictedSSLContextService","bundle":{"group":"org.apache.nifi","artifact":"nifi-ssl-context-service-nar","version":"1.8.0-SNAPSHOT"},"name":"StandardRestrictedSSLContextService"}}' --compressed
...