2017-01-12 6 views
0

App Экземпляры:Google App Engine - Это приложение не имеет развернутые экземпляры

enter image description here

App Версии:

App Versions Screenshot

app.yaml:

runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url: /my_uri 
    script: path.to.my.script.script.app 

я создал приложение Python Flask с Google App Engine. Сначала я столкнулся с некоторыми проблемами, поэтому я снова развернул приложение. Это создало новую версию. После этого я удалил ранее существующую версию, в которой был развернут один экземпляр. В развернутой версии не развернуты экземпляры, как вы можете видеть на изображении по ссылке выше.

Когда я отправить запрос на my-app-ID.appspot.com/my_uri, я получаю сообщение об ошибке 404:

Error: Not Found

The requested URL /my_uri was not found on this server.

Я считаю, что это связано с моим приложением, не имея экземпляра развернутого. Это верно? Если да, то как мне это исправить?

Если нет, что может быть причиной проблемы 404?

Спасибо всем!

+0

Что вы скажете в своем приложении? https://console.cloud.google.com/logs/viewer –

+0

Есть много - что конкретно я должен искать? Несколько конкретных элементов включают в себя: «Обработчики не соответствуют этому URL.», «instanceIndex: -1» – madrhatter

+0

Журналы для запросов, которые вы ожидаете от 'gcloud app browse'. Также - как выглядит страница версий вашего приложения? https://console.cloud.google.com/appengine/versions. И как выглядит 'app.yaml'? –

ответ

2

Как указано в сообщении об ошибке gcloud app browse делает запрос на адрес / вашего приложения.

От Request handlers:

When App Engine receives a web request for your application, it calls the handler script that corresponds to the URL, as described in the application's [app.yaml][2] configuration file . The Python 2.7 runtime supports the WSGI standard and the CGI standard for backwards compatibility. WSGI is preferred, and some features of Python 2.7 do not work without it. The configuration of your application's script handlers determines whether a request is handled using WSGI or CGI.

Но ваш файл app.yaml не содержит обработчик с шаблоном соответствия URL-адрес (как / не соответствует /my_uri), так GAE не знает, какие приложения скрипт для запуска для этот запрос, поэтому он вернется 404.

Итак, первое, что вам нужно сделать, это добавить в app.yaml обработчик с шаблоном url, который соответствует запросу /.

Возможно, вы захотите пройти руководство по Getting Started with Flask on App Engine Standard Environment. В то рекомендуемый обработчик будет:

handlers: 
- url: /.* 
    script: main.app 

выше само по себе не обязательно делать работу приложения, есть много других вещей, которые могут пойти не так. Вы должны ознакомиться с программой просмотра журналов приложения, поскольку это необходимо для отладки вашего приложения. См. Understanding request log fields

Но прежде чем вы даже перейдете к развертыванию на GAE, узнайте, как запускать и тестировать ваше приложение локально. См. Using the Local Development Server

+0

Еще раз спасибо за ваш ответ, Дэн. Я редактировал свой пост, чтобы быть более ясным. Я пытаюсь выполнить запрос '/ my_uri', и GAE сообщает мне, что URL'/my_uri' не существует. – madrhatter

+0

OK. Но на этот раз экземпляр должен быть запущен вашим запросом, даже если он не сработает в конце. У вас есть соответствующий шаблон для '/ my_uri' в определении' app' из вашего скрипта 'path.to.my.script.script.py'? –