Невозможно загрузить файл плагина datafusion json с использованием CDAP RESTAPI - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь загрузить свой пользовательский плагин в datafusion, используя ссылку CDAP RESTAPI. Я следовал инструкциям, описанным в документации, но так и не нашел способа добавить файл плагина JSON с помощью REST API.

curl -X POST -H "Авторизация: Bearer $ (gcloud auth print- маркер доступа) "" $ {CDAP_ENDPOINT} / api / v3 / namespaces / vega_demo / artifacts / example "-H" Артефакт-Расширения: system: cdap-data-pipe [6.0.0,10.0.0-SNAPSHOT) / system : cdap-data-streams [6.0.0,10.0.0-SNAPSHOT) "--data-binary @ / path / to / example-1.0.0-SNAPSHOT.jar @ / path / to / example-1.0.0- SNAPSHOT. json

Артефакт успешно добавленcurl: (6) Не удалось разрешить хост:

Плагин загружен, но файл конфигурации json не загружен, что вызывает ошибки в плагине

1 Ответ

0 голосов
/ 14 марта 2020

В соответствии с используемой командой я предлагаю проверить, правильно ли вы устанавливаете конечную точку.

export INSTANCE_ID=your-instance-id
export CDAP_ENDPOINT=$(gcloud beta data-fusion instances describe \
--location=us-central1 \
--format="value(apiEndpoint)" \
${INSTANCE_ID})

Согласно официальной документации CDAP , кажется, что конечная точка не должна включать part api до v3 .

Кроме того, если ваш экземпляр принадлежит Basi c edition , пространство имен будет default ; в противном случае при использовании Enterpise edition вы можете создать пространство имен.

При использовании метода curl кажется, что вам необходимо добавить информацию о конфигурации в заголовках , поскольку этот метод не включает json load

С другой стороны, если у вас возникли проблемы с использованием curl, я бы предложил использовать пользовательский интерфейс.

Используя этот пример для загрузки плагин mysql -connector- java -5.1.35.jar для объединения данных с curl, файл конфигурации должен выглядеть следующим образом:

{
  "parents": [ "system:cdap-data-pipeline[6.1.1,6.1.1]", "system:cdap-data-streams[6.1.1,6.1.1]" ],
  "plugins": [
    {
      "name": "mysql",
      "type": "jdbc",
      "className": "com.mysql.jdbc.Driver"
    }
  ]
}

, поскольку с помощью curl можно только загрузите файл jar , чтобы включить информацию из файла конфигурации, используйте заголовки HTTP, чтобы включить эту информацию следующим образом:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"${CDAP_ENDPOINT}/v3/namespaces/default/artifacts/example" \
-H 'Artifact-Plugins: [ { "name": "mysql", "type": "jdbc", "className": "com.mysql.jdbc.Driver" } ]' \
-H "Artifact-Version: 5.1.35" \
-H "Artifact-Extends: system:cdap-data-pipeline[6.1.1, 6.1.1]/system:cdap-data-streams[6.1.1, 6.1.1]" \
--data-binary @mysql-connector-java-5.1.35.jar
...