谷歌应用引擎应用部署

12

我正在尝试按照Google Engine的Python教程部署一个基本的HelloWorld应用程序。我创建了一个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应用或我的笔记本电脑设置?我已经尝试了StackOverflow上所有的解决方案,所以如果有新的建议,将不胜感激!

5个回答

31

我的情况是,我被拒绝了,因为appcfg将我的ouauth2 token保存在文件~/.appcfg_oauth2_tokens中,这恰好是另一个appengine帐户。只需删除该文件,然后再试一次。应该可以解决问题。这是在Mac上,我不确定Windows是否也是如此。


1
这对我有用:Windows位置是<windisk>:\Users\<Username>\.appcfg_oauth2_tokens - Roel
这对我来说也是同样的情况。我之前使用了另一个appengine账户,即使重新初始化了新的账户,它仍然使用旧的存储版本。我发现这个链接很有用:https://itcodehub.blogspot.com/2019/01/app-deployment-to-google-appengine-linux.html - xproph

5

现在有一种更简单的方法来解决这个问题。

如果你收到了这条消息:“您没有修改此应用程序的权限”,但是在app.YAML中你的ID是正确的,请按照以下步骤操作:

打开你的桌面上的Google App Engine Launcher

点击左上角的控制选项卡-->“清除部署凭据”

就这样!!!


我不知道“Google App Engine Launcher”是什么。 - Randy L
1
这是用于上传更改到Google Cloud并编辑本地文件等的GUI。它还运行本地版本,类似于应用程序XAMPP,如果您知道它的话。它附带下载Google App Engine,看起来像这个链接:this link - DisplayName

2
< p > 在 app.yaml 中的应用程序名称类似于域名。一旦有人预订了它,其他人就不能使用它。您需要前往此处,然后从屏幕顶部的下拉菜单中选择“创建项目...”。在弹出窗口中,它会建议一个项目ID,或者您可以选择自己的ID。许多项目ID已被占用,因此您需要指定一些不寻常的内容,以获得尚未被占用的内容。

然后,将此项目ID放入您的app.yaml中的应用程序行中。然后,您应该能够上传您的项目。


我尝试了一下,但是出现了以下错误: 错误404:---开始服务器输出--- 此应用程序不存在(app_id = u'helloworld-1043')。 ---结束服务器输出--- 如果部署失败,您可能需要手动“回滚”。 “创建符号链接...”菜单选项可以帮助进行命令行工作。 *** appcfg.py已完成,退出代码为1 ***我把helloworld-1043放错了位置,应该是helloworld。 - blob12

1
请确保您已在GAE中创建了一个项目,其项目ID与app.yaml配置完全相同。
工作流程:
  1. 在GAE中创建一个项目并设置名称
  2. 在同一窗口中,您可以编辑项目ID
  3. 复制项目ID并在创建新应用程序时将其粘贴到GAE启动器中(或编辑您的app.yaml以设置application的值)
  4. 部署它并在浏览器中键入{project-id}.appspot.com\ 祝你好运!

1
在 app.yaml 中提到的 App ID('application:')是“helloworld”,这似乎是 hello world 应用程序的默认值。使用https://console.cloud.google.com/home/dashboard创建一个新应用程序,并在 app.yaml 中使用新的应用程序 ID。
请查看 Application for gae does not deploy,其中有类似 Linux 平台的问题的答案,在那里我们需要删除:~/.appcfg_oauth2_tokens* 来解决权限错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接