Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine gcloud app deploy-更新服务默认值失败,超出了实例的代码13配额限制,并且401未升级_Google App Engine_Deployment_Gcloud_Gae Quotas - Fatal编程技术网

Google app engine gcloud app deploy-更新服务默认值失败,超出了实例的代码13配额限制,并且401未升级

Google app engine gcloud app deploy-更新服务默认值失败,超出了实例的代码13配额限制,并且401未升级,google-app-engine,deployment,gcloud,gae-quotas,Google App Engine,Deployment,Gcloud,Gae Quotas,创建了一个新项目,在第一次部署时,我得到以下信息: Updating service [default] (this may take several minutes)...failed. ERROR: (gcloud.app.deploy) Error Response: [13]

创建了一个新项目,在第一次部署时,我得到以下信息:

    Updating service [default] (this may take several minutes)...failed.                                                                                                       
ERROR: (gcloud.app.deploy) Error Response: [13] Flex operation projects/primalexchange/regions/us-east1/operations/b5a5813a-14bf-43b6-af7f-e17b15866c4f error [INTERNAL]: An internal error occurred while processing task /appengine-flex-v1/insert_flex_deployment/flex_create_resources>2020-05-16T23:23:08.373Z4721.jc.14: Deployment Manager operation primalexchange/operation-1589671388926-5a5cc367252d6-eae4c5cb-bc5f1a6e errors: [code: "RESOURCE_ERROR"
location: "/deployments/aef-default-20200516t192110/resources/aef-default-20200516t192110"
message: "{\"ResourceType\":\"compute.beta.regionAutoscaler\",\"ResourceErrorCode\":\"403\",\"ResourceErrorMessage\":{\"code\":403,\"errors\":[{\"domain\":\"usageLimits\",\"message\":\"Exceeded limit \'QUOTA_FOR_INSTANCES\' on resource \'aef-default-20200516t192110\'. Limit: 8.0\",\"reason\":\"limitExceeded\"}],\"message\":\"Exceeded limit \'QUOTA_FOR_INSTANCES\' on resource \'aef-default-20200516t192110\'. Limit: 8.0\",\"statusMessage\":\"Forbidden\",\"requestPath\":\"https://compute.googleapis.com/compute/beta/projects/primalexchange/regions/us-east1/autoscalers\",\"httpMethod\":\"POST\"}}"
构建器中的构建显示为已完成的成功

它在版本下显示我有一个版本,有0个实例,100%流量分配,当你点击该版本时,它会带你到我的站点,显示404错误

可能是因为它说服务已停止,而这可能是因为它没有“更新”

我不认为这是“我的代码”的事情,因为我对一个版本进行了git签出,我曾经在另一个项目下成功部署过这个版本,基本上相当于一个hello world应用程序,虽然它曾经成功,但现在失败了。此外,就在几天前,我在同一个项目下进行了另一个工作部署,但当我使用更新的代码进行部署时,部署失败,出现了这个错误,“导致我删除整个项目并重新开始,现在我在这个新项目上遇到了相同的错误。我怎么知道问题不是由我的代码引起的?我有一个构建失败,因为我的代码和构建日志泄露了这一点。在这里,构建成功了。构建中没有失败

所以我转到了这个url 其中指出:

{
  "error": {
    "code": 401,
    "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "errors": [
      {
        "message": "Login Required.",
        "domain": "global",
        "reason": "required",
        "location": "Authorization",
        "locationType": "header"
      }
    ],
    "status": "UNAUTHENTICATED"
  }
}
我不知道这是我的问题还是别的什么。我甚至不知道那到底是什么意思。所以我确保我在“projectd.json”上有信誉 而且 导出GOOGLE_应用程序_凭据='projectd-2c8anumber842b4.json'

我断开了与firebase登录相关的代码

我执行了这些命令

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
gcloud services enable endpoints.googleapis.com
我不知道如何解决这个问题。我整个周末都在努力修好它

我在IAM下选择了配额,并查看了us-east1中自动校准机的配额,我发现这一点并不重要:

唯一一个限制为8的是cpu,它说我在2

我不知道我搞砸了什么

是,已启用计费

我只是偶然发现了这个,也许这会给我找个地方。。。

什么是授权头?为什么我第一次不需要它。。或者这次我搞砸了什么

我修改了我的代码,所以你得到的只是一个拼错的hello world,它仍然无法部署:

import logging

from flask import Flask, jsonify, redirect, url_for
from flask import request, make_response
from flask import render_template
from image_upload import upload_blob

from google.cloud import storage
from google.cloud import datastore


from datetime import datetime
from cryptography.fernet import Fernet

from models.media import Media
from models.user import User


from google.cloud import ndb

import json

import random
from uuid import uuid4

