Слияние данных — Проблема с плагином http post

# #http #google-cloud-platform #google-cloud-data-fusion #cdap

Вопрос:

Я пытаюсь выполнить http — вызов с помощью DataFusion.

  1. Источник — файл GCS — csv
  2. Раковина — HTTP-СООБЩЕНИЕ

API ожидает файл как часть HTTP — запроса.

введите описание изображения здесь

введите описание изображения здесь

Когда это выполняется, я получаю следующую ошибку в журналах API.

Необходимая часть запроса «файл» отсутствует

Как этого можно достичь?

Комментарии:

1. Вы следовали какому-нибудь учебнику? Как вы включили этот плагин? Не могли бы вы предоставить все шаги, которые вы сделали, чтобы воспроизвести эту проблему? Вы получаете какие-либо ошибки? Вы используете интерфейс командной строки GCP?

2. Использование Слияния Данных. Развернутый плагин Http из хаба. [ссылка] cloud.google.com/data-fusion/plugins

3. И как вы им пользуетесь? Вы получаете какие-либо ошибки? Можете ли вы привести несколько примеров для воспроизведения?

4. Привет @arunaj. Есть какие-нибудь новости?

5. Вопрос был отредактирован для лучшего понимания.

Ответ №1:

Вы можете сделать это с помощью «HTTP-плагина», но вы получите только текстовый ответ внутри тела HTTP с содержимым файла.

В слиянии данных вы должны создать конвейер (вы уже сделали это, но можете попробовать более новую версию). введите описание изображения здесь

Конфигурация GCS:

Для конечной точки я создал виртуальную машину в Google Compute Engine.

Конфигурация HTTP-плагина:

Перед запуском sink вам следует установить какой-либо HTTP-сервис, например веб-сервер Tornado

 $ sudo apt install python
$ sudo apt install python-pip
$ pip install tornado
 

Создайте сценарий, как показано ниже, для наблюдения за http-запросами:

 #!/usr/bin/env python

import tornado.ioloop
import tornado.web
import pprint

class MyDumpHandler(tornado.web.RequestHandler):
    def post(self):
        pprint.pprint(self.request)
        pprint.pprint(self.request.body)

if __name__ == "__main__":
    tornado.web.Application([(r"/.*", MyDumpHandler),]).listen(8080)
    tornado.ioloop.IOLoop.instance().start()
 

и запустите этот сценарий, используя python echo.py или python3 echo.py в зависимости от того, что у вас будет на вашей виртуальной машине с веб-сервером.

Ниже Приведен Ответ:

CSV-файл содержит только 2 строки для целей тестирования: