Создание MinIO Bucket в NiFi - с использованием процессора ExecuteScript и (J) python - PullRequest
0 голосов
/ 12 февраля 2020

Процессор с 5 S3, присутствующий в NiFi, не может создать Minio Bucket.

  • ListS3
  • PutS3Object
  • DeleteS3Object
  • FetchS3Object
  • TagS3Object

Поэтому я попытался использовать процессор ExecuteScript и импортировать модуль python minio внутри него

Для этого Я установил pip3 на своем компьютере CentOS и сделал pip3 install minio (он установил его в /usr/local/lib/python3.6/site-packages/).

Затем в моем ExecuteProcessor я установил следующую конфигурацию:

Script Engine : python
Файл сценария : значение не задано
Тело сценария :

from minio import Minio
from minio.error import (ResponseError, BucketAlreadyOwnedByYou,
                         BucketAlreadyExists)

minioClient = Minio('minio',
                  access_key='XXXX',
                  secret_key='XXXX')

Каталог модулей : /usr/local/lib/python3.6/site-packages/

Но я продолжаю получать эту ошибку

Нет встроенных модулей с именем встроенных в строке номер 1

Полная ошибка:

ExecuteScript [id = 3a3e689a-0170-1000-fa4d-b0874062b8cc] ExecuteScript [id = 3a3e689a-0170-1000-fa4d-b0874062b8cc] не удалось обработать из-за javax.script.ScriptException: ImportError: нет встроенных модулей с именем в строке номер 1; откат сеанса: org. apache .nifi.processor.exception.ProcessException: javax.script.ScriptException: ImportError: нет встроенных модулей с именами в строке 1

Гипотеза 1 :

Из того, что я понимаю, NiFi использует Jython, а затем не может использовать C связанный Python модуль, я не смог найти подтверждение, что minio-py был одним из них, но, похоже, самая важная причина.

я что-то упускаю?

...