App Engine 柔性环境中的已知问题

地区 ID

REGION_ID 是 Google 根据您在创建应用时选择的地区分配的缩写代码。此代码不对应于国家/地区或省,尽管某些地区 ID 可能类似于常用国家/地区代码和省代码。在 App Engine 网址中包含 REGION_ID.r 对于现有应用是可选项,但在不久后将成为所有新应用的必要项。

为了确保顺利过渡,我们正在逐步更新 App Engine 以使用地区 ID。如果我们尚未更新您的 Google Cloud 项目,则您不会看到应用的区域 ID。由于该 ID 对于现有应用是可选的,因此您在现有应用可以使用区域 ID 后无需更新网址或进行其他更改。

详细了解区域 ID

如需查阅已知问题的完整列表或报告新问题,请参阅问题跟踪器

  • 使用 gcloud app deploy 部署应用后,您可能需要等待 1-2 分钟,应用才会开始在 https://PROJECT_ID.REGION_ID.r.appspot.com 提供服务。在此之前,您可能会看到 HTTP 503 错误。

  • 如果项目中的组织政策限制对外部 IP 的访问,您就无法使用 App Engine 柔性环境,例如:

    • constraints/compute.vmExternalIpAccess 的有效政策设置为 DENY_ALL
    • constraints/compute.vmExternalIpAccess 的有效政策设置为仅允许特定虚拟机实例。

    这些限制不会被自动检测到,因此部署可能会超时并失败。您可以通过运行命令 gcloud beta resource-manager org-policies describe compute.vmExternalIpAccess --project=my-project --effective 来检查项目的组织政策。 您还可以替换特定项目的组织政策

  • 在包含 gcloud app deploy 的 App Engine 柔性环境中部署现有服务的新版本后,App Engine 信息中心“摘要”图表中显示的“计数/秒”指标可能会大幅减少。该指标将在接下来的 5-10 分钟内逐步恢复到预期的请求计数。

    这并不意味着应用处理的请求要少。部署应用的新版本时,新版本准备好处理请求的时间与新实例的指标可用的时间之间存在延迟。

    要确保该指标不受新版本部署的影响,请执行以下操作:

    1. 使用 gcloud app deploy --no-promote 部署新版本。
    2. 部署完成后等待 15 分钟。
    3. 将流量迁移到新版本

    如果您使用 --no-promote 进行部署,但在部署完成后 15 分钟的时间段内,将流量分配给新版本,则此指标可能会受到影响。

  • 在 App Engine 柔性环境中,无法配置 app.yaml,以便您的应用自动将请求重定向到始终使用 HTTPS。这与 App Engine 标准环境不同,您可以在其中使用 secure 设置。

    作为替代方案,您可以通过解析 X-Forwarded-Proto 标头的值来处理应用代码内的重定向。您还可以鼓励客户端使用 Strict-Transport-Security 标头