使用GCP .Net客户端库创建区域快照的问题
解决Google.Cloud.Compute.V1创建区域快照的问题
要创建区域快照,你不能直接赋值Snapshot.StorageLocations(该属性为只读,仅用于返回快照的存储位置信息),正确的方式是通过InsertSnapshotRequest来指定存储区域,具体修改如下:
修改后的代码示例
SnapshotsClient snapshotsClient = await SnapshotsClient.CreateAsync(); // 构建基础Snapshot资源 Snapshot snapshotResource = new Snapshot() { Name = "#SNAPSHOT_NAME#", SourceDisk = "#SOURCE_DISK#", }; // 创建Insert请求并指定存储区域 var insertRequest = new InsertSnapshotRequest { Project = "#PROJECT_ID#", SnapshotResource = snapshotResource, // 指定目标区域,比如us-central1 StorageLocations = { "us-central1" } }; // 发送请求并等待完成 var response = await snapshotsClient.InsertAsync(insertRequest); var completedResponse = await response.PollUntilCompletedAsync(); Operation result = completedResponse.Result;
关键说明
InsertSnapshotRequest是发起快照创建请求的核心载体,其中的StorageLocations集合用于指定快照的存储区域(支持单个或多个区域)。- 若要创建多区域快照,只需将
StorageLocations设置为对应的多区域标识(比如["us"]),你的场景中指定单个区域即可实现区域快照的创建。
内容的提问来源于stack exchange,提问作者shahaf
相关产品推荐
相关产品推荐

