На текущий момент, Google App Engine позволяет писать приложения только на языке Python версии 2.5. В целях безопасности, некоторые модули языка Python, написанные на C, были в системе отключены. Так как Google App Engine не поддерживает запись файлов на диск, то некоторые библиотеки, которые требуют для работы эту функциональность, могут частично некорректно работать. В нашей документации для разработчиков содержится полный обзор возможностей среды выполнения Python. Описание библиотек языка Python, которые были частично или полностью отключены, может быть найдено здесь.
В дополнении стоит отметить, что шаблоны вашего сайта могут включать код скриптов Javascript вместе с данными разметки HTML. Среди прочего это позволяет разрабатывать веб-сервисы и создавать гибкие интерфейсы пользователей при помощи технологии Ajax.
Платформа Google App Engine позволяет загружать большинство из существующих фреймворков на сервер вместе с вашим приложением. Для их работы в системе может потребоваться сделать некоторые изменения. Для удобства разработчиков, фреймворк Django версии 0.96.1 уже включен в состав Google App Engine SDK.
Конечно! Даже если вы не зарегистрировались на сайте Google App Engine, то можете загрузить среду разработки SDK и начать работу с системой.
В течение периода предварительного тестирования каждый разработчик может создать до 10 приложений, используя свой административный аккаунт в Google App Engine. На текущий момент пока не существует возможности удалить приложение, после того, как оно было зарегистрировано в системе.
Для того, чтобы отключить существующее приложение, сначала необходимо удалить описание всех его обработчиков из файла app.yaml. Затем необходимо поместить в файл app.yaml ссылку на обработчик, который будет указывать на несуществующий файл. После чего, используя программу appcfg.py, опубликуйте новую версию файла app.yaml. После того, как он будет загружен на сервер, ваше приложение будет заблокировано.
Пожалуйста обратитесь к разделу Условия использования сервиса для получения ответов по порядку использования платформы Google App Engine.
Панель управления Административной консоли имеет шесть графиков, которые визуально отражают процент использования приложением системных ресурсов. Информация, отображаемая на них, является состоянием ресурсов системы за последние 6 часов. Список графиков, которые доступны в Административной консоли:
Раздел Popular URIs Административной консоли отображает список наиболее часто используемых адресов страниц (URI) вашего приложения за последние 24 часа. Так как каждое приложение и так запущено в отдельном доменном имени, эта информация не включается в URI. Список с колонкой слева отображает наиболее популярные запросы к вашему приложению в формате URI. Соответствующий список в колонке справа выводит количество обращений по каждому из таких URI.
Если в процессе загрузки URI возникает ошибка, система создаст о ней соответствующую запись. Затем мы сможем просмотреть через Административную консоль адреса тех URI, по которым больше всего было зафиксировано ошибок за последние 24 часа. В дополнении к показу общего количества ошибок, будет отображена информация об их проценте от общего количества ошибочных запросов.
В тех приложения, в которые не был включен файл favicon.ico, могут отображаться ошибки, сообщающие о том, что URI вида /favicon.ico содержит наибольшее число ошибок. Favicon.ico является файлом, который запрашивается браузером каждого пользователя при попытке загрузки страницы сайта. Favicon.ico - это иконка вашего сайта и она обычно отображается в адресной строке браузера, слева от нее следует адрес сайта.
Для вашего приложения файл favicon.ico должен быть статическим изображением. Вы можете загрузить файл favicon.ico на сервер вместе с кодом приложения и внести изменения в конфигурационный файл app.yaml, для указания платформе обработчика запроса адреса /favicon.ico. Ниже приведен пример этой настройки в файле app.yaml для адреса /favicon.ico. Мы предполагаем, что файл favicon.ico находится в каталоге static/images:
- url: /favicon.ico static_files: static/images/favicon.ico upload: static/images/favicon.ico
GQL это язык запросов данных, который используется для работы с хранилищем платформы Google App Engine. Он использует похожий на SQL синтаксис запросов, позволяющий делать выборки данных с указанием фильтров условий, порядка сортировки и ограничений по числу выдаваемых запросов. Полное описание языка GQL находится здесь.
Если вы выполняете запрос, который имеет фильтр по нескольким свойствам объекта или осуществляет сортировку результатов в убывающем порядке, то для такого запроса необходимо определение индекса. Вы должны определить индекс для каждого подобного запроса, который может был выполнен приложением. Индекс используется хранилищем для работы с запросами и содержит в себе обновляемую таблицу с ключами объектов и их данными, расположенными таким образом, чтобы ускорить операции выборок из хранилища. Полное описание алгоритма работы индексов находится в нашей документации.
При разработке приложения в среде разработки на локальной машине для каждого запроса при необходимости автоматически будет создан свой индекс. Таким образом, если вы тщательно тестируете приложение до того, как опубликуете его на сервере, все необходимые индексы уже будут определены в конфигурационном файле index.yaml. Однако, вы можете вручную добавить определение новых индексов в файл index.yaml, если появится запрос, выполнение которого невозможно в тестовых условиях. Наша документация включает в себя информацию о том, как можно определять индексы для своего приложения.
Использование интерфейса Users API позволит вам авторизовывать пользователей с помощью аккаунтов Google или пользовательских аккаунтов домена, обслуживаемого Службами Google. Эти две различные формы авторизации не могут быть совместно использованы в одном приложении. Пожалуйста, ознакомьтесь со статьей как настроить приложение для авторизации пользователей домена Служб Google.
При использовании Users API, когда приложение предлагает пользователю войти в систему, он будет направлен на страницу авторизации Google, где введет свое имя и пароль. Затем пользователь будет перенаправлен обратно к вашему приложению, которое получит доступ к учетной записи посетителя с помощью объекта User.
Небольшой процент модулей языка Python, написанных на языке C, недоступен под Google App Engine. Полный список поддерживаемых модулей находится здесь. Отключенные модули можно разделить на следующие категории:
Пожалуйста, обратите внимание, что все сторонние библиотеки, которые используют для своей работы подобные возможности не будут работать в платформе Google App Engine (например, пакеты mysql, postgresql и прочие).
Приложение может быть заблокировано, если оно нарушает наши Условия использования сервиса. В дополнении, если в течение периода предварительного тестирования платформы, приложение будет потреблять чрезмерные системные ресурсы из-за ошибки и неэффективных алгоритмов, используемых разработчиком, мы оставляем за собой право заблокировать его до тех пор, пока разработчик не исправит эти ошибки. После этого работа приложения на платформе Google App Engine может быть снова возобновлена.
Пока проходит период предварительного тестирования платформы, мы имеем ограниченные системные ресурсы и размер полосы пропускания. Вы можете прочитать о системных квотах здесь. Текущее ограничение установлено на уровне среднего приложения и позволяет обрабатывать приблизительно 5 миллионов запросов ежемесячно. Чтобы предотвратить мгновенный расход приложением своих квот, мы распределяем эти ограничения в течение месяца.
По этой системе, если приложение потребляет большое количество ресурсов за короткий период времени, вам необходимо будет выполнять обслуживание пользователей более быстрыми темпами. Если ваше приложение регулярно достигает ограничения потребления системных ресурсов, то вы можете отправить запрос на увеличение квоты. Пожалуйста, примите к сведению, что мы не гарантируем, что квота для вашего приложения будет увеличена, так как такие решения принимаются индивидуально.
Для того, чтобы сообщить о нарушении Условий использования Google App Engine, пожалуйста, свяжитесь с нами. Мы определим, правда ли приложение нарушает условия и, при необходимости, свяжемся с его разработчиком для решения этих вопросов.
Программа dev_appserver разработана для проведения локального тестирования приложений и не принимает никакие внешние подключения по умолчанию. Вы можете изменить это поведение путем передачи параметра -a <hostname> при запуске сервера, однако использовать на постоянной основе этот метод не рекомендуется, так как среда разработки не была протестирована на обеспечение должной безопасности и может содержать уязвимости.