Запустить приложение CGI на Python на Heroku
Я сделал простое приложение, которое использует скрипты CGI Python. У меня рабочая локальная версия (отлично работает с lighttpd), но теперь я хочу загрузить ее в Heroku. Приложение состоит из 2 или 3 сценариев, которые делают операции над файлом и выводят информацию обратно в браузер, поэтому я не думаю, что мне нужен какой-либо модуль, отличный от CGI.
Но документация Heroku объясняет, как загружать приложения Python с помощью фантазийных веб-фреймворков, и я не использую их.
Я хочу знать, можно ли запускать CGI-скрипты на Heroku, и если да, то как это сделать.
Ответы
Ответ 1
Heroku Cedar сосредоточен вокруг самостоятельных веб-приложений, поэтому вам нужно объединить ваше приложение и запустить его как одну команду.
Я думаю, что самым простым способом было бы переносить ваше приложение в Flask. Это не очень сложно, особенно если это всего лишь 2 или 3 скрипта.
Другой вариант (в зависимости от ваших требований к производительности) - использовать простой Python buildpack. Я думаю, вам нужно связать свои скрипты в каталоге. /cgi -bin и запустить сервер (в procfile) с помощью
web: bin/python -m CGIHTTPServer $PORT
Самый сложный способ - связать lighttpd и ваши скрипты вместе и написать оболочку script, чтобы начать все. Вам нужно будет убедиться, что ваши скомпилированные двоичные файлы совместимы с Heroku. Я бы посмотрел на PHP buildpack в качестве отправной точки.
Ответ 2
Я поинтересовался поддержкой Heroku о приложении cgi, которое я пытался обслуживать на платформе Heroku, и вот ответ:
Здравствуйте,
К сожалению, мы не поддерживаем приложения в стиле CGI, а только чистые Python. Возможно, вам немного повезло с модулем Python CGIHTTPServer, но если это не подходит вашим потребностям, вам может быть не повезло.