Google API使用过滤器获取快照,

时间:2018-07-12 13:57:48

标签: python google-cloud-platform google-api-client snapshot

我编写了以下代码,这些代码返回了具有特定字符串的快照列表,但这并没有返回Size为0的快照,

https://cloud.google.com/compute/docs/reference/rest/v1/snapshots/list

this  API have following attributes:
  • project_id
  • 过滤器
  

我正在尝试基于正则表达式放置一些过滤器   匹配所有名称中具有“ intance-snap”的快照。

 def snapshotlist():  
        query = "name eq <string>.*"  
        snaplist = compute.snapshots().list(project=project,filter=query).execute()  
        snaplist = ast.literal_eval(json.dumps(snaplist))  
        for snap in snaplist['items']:  
            print(snap['name'])

以上代码不会返回大小为0的快照,无论是否存在 SIZE 吗?

1 个答案:

答案 0 :(得分:1)

Snapshot documentation中,使用可选参数的join属性:

  

表达式必须指定字段名称,比较运算符以及要用于过滤的值。该值必须是字符串,数字或布尔值。 比较运算符必须为select customer, date, max(receipt) as receipt, max(invoice) as invoice from ((select a.customer, a.date, a.receipt, (@rnr := if(@cd = concat_ws(';', customer, date), @rnr + 1, if(@cd := concat_ws(';', customer, date), 1, 1) ) ) as seqnum from a cross join (select @rnr := 0, @cd := '') params order by a.customer, a.date ) union all (select b.customer, b.date, b.invoice, (@rni := if(@cd = concat_ws(';', customer, date), @rni + 1, if(@cd := concat_ws(';', customer, date), 1, 1) ) ) as seqnum from b cross join (select @rni := 0, @cd := '') params order by a.customer, a.date ) ) cd group by customer, date, seqnum; filter=!=

虽然这意味着您无法执行类似于Drive API的查询,例如><方法似乎仍然支持通配符匹配。如果无法成功编写适当的正则表达式,则解决方案是收集q: "name contains 'some string'" entire 列表,然后使用您语言的字符串和regex方法过滤输出。 / p>

Snapshots#list

您可能会发现参考Compute API的Python文档或使用Python客户端的API资源管理器很有帮助: