gpt4 book ai didi

google-app-engine - 如何等待 Google App Engine 操作完成?

转载 作者:行者123 更新时间:2023-12-05 01:35:27 25 4
gpt4 key购买 nike

在我的 CI/CD 过程中,我部署了一个 GAE 应用程序,然后删除了旧版本。

有时会发生冲突,部署正在删除一个版本,然后第二个部署出现并尝试删除相同的版本,从而导致如下错误:

无法对 apps/my-gae-service/services/backend/versions/20200713t161545 进行操作,因为 apps/my-gae-service/services/core-api/versions/20200713t161545 的操作已经在进行中642f0fbd-9633-4aeb-b1cf-71b52c9fdf45。

在运行命令之前等待所有 GAE 操作完成的最佳方法是什么?

这可以通过构建步骤之间的依赖关系来完成,但这并不总是有效,因为 GAE 方面似乎存在问题。问题是有时从一个 CLI 命令中删除的版本即使在该命令运行完成后也不会完全消失。我正在与 Google soo 就此事开具罚单。

最佳答案

您可以使用此命令检查是否有正在进行的操作:

gcloud app operations list --filter=status=PENDING --format=json

您仅对 PENDING 操作进行过滤。如果没有正在进行的操作,则返回 [],否则,您有详细信息(采用 JSON 格式,您比表格 View 中有更多详细信息)。

在这里你可以看到我更新了一个服务 "method": "google.appengine.v1.Services.UpdateService",

[
{
"id": "56f9cb4f-4381-4314-9557-f3c676e64f69",
"op_resource": {
"metadata": {
"@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1",
"insertTime": "2020-07-14T10:13:17.839Z",
"method": "google.appengine.v1.Services.UpdateService",
"target": "apps/ProjectID/services/default",
"user": "myUser@test.com"
},
"name": "apps/ProjectID/operations/56f9cb4f-4381-4314-9557-f3c676e64f69"
},
"project": "ProjectID",
"start_time": "2020-07-14T10:13:17.839Z",
"status": "PENDING"
}
]

现在您可以在您的 CI 中执行检查以避免冲突,并且您可以知道是哪个操作发生了冲突。

关于google-app-engine - 如何等待 Google App Engine 操作完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62885951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com