对于 App 引擎来说,使用中的 IP 地址达到配额太快

Jam*_*oun 4 google-app-engine google-compute-engine google-cloud-platform google-app-engine-php

我有一个在 App Engine 中运行的网络服务器,客户端是一个移动应用程序。我看到,一旦我们扩展到大量用户,移动设备上的许多请求就会开始失败。但是,我在我们的日志中没有看到任何故障。我注意到在我们的配额中,我们的ip address in useforCompute Engine API最大为 8(即使我们没有在 Compute Engine 上运行任何服务)。我不确定这是否是根本原因,但以前不是这样,我想知道是否有任何关于如何解决此问题的建议,或者是否有更好的方法来构建我们的服务器以满足我们的用例。

编辑:我们当前的配置是 App 引擎上的 flex 环境,最少有 2 个实例。我们还有一个 MySQL 实例。到目前为止,我们使用的几乎所有东西。

runtime: php
env: flex

api_version: 1

handlers:
- url: /.*
  script: public/index.php

runtime_config:
  document_root: public

beta_settings:
    # for Cloud SQL, set this value to the Cloud SQL connection name,
    # e.g. "project:region:cloudsql-instance"
    cloud_sql_instances: "<project>:<region>:<sql-instance>"
Run Code Online (Sandbox Code Playgroud)

Lun*_*ast 5

您没有在问题中提到它,但我相信您正在使用 App Engine 柔性环境。在幕后,App Engine Flex 应用程序在(对您隐藏)您项目中的 Compute Engine 实例上运行。因此,它实际上也违反了 Compute Engine 配额,包括您的 App Engine 区域的“正在使用的 IP 地址”。

“正在使用的 ip 地址”会影响您的 App Engine flex 应用程序,因为它会限制您的应用程序能够扩展到的实例数量,因为每个实例使用自己的 IP。例如,根据您提供的 app.yaml 文件,您的扩展设置默认为自动扩展,最少 2 个实例,最多 20 个实例。当使用您的应用程序的用户数量增加时,“使用中的 ip 地址”配额将阻止您的应用程序升级到 8 个以上的实例。

需要注意的另一件事是,您的服务的先前版本可能仍在运行。如果它们具有相同的缩放设置,这意味着它们将至少运行 2 个实例,这也将计入“使用中的 IP 地址”配额。

由于您无法在为 App Engine 应用程序设置的另一个区域的网络中部署 App Engine 实例,因此这里唯一的解决方案是请求增加配额。在您的开发者控制台中,转到 IAM 和管理 > 配额,选择此特定配额并单击顶部的“编辑配额”按钮并按照说明进行操作。