from flask import Flask, make_response, request
from google.auth.transport import requests
import google.oauth2.id_token
# from google.cloud import firestore

from flask_wtf.csrf import CSRFProtect, generate_csrf
from werkzeug.utils import secure_filename
from werkzeug.exceptions import RequestEntityTooLarge

@app.route('/', methods=['GET'])
def hi():
    return "hellow world"


@app.errorhandler(500)
def server_error(e):
    logging.exception('An error occurred during a request.')
    return """
    An internal error occurred: <pre>{}</pre>
    See logs for full stacktrace.
    """.format(e), 500


if __name__ == '__main__':
    # This is used when running locally. Gunicorn is used to run the
    # application on Google App Engine. See entrypoint in app.yaml.

    app.run(host='127.0.0.1', port=8080, debug=True)
当我部署时,当我检查配额时,我的IP地址使用限制达到了4,而当我没有检查配额时,它又回到了2。因此,也许有人可以建议我如何设置app.yaml以避免这种情况?我不知道任何关于缩放的东西,所以我想做自动缩放,这个app.yaml基本上是默认设置


没关系。我的配额增加到了6,但仍然出错。

谷歌云按配额限制资源,请参阅:

对于许多计费帐户,每个项目最多只能有8个计算引擎实例(VM)。您可以通过控制台请求配额增加:

App Engine Flex使用计算引擎虚拟机。。有两种方法可供您使用:

  • 多个部署版本同时运行
  • 每个部署版本有多个实例
您应该能够通过App Engine仪表板和|或通过列出计算引擎实例来确定这一点

请将你的
app.yaml
添加到你的问题中,因为这会很有见地

您可以通过使用
gcloud
获取访问令牌并将其包含在请求头中,向Google云服务发出经过身份验证的请求,例如

curl\
--请求获取\
--标题“授权:承载$(gcloud auth打印访问令牌)”\
https://compute.googleapis.com/compute/beta/projects/primalexchange/regions/us-east1/autoscalers

我得到了谷歌技术支持。他们检查了我的配额。他们检查了我的密码。在我对部署进行详细调试后,他最后告诉我切换区域

他说,问题在于我所在的地区缺乏可用于谷歌flex引擎的虚拟机,我应该要么切换地区,要么切换到标准的谷歌应用程序引擎环境

是的。我必须第四次删除我的项目,然后重新开始

哈哈

至少我知道这不是我在做的事情

更新: 第四个项目也失败了。这次技术支持人员说,一旦工程师们看到它,他会给我回电话

注意:在标准应用程序引擎环境下可以很好地部署

更新1: “嗨

此问题已报告给我们的应用程序引擎产品团队,目前正在调查中

到目前为止,还没有解决方案的预计到达时间,但我们将在听到团队的任何进展后尽快提供更新

多谢各位。”

还有人发布了一个临时解决方案


我只是暂时将其置于app engine标准下

我不确定这是什么原因造成的,但通过将缩放设置为手动或将我的应用程序中的max_num_实例设置为低于8,我能够解决同样的问题。yaml:


如果是这样的话,我超过了配额,IAM配额,当我搜索它们时,包括虚拟机在内的所有人都应该给出这个配额。我没有达到任何限制,所以我不相信这实际上是一个配额问题。对于同时运行的多个已部署版本,这在您首次部署到全新项目时不适用。在我的代码中,我从来没有对AutoScaler进行过任何post调用,因此,我不需要向它发送头(这不是你不知道的错误),它是由部署上的部署管理器操作调用的,而不是我,是一个gcloud库thingI不正确(假设,抱歉)将配额限制“8”应用于实例。再次阅读此内容(在非移动屏幕上),我可以看到错误是指us-east1中的autoscaler配额。我想你现在最好的办法是向谷歌提交一个支持请求,让那里的人帮助你。你能分享一下吗
runtime: python
api_version: '1'
env: flexible
threadsafe: true
handlers:
  - url: /static/(.*)
    application_readable: true
    static_files: __static__/static/\1
    require_matching_file: false
    upload: __static__/static/.*
  - url: /.*
    script: main.app
    secure: never
env_variables:
  SECRET_KEY: ____________
automatic_scaling:
  cool_down_period: 120s
  min_num_instances: 2
  max_num_instances: 20
  cpu_utilization:
    target_utilization: 0.5
network: {}
liveness_check:
  initial_delay_sec: 300
  check_interval_sec: 30
  timeout_sec: 4
  failure_threshold: 4
  success_threshold: 2
readiness_check:
  check_interval_sec: 5
  timeout_sec: 4
  failure_threshold: 2
  success_threshold: 2
  app_start_timeout_sec: 300
automatic_scaling:
  min_num_instances: 1
  max_num_instances: 7