如何解决是什么原因导致“云运行错误:内部系统错误,系统稍后会重试”?有关故障排除的建议?
我正在尝试将Cloud Run Service部署为我的开源项目的测试的一部分。这是通过我们的自动化CI / CD系统完成的,以前已经成功运行了数百次。
已创建Cloud Run Service,但从未部署第一修订版。当我在GCP控制台中查看新创建的服务时,它显示“云运行错误:内部系统错误,系统将稍后重试”。作为服务的主要状态消息。
失败的命令行是:
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控制台手动创建入门文档中的示例容器,并使用示例容器创建最基本的Cloud Run Service,同时以项目和组织所有者身份登录。我看到同样的失败。以前,我已经使用此帐户和项目以这种方式手动创建了Services,没有任何问题。
- 使用GCP控制台在不同的项目中创建与上述相同的示例服务,但使用的用户和组织相同。这可以成功进行,因此问题是特定于项目的。
- 我尝试了两个不同的美国地区,结果相同。
- 由于这通常是自动进行的,因此我尝试查找任何超出的配额。在“云运行配额”页面和“整体配额”页面上,我现在或历史上都看不到任何超出的配额。但是,这是我不太熟悉的领域,因此可能错过了一些东西。
- 在两天内重试数十次。
- “ GCP状态”页面显示无中断。
我应该采取哪些其他的故障排除步骤来调查和解决此问题?
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 Run Admin API并重新启用它。进行更改后,我可以使用控制台中的示例容器创建服务,并以项目所有者的身份登录。我还能够使用CLI中的示例容器创建服务,并以CI服务帐户登录。但是,我问题的原始命令仍然具有与以前相同的行为。我不知道项目如何进入这种状态,以至于项目所有者无法使用Cloud Run。
我要做的第二件事是将我尝试使用的容器映像(gcr.io/adapt-ci/http-echo
)重新推送到GCR。我推送了与之前相同的图像。最终,CI系统可以成功创建服务。
作为我先前的疑难解答的一部分,我查看了该项目的Google Container Registry,并确认所需的图像仍然存在。但是,我们最近在Cloud Storage存储桶上启用了生命周期策略,以删除超过一定时间的项目。因此,我最好的猜测是该策略删除了与该gcr.io/adapt-ci/http-echo
映像关联的文件的一些但不是全部,这导致了内部错误,而不是一个错误,指出容器映像无法找不到。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。