我一直试图通过代码调用API来创建GCP磁盘的快照,但它一直给我这个错误:
Failed to check snapshot status before creating GCPDisk swift-snapshot-gkeos-dkdwl-dynamic-pvc-1b13097f-7-1630579922. HTTP Error: GET request to the remote host failed [HTTP-Code: 404]: {
"error": {
"code": 404,
"message": "The resource 'projects/rw-migration-dev/global/snapshots/swift-snapshot-gkeos-dkdwl-dynamic-pvc-1b13097f-7-1630579922' was not found",
"errors": [
{
"message": "The resource 'projects/rw-migration-dev/global/snapshots/swift-snapshot-gkeos-dkdwl-dynamic-pvc-1b13097f-7-1630579922' was not found",
"domain": "global",
"reason": "notFound"
}
]
}
}
我的程序在相当长的一段时间内运行良好,但现在有时会出现错误。我试着通过邮递员传递同样的查询,结果很好。有时它能很好地通过。
主要问题在于快照创建API,https://compute.googleapis.com/compute/v1/projects/{projectName}/区域/{diskLocation}/磁盘/{diskName}/createSnapshot
这个URL在邮递员上运行良好,创建后,当您列出快照时,您可以看到它们,但通过代码,一旦调用这个API,它将返回OK 200,但没有创建快照
有人能告诉我为什么会发生这种事吗?
我认为您正在尝试使用此操作:
https://cloud.google.com/compute/docs/reference/rest/v1/disks/createSnapshot
这是一个长时间运行的操作,200响应表示快照操作已启动,但它确实而表示它已完成。
文件指向:
https://cloud.google.com/compute/docs/api/how-tos/api-requests-responses#handling_api_responses
在尝试使用快照之前,您可能需要轮询操作,直到操作完成。