【问题标题】:Google App Engine app deploymentGoogle App Engine 应用部署
【发布时间】:2015-11-13 11:22:19
【问题描述】:

我正在尝试按照他们的 Python 教程在 Google 引擎上部署一个基本的 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 上的所有内容,因此任何新的建议都将不胜感激!

【问题讨论】:

    标签: python google-app-engine web-applications


    【解决方案1】:

    app.yaml 中的应用程序名称有点像域名。一旦有人预订了它,其他人就无法使用它。您需要转到here,然后从屏幕顶部的下拉列表中选择“创建项目...”。在弹出窗口中,它会建议一个项目 ID,或者您可以选择自己的。许多项目 id 被占用,因此您需要指定一些不寻常的东西来获取未被占用的东西。

    然后,您将这个项目 ID 放入您的申请行中的 app.yaml。然后您应该可以上传您的项目了。

    【讨论】:

    • 我试过了,我收到以下错误:错误 404:--- 开始服务器输出 --- 此应用程序不存在 (app_id=u'helloworld-1043')。 --- 结束服务器输出 --- 如果部署失败,您可能需要手动“回滚”。 “制作符号链接...”菜单选项可以帮助进行命令行工作。 *** appcfg.py 已完成退出代码 1 *** 我把 helloworld-1043 而不是 helloworld
    【解决方案2】:

    确保您在 GAE 中创建了一个 项目 ID 与您在 app.yaml 中的配置完全相同的项目

    工作流程:

    1. 在 GAE 中创建项目并设置名称
    2. 您可以在同一窗口中编辑项目 ID
    3. 在 GAE 启动器中创建新应用程序时复制项目 ID 并将其粘贴(或编辑 app.yaml 以设置应用程序的值)
    4. 部署它并在浏览器中输入 {project-id}.appspot.com\祝你好运!

    【讨论】:

      【解决方案3】:

      app.yaml 中提到的应用 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* 以解决权限错误。

      【讨论】:

        【解决方案4】:

        就我而言,我被拒绝了,因为 appcfg 将我的 ouauth2 令牌保存在文件 ~/.appcfg_oauth2_tokens 中,这恰好是 appengine 的另一个帐户。只需删除文件并重试。它应该工作。这是在 Mac 中,不过我不确定 Windows。

        【讨论】:

        • 这对我有用:Windows 位置是 <windisk>:\Users\<Username>\.appcfg_oauth2_tokens
        • 这对我来说也是如此。我之前使用了另一个 appengine 帐户,甚至在使用新帐户重新初始化之后它仍然使用旧的存储版本。我发现这个很有用:itcodehub.blogspot.com/2019/01/…
        【解决方案5】:

        好的,现在有一个更简单的方法来做到这一点。

        如果您收到此消息“您无权修改此应用” 但您的 id 在 app.YAML 中是正确的,请执行以下操作:

        在您的桌面上打开 Google App Engine 启动器 点击左上角的控制选项卡-->“清除部署凭据”

        就是这样!!!

        【讨论】:

        • 知道什么是“Google App Engine Launcher”
        • 它是用于将更改上传到谷歌云并编辑本地文件等的 GUI。它运行本地版本以及类似于应用程序 XAMPP,以防您知道它。它带有下载谷歌应用引擎看起来像这个链接this link
        猜你喜欢
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        • 2015-02-19
        • 2011-10-21
        • 1970-01-01
        • 2016-07-13
        • 2019-02-02
        • 2019-04-22
        相关资源
        最近更新 更多