Я работаю над приложением для запуска в Google приложении. Как правило, мне придется активировать оплату / оплату, если я использую Google Cloud SQL. Поэтому для начала я решил удаленно подключиться к базе данных mysql на другом сервере. Он отлично работает в автономном режиме, но после развертывания моего приложения он не работает. Очевидно, что GAE не поддерживает удаленные подключения … Есть ли другой способ обойти это? туннелирование?
NB: Использование HTTP API для возврата информации из моей базы данных … потребует больше усилий по программированию.
В 1.8.8 мы дали возможность использовать удаленные сокеты из PHP.
Вам нужно убедиться, что ваше приложение имеет биллинг для удаленных сокетов. После этого вы сможете подключиться к удаленной базе данных MySQL из своего приложения-движка.
К сожалению, App Engine не поддерживает внешние вызовы:
Приложение App Engine не может:
пишите в файловую систему. Приложения PHP могут использовать Google Cloud Storage для хранения постоянных файлов. Чтение из файловой системы разрешено, и доступны все файлы приложений, загруженные с помощью приложения.
открыть сокет или напрямую обратиться к другому хосту. Приложение может использовать служебную программу URL-адреса URL-адреса App Engine для отправки HTTP и HTTPS-запросов другим хостам на портах 80 и 443 соответственно.
ответьте медленно. Веб-запрос к приложению должен обрабатываться в течение нескольких секунд. Процессы, которые требуют очень много времени для ответа, прекращаются, чтобы избежать перегрузки веб-сервера.
делать другие виды системных вызовов.
То, что сказал Стюарт Лэнгли, относится и к Python.
Вы должны иметь счет, чтобы использовать удаленные сокеты. Но из моего эксперимента MySQLdb, входящий в состав среды выполнения App Engine, кажется, не работает с внешней базой данных MySQL.
Вы можете использовать чистую библиотеку python mysql-connector-python, предоставляемую Oracle. Но будьте осторожны, латентность высока (если вы открываете новое соединение для каждого запроса, общая латентность может составлять 5 секунд плюс). Может быть, потому, что удаленный сокет не является собственной версией, а скорее прокси или сервисом под крючком.
У меня есть внешняя база данных MySQL, к которой я подключаюсь из Google App Engine. Я написал этот учебник. Надеюсь, это поможет вам и другим. Использование внешней базы данных с Google App Engine