App Engine 更新服务默认错误

App Engine 更新服务默认错误

我正在尝试将一个简单的 Flask 应用程序部署到 Google App Engine。当我运行命令时gcloud app deploy,它完成了所有任务,但随后它在“更新服务”上出现堆栈。起初我收到此错误:

ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.

然后我增加超时时间,但仍然收到此错误:

ERROR: (gcloud.app.deploy) Operation [apps/artise-server/operations/a3a9a2ac-f33b-4c94-93f1-88917372703e] timed out. This operation may still be underway.

这是我的 .yaml 配置:

runtime: python
runtime_config:
    python_version: 3.6
env: flex
entrypoint: gunicorn -b :$PORT main:app
liveness_check:
  check_interval_sec: 60
  timeout_sec: 4
  failure_threshold: 10
  success_threshold: 1
  initial_delay_sec: 3600

readiness_check:
  check_interval_sec: 300
  timeout_sec: 4
  failure_threshold: 10
  success_threshold: 2
  app_start_timeout_sec: 1800

endpoints_api_service:
  name: artise-server.appspot.com
  rollout_strategy: managed

如果我转到“构建云”部分,所有构建都有绿色勾号,因此它们成功了。

如果我检查日志,我看到的唯一错误是关于内存的:

failed to register layer: Error processing tar file(exit status 1): write /root/.cache/pip/http/0/6/0/1/c/0601ce0a759e906a3c59f237e6f51f593631e6614dfdd40374a20b3e: no space left on device

如果我访问该项目的网址,Google 会显示 404 未找到页面。并且发布请求不会返回响应。所以我认为我的服务器不在线。

答案1

第一个错误ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.可能由不同原因造成:

  • 没有足够的资源
  • 如果您有特殊的 VPC 配置,则在 VPC 网络中没有权限。

对于第一种可能性,增加 app.yaml 上的资源就足够了。

resources:
 cpu: 2
 memory_gb: 2.3
 disk_size_gb: 10
 volumes:
 - name: ramdisk1
   volume_type: tmpfs
   size_gb: 0.5

对于第二个错误:ERROR: (gcloud.app.deploy) Operation [apps/artise-server/operations/a3a9a2ac-f33b-4c94-93f1-88917372703e] timed out. This operation may still be underway.

这可能是由于使用相同的版本 ID 再次部署造成的,请尝试使用不同的版本 ID 再次部署,若要在部署时设置版本 ID,您可以通过以下行进行部署:

gcloud app deploy --version=VERSION_ID

答案2

该错误表明资源可能不足。请尝试按照说明增加内存的默认值这里。 例子:

resources:
  cpu: 2
  memory_gb: 2.3
  disk_size_gb: 10
  volumes:
  - name: ramdisk1
    volume_type: tmpfs
    size_gb: 0.5

答案3

您是否正在使用虚拟私有云进行部署?如果是这样,您收到的第一条错误消息表明问题可能与 VPC 的防火墙有关。您可以验证您的防火墙规则吗?

相关内容