【问题标题】:gcloud preview app deploy returns 400 errorgcloud preview app deploy 返回 400 错误
【发布时间】:2015-08-28 20:36:39
【问题描述】:

尝试将一些静态内容部署到 GAE,因为他们删除了推送部署管道功能。我已经建立了一个全新的项目。它在美国地区。再次gcloud auth login。仍然得到相同的响应。

下面的详细调试输出。 [已编辑] 是我对代码的补充。

$ gcloud preview app deploy dist/app.yaml --verbosity debug
DEBUG: Running gcloud.preview.app.deploy with Namespace(__calliope_internal_deepest_parser=ArgumentParser(prog='gcloud.preview.app.deploy', usage=None, description="*(BETA)* This command is used to deploy both code and configuration to the App Engine\nserver.  As an input it takes one or more ``DEPLOYABLES'' that should be\nuploaded.  A ``DEPLOYABLE'' can be a module's .yaml file or a configuration's\n.yaml file.", version=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=False), cmd_func=<bound method Command.Run of <googlecloudsdk.calliope.backend.Command object at 0x10bf14290>>, command_path=['gcloud', 'preview', 'app', 'deploy'], deployables=['dist/app.yaml'], document=None, env_vars=None, force=False, format=None, h=None, help=None, http_timeout=None, log_http=None, markdown=None, project=None, quiet=None, remote=False, server=None, set_default=False, trace_token=None, user_output_enabled=None, verbosity='debug', version=None).
You are about to deploy the following modules:
 - [PROJECT_ID]/default/20150612t130942  From: [/Users/[ME]/Dropbox/Sites/[PROJECT_ID]/site/dist/app.yaml]
Do you want to continue (Y/n)?  Y

Updating module [default]...DEBUG: Host: appengine.google.com
DEBUG: Host: appengine.google.com
DEBUG: Getting current resource limits.
DEBUG: Send: /api/appversion/getresourcelimits, params={'version': '20150612t130942', 'app_id': '[PROJECT_ID]'}
DEBUG: _Authenticate configuring auth; needs_auth=False
DEBUG: Sending request to https://appengine.google.com/api/appversion/getresourcelimits?app_id=[PROJECT_ID]&version=20150612t130942 headers={'X-appcfg-api-version': '1', 'content-length': '0', 'Content-Type': 'application/octet-stream'} body=
INFO: Attempting refresh to obtain initial access_token
INFO: Refreshing access_token
DEBUG: Got response: max_file_size: 32000000
max_blob_size: 32000000
max_files_to_clone: 2000
max_total_file_size: 9223372036854775807
max_file_count: 10000

DEBUG: Using resource limits: {'max_file_size': 32000000, 'max_total_file_size': 9223372036854775807, 'max_blob_size': 32000000, 'max_files_to_clone': 2000, 'max_file_count': 10000}
INFO: Reading app configuration.
DEBUG: 
Starting update of app: [PROJECT_ID], version: 20150612t130942
DEBUG: Scanning files on local disk.
INFO: Processing file [app.yaml]
INFO: Processing file [index.html]
INFO: Processing file [views/6a0e56b1.main.html]
INFO: Processing file [views/partials/90bc29e6.case-study.html]
INFO: Processing file [views/partials/cc69dea5.home.html]
INFO: Processing file [styles/9960b040.main.css]
INFO: Processing file [scripts/8a12aff1.scripts.js]
INFO: Processing file [scripts/8e6de882.libraries.js]
DEBUG: Send: /api/appversion/create, params={'version': '20150612t130942', 'app_id': '[PROJECT_ID]', 'module': 'default'}
DEBUG: _Authenticate configuring auth; needs_auth=False
DEBUG: Sending request to https://appengine.google.com/api/appversion/create?app_id=[PROJECT_ID]&module=default&version=20150612t130942 headers={'X-appcfg-api-version': '1', 'content-length': '633', 'Content-Type': 'application/octet-stream'} body=api_version: '1'
application: [PROJECT_ID]
auto_id_policy: default
builtins:
- default: 'on'
derived_file_type:
- python_precompiled
handlers:
- script: index.html
  secure: optional
  url: /
- secure: optional
  static_dir: styles
  url: /styles
- secure: optional
  static_dir: scripts
  url: /scripts
- secure: optional
  static_dir: views
  url: /views
