我正在使用以下代码创建包含预期标签的快照:
static async void TakeSnapshots(string zone, string diskName)
{
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("env", "prod");
dict.Add("backup", "auto");
Random r = new Random();
Google.Apis.Compute.v1.Data.Snapshot snapshot = new Google.Apis.Compute.v1.Data.Snapshot()
{
Name = "test-" + r.Next(1, 1000),
Description = "Description",
Labels = dict
};
var request = computeService.Disks.CreateSnapshot(snapshot, project, zone, diskName);
try
{
var response = await request.ExecuteAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
但是正在创建没有标签的快照。我做错了什么或事情坏了吗?
Google.Apis.Compute.v1 SDK版本为:1.29.1.958
答案 0 :(得分:0)
在google-cloud中,快照的创建仅接受来自请求体字典的必需属性。
标签是要添加到资源的东西,对于创建资源来说,这不是必需的。因此,google-cloud代码会忽略标记,从请求中标记属性。
您需要POST另一个请求以添加标签资源。 谷歌云处理的好处是:如果您创建快照,即使快照尚未完成,您也可以通过其他请求标记资源。
因此,它实际上并没有阻止我们执行操作。
希望它有所帮助!