Развертывание приложения Google App Engine
Я пытаюсь развернуть базовое приложение HelloWorld в Google Engine, следуя их руководству по Python. Я создал файл helloworld.py и файл app.yaml и скопировал код из их онлайн-учебника. Я зарегистрировался в Google App Engine и перепробовал все, но постоянно получаю следующую ошибку:
2015-08-19 19:22:08,006 ERROR appcfg.py:2438 An error occurred processing file '':
HTTP Error 403: Forbidden Unexpected HTTP status 403. Aborting.
Error 403: --- begin server output ---
You do not have permission to modify this app (app_id=u'helloworld').
--- end server output ---
If deploy fails you might need to 'rollback' manually.
The "Make Symlinks..." menu option can help with command-line work.
*** appcfg.py has finished with exit code 1 ***
Вот код из helloworld.py:
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, Udacity!')
app = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
А вот мой код из файла app.yaml:
application: helloworld
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.app
Есть ли проблема с разрешениями, например, в настройках Google App или моего ноутбука? Я перепробовал все, что есть на stackru, поэтому любые новые предложения будут высоко оценены!
5 ответов
В моем случае я получил отказ, потому что appcfg сохранил мой токен ouauth2 в файле ~/.appcfg_oauth2_tokens
, который случайно оказался еще одним аккаунтом appengine . Просто удалите файл и попробуйте снова. Он должен работать. Это в Mac, я не уверен насчет окон, хотя.
Хорошо, есть НАМНОГО более простой способ сделать это сейчас.
Если вы получаете сообщение "У вас нет прав на изменение этого приложения", но ваш идентификатор в приложении верен.YAML выполните следующие действия:
Откройте панель запуска Google App Engine на рабочем столе. Нажмите на вкладку управления в верхнем левом углу -> "Очистить учетные данные развертывания".
Это оно!!!
Название приложения в app.yaml
вроде как доменное имя. Как только кто-то зарезервировал его, никто больше не может его использовать. Вам нужно перейти сюда, а затем выбрать "Создать проект..." в раскрывающемся списке в верхней части экрана. Во всплывающем окне будет предложен идентификатор проекта или вы можете выбрать свой собственный. Многие идентификаторы проекта взяты, поэтому вам нужно указать что-то необычное, чтобы получить что-то, что не берется.
Затем вы помещаете этот идентификатор проекта в свой app.yaml
в строке приложения. После этого вы сможете загрузить свой проект.
Убедитесь, что вы создали проект в GAE, идентификатор проекта которого точно соответствует вашей конфигурации в app.yaml
рабочий процесс:
- Создайте проект в GAE и установите имя
- В этом же окне вы можете редактировать идентификатор проекта
- скопируйте идентификатор проекта и вставьте его при создании нового приложения в программе запуска GAE (или отредактируйте ваш app.yaml, чтобы установить значение приложения)
- разверните его и введите {project-id}.appspot.com в своем браузере \ Удачи!
Идентификатор приложения ( 'application:') в app.yaml упоминается как 'helloworld', который, по-видимому, используется по умолчанию для приложения hello world. Создайте новое приложение, используя: https://console.cloud.google.com/home/dashboard и используйте новый идентификатор приложения в app.yaml.
Пожалуйста, посмотрите на: Приложение для gae не развертывается, у которого есть ответ на аналогичный вопрос для платформы Linux, где нам нужно удалить: ~/.appcfg_oauth2_tokens*, чтобы устранить ошибку разрешения.