- secure: optional
  static_dir: fonts
  url: /fonts
- secure: optional
  static_dir: images
  url: /images
- secure: optional
  static_dir: res
  url: /res
module: default
runtime: php
threadsafe: true
version: 20150612t130942
vm_settings:
  module_yaml_path: app.yaml

INFO: Attempting refresh to obtain initial access_token
INFO: Refreshing access_token
Updating module [default].../DEBUG: Got http error 400.
DEBUG: Unexpected results: {'status': '400', 'alternate-protocol': '443:quic,p=1', 'content-length': '318', 'expires': 'Fri, 01 Jan 1990 00:00:00 GMT', 'server': 'Google Frontend', 'cache-control': 'no-cache', 'date': 'Fri, 12 Jun 2015 18:09:47 GMT', 'content-type': 'text/plain'}
Updating module [default]...done.
DEBUG: (gcloud.preview.app.deploy) Server responded with code [400]:
  Bad Request Unexpected HTTP status 400
Traceback (most recent call last):
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 538, in Execute
    result = args.cmd_func(cli=self, args=args)
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/calliope/backend.py", line 1124, in Run
    result = command_instance.Run(args)
  File "/Users/[ME]/Applications/google-cloud-sdk/lib/googlecloudsdk/appengine/app_commands/deploy.py", line 119, in Run
    client.DeployModule(module, version, info.parsed, info.file)
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/appengine_client.py", line 276, in DeployModule
    return appversion.DoUpload()
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/appengine_deployments.py", line 1016, in DoUpload
    missing_files = self.Begin()
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/appengine_deployments.py", line 561, in Begin
    payload=config_copy.ToYAML())
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/util.py", line 288, in Send
    result = self.rpcserver.Send(url, payload=payload, **kwargs)
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/util.py", line 353, in Send
    response = self._server.Send(*args, **kwargs)
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/external/tools/appengine_rpc_httplib2.py", line 269, in Send
    'Unexpected HTTP status %s' % status)
  File "/Users/[ME]/Applications/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/external/tools/appengine_rpc_httplib2.py", line 67, in RaiseHttpError
    raise urllib2.HTTPError(url, response_info.status, msg, response_info, stream)
RPCError: Server responded with code [400]:
  Bad Request Unexpected HTTP status 400
ERROR: (gcloud.preview.app.deploy) Server responded with code [400]:
  Bad Request Unexpected HTTP status 400

【问题讨论】:

  • 我遇到了同样的事情,我跑过gcloud auth logingcloud config set project [project_id]
  • 同样,我也有这个问题

标签: google-app-engine gcloud


【解决方案1】:

对我来说,我没有在我的 Google 控制台项目的 Compute > Compute Engine > VM 实例 中启用结算功能。现在可以了!

【讨论】:

  • 计费似乎在我的项目中正确设置。这似乎没有影响任何事情......不过还是谢谢,很高兴它对你有用。
  • 您必须使用默认付款计划实例化一个实例,然后部署您的应用程序。
【解决方案2】:

如果你安装了 appcfg.py,你可以运行它来部署,它会给出确切的错误消息,我发现我的 api_version 对于 java 运行时是无效的(我找不到有效的数字和1不是吗)

【讨论】:

    【解决方案3】:

    一般问题是错误没有消息。 从明天的云SDK发布开始,会显示任何错误的原因(计费问题,配额不足,等等),所以请明天尝试获取更新的云SDK。

    【讨论】:

    • 只是一个更新,1.9.23 SDK was released today,所以正如 Ludo 建议的那样,OP,请测试一下,看看问题是否仍然存在。
    【解决方案4】:

    如果您从谷歌云控制台禁用/删除了以前的应用程序,您可能需要再次设置项目 ID。

    gcloud config set project PROJECT_ID
    

    【讨论】:

      【解决方案5】:

      我的初始部署很好,在我上传更新后,它开始失败并出现与您相同的错误。我发现了 oauth 的问题。从谷歌注销并运行:

      $ gcloud auth login
      

      重新登录后,我就可以部署了。未进行重新编码或托管 VM 设置更改。

      【讨论】:

        猜你喜欢
        • 2020-12-29
        • 2016-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-12
        • 2019-12-27
        • 2021-09-16
        相关资源
        最近更新 更多