What causes 'Cloud Run error: Internal system error, system will retry later'? Suggestions for troubleshooting?

What causes 'Cloud Run error: Internal system error, system will retry later'? Suggestions for troubleshooting?

我正在尝试部署云 运行 服务作为我的开源项目测试的一部分。这是通过我们的自动化 CI/CD 系统完成的,并且之前已经成功运行了数百次。

云 运行 服务已创建,但第一个修订版从未部署。当我在 GCP 控制台中查看新创建的服务时,它显示“Cloud 运行 错误:内部系统错误,系统将稍后重试。”作为服务的主要状态消息。

失败的命令行是:

gcloud --configuration=adapt-cloud-gcloud-testing --quiet run deploy cloud-run-gen-name-a179e65d6fdfc19abc57e15df563d8cb --platform=managed --format=json --no-allow-unauthenticated --memory=128M --cpu=1 --image=gcr.io/adapt-ci/http-echo --region=us-central1 --port=5678 --set-env-vars=ADAPT_TEST_DEPLOY_ID=MockDeploy-aymb --args="-text,Adapt Test"

该命令的输出(注意:Creating Revision 之后的点继续):

Deploying container to Cloud Run service [cloud-run-gen-name-a179e65d6fdfc19abc57e15df563d8cb] in project [adapt-ci] region [us-central1]
Deploying new service...
Creating Revision....................................................................................................................

控制台中的 YAML 选项卡也针对三种状态条件中的每一种显示相同的消息(见下文)。

为了解决问题,我也试过:

我应该采取哪些额外的故障排除步骤来调查和解决此问题?

失败服务的 GCP 控制台 YAML 选项卡中的部分信息:

status:
  observedGeneration: 1
  conditions:
  - type: Ready
    status: Unknown
    message: 'Cloud Run error: Internal system error, system will retry later.'
    lastTransitionTime: '2020-10-08T21:07:20.844314Z'
  - type: ConfigurationsReady
    status: Unknown
    message: 'Cloud Run error: Internal system error, system will retry later.'
    lastTransitionTime: '2020-10-08T21:07:20.755212Z'
  - type: RoutesReady
    status: Unknown
    message: 'Cloud Run error: Internal system error, system will retry later.'
    lastTransitionTime: '2020-10-08T21:07:20.844314Z'
  latestCreatedRevisionName: cloud-run-gen-name-3bab80f75cfd57cf87ad89d9d2c18ba3-00001-fus

经过多次尝试和错误后,我让一切都恢复正常了。

我做的取得一些进展的第一件事是禁用 Cloud 运行 Admin API 和 re-enable 它。更改之后,我能够使用控制台中的示例容器创建服务,并以项目所有者身份登录。我还能够使用 CLI 中的示例容器创建服务,并以 CI 服务帐户登录。但是,我的问题中的原始命令仍然具有与以前相同的行为。我不知道项目是如何进入这种状态的,以至于项目所有者无法使用 Cloud 运行.

我做的第二件事是 re-push 我试图使用 (gcr.io/adapt-ci/http-echo) 的容器镜像到 GCR。我推送了与之前完全相同的图片。这最终让 CI 系统成功创建了服务。

作为我之前故障排除的一部分,我查看了该项目的 Google Container Registry,并确认所需的图像仍然存在。但是,我们最近在 Cloud Storage 存储桶上启用了生命周期策略,以删除超过一定时间的项目。所以我最好的猜测是政策删除了 一些,但不是全部 gcr.io/adapt-ci/http-echo 图像相关的文件,这导致了内部错误而不是错误说容器找不到图片。