# #http #google-cloud-platform #google-cloud-data-fusion #cdap
Вопрос:
Я пытаюсь выполнить http — вызов с помощью DataFusion.
- Источник — файл GCS — csv
- Раковина — HTTP-СООБЩЕНИЕ
API ожидает файл как часть HTTP — запроса.
Когда это выполняется, я получаю следующую ошибку в журналах API.
Необходимая часть запроса «файл» отсутствует
Как этого можно достичь?
Комментарии:
1. Вы следовали какому-нибудь учебнику? Как вы включили этот плагин? Не могли бы вы предоставить все шаги, которые вы сделали, чтобы воспроизвести эту проблему? Вы получаете какие-либо ошибки? Вы используете интерфейс командной строки GCP?
2. Использование Слияния Данных. Развернутый плагин Http из хаба. [ссылка] cloud.google.com/data-fusion/plugins
3. И как вы им пользуетесь? Вы получаете какие-либо ошибки? Можете ли вы привести несколько примеров для воспроизведения?
4. Привет @arunaj. Есть какие-нибудь новости?
5. Вопрос был отредактирован для лучшего понимания.
Ответ №1:
Вы можете сделать это с помощью «HTTP-плагина», но вы получите только текстовый ответ внутри тела HTTP с содержимым файла.
В слиянии данных вы должны создать конвейер (вы уже сделали это, но можете попробовать более новую версию).
Для конечной точки я создал виртуальную машину в Google Compute Engine.
Перед запуском 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
в зависимости от того, что у вас будет на вашей виртуальной машине с веб-сервером.