【问题标题】:deploying django application to google app engine将 django 应用程序部署到谷歌应用引擎
【发布时间】:2020-11-18 03:43:12
【问题描述】:

我已按照谷歌云平台指南中的步骤进行操作,但仍然出现权限错误。表示调用者没有权限。请问我做错了什么。 这是失控gcloud config list

region = us-central1
zone = us-central1-f
[core]
account = <gmail-account>
disable_usage_reporting = True
project = <project-id>
Your active configuration is: [default]

这是它引发的错误

ERROR: (gcloud.app.deploy) Error Response: [13] Flex operation projects/<project-id>/regions/europe-west1/operations/error [INTERNAL]: An internal error occurred while processing task /appengine-flex-v1/insert_flex_deployment/flex_create_resources>2020-07-28T15:45:31.962Z49210.jv.11: Deployment Manager operation <project-id>/operation-... errors: [code: "RESOURCE_ERROR"
location: "/deployments/aef-default-..../resources/aef-default-...."
message: "{\"ResourceType\":\"compute.beta.regionAutoscaler\",
\"ResourceErrorCode\":\"403\",
\"ResourceErrorMessage\":{\"code\":403,
\"message\":\"The caller does not have permission\",
\"status\":\"PERMISSION_DENIED\",
\"statusMessage\":\"Forbidden\",
\"requestPath\":\"https://compute.googleapis.com/compute/beta/projects/<project-id>/regions/europe-west1/autoscalers\",
\"httpMethod\":\"POST\"}}"

【问题讨论】:

  • 您遵循了哪个指南以及您运行了哪些命令来产生错误?
  • 我运行了“gcloud app deploy”

标签: google-cloud-platform django-deployment


【解决方案1】:

请检查您的project quotas 通常当您的项目没有足够的 IP 或虚拟机(App 引擎 Flex 使用计算引擎虚拟机)并且您的 app.yaml 上的扩展策略超出配额时会引发此错误。

请尝试在您的app.yaml 文件中添加以下块之一

用于自动缩放

automatic_scaling:
    min_num_instances: 1
    max_num_instances: 2

用于手动缩放

manual_scaling:
   instances: 2

为避免耗尽这些配额,请删除/停止您不需要的 App Engine 服务版本。

有关扩展策略的更多信息,请查看reference guide

例如: 每个 VM 占用 1 个 IP,您的项目有 4 个配额。

如果您的应用引擎服务有 3 个 VM 正在运行(使用了 3 个 IP),那么在下一次部署中您只有 1 个可用 IP,如果您的 app.yaml 文件中的 min_instancesinstances 大于 1,则部署将失败。

这是因为你的项目不能分配超过4个IP,并且App引擎先打开新实例,然后关闭旧实例,这是为了避免服务中断

如果您需要增加此资源配额,则需要contact a GCP sales rep

【讨论】:

  • 如果我检查我的项目qouta,我怎么知道ips和vms不够?
  • @EmekaVictorLivingstone 例如,每个 vm 需要 1 个 ip,您的项目有 4 个配额。如果您的应用引擎服务有 3 个正在运行的虚拟机(使用 3 个 ip),那么在下一次部署中,您只有 1 个可用的 ip ,如果您的 app.yaml 文件中的 min_instancesinstances 大于 1,则部署将失败。这是因为你的项目不能分配超过4个IP,并且App引擎先开启新实例,然后关闭旧实例,这是为了避免服务中断。
  • @EmekaVictorLivingstone 如果此答案对您有用,请不要忘记投票并接受答案
  • @ 谢谢。它已成功部署。但是当我运行 gcloud app browse 时出现另一个错误。服务器错误(500)
  • @lvingstone 我认为您需要为新问题打开一个新问题,以便更好地了解正在查找有关同一问题的信息的人
猜你喜欢
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 2021-01-14
  • 1970-01-01
  • 2015-11-22
相关资源
最近更新 更多