Ray*_*ayB 4 google-app-engine google-cloud-platform
在我的 CI/CD 过程中,我部署了 GAE 应用程序,然后删除旧版本。
有时会出现冲突,部署正在删除版本,然后第二个部署出现并尝试删除相同版本,从而导致如下错误:
Cannot operate on apps/my-gae-service/services/backend/versions/20200713t161545 because an operation is already in progress for apps/my-gae-service/services/core-api/versions/20200713t161545 by 642f0fbd-9633-4aeb-b1cf-71b52c9fdf45.
在运行命令之前等待所有 GAE 操作完成的最佳方法是什么?
这可以通过构建步骤之间的依赖关系来完成,但这并不总是有效,因为似乎是在 GAE 方面的问题。问题是,有时从一个 CLI 命令删除的版本即使在该命令运行完毕后也没有完全消失。我正在向 Google soo 开一张有关此问题的票。
gui*_*ere 11
您可以使用以下命令检查是否有正在进行的操作:
gcloud app operations list --filter=status=PENDING --format=json
Run Code Online (Sandbox Code Playgroud)
您仅过滤 PENDING 操作。如果没有正在进行的操作,则返回[],否则,您将获得详细信息(采用 JSON 格式,您将获得比表格视图更多的详细信息)。
这里你可以看到我更新了一个服务"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"
}
]
Run Code Online (Sandbox Code Playgroud)
现在您可以在 CI 中执行检查以避免冲突,并且您可以知道哪个操作发生了冲突。
| 归档时间: |
|
| 查看次数: |
2980 次 |
| 最近记录: |