【问题标题】:Python boto lists volumes name followed by "Volumes:"Python boto 列出卷名,后跟“卷:”
【发布时间】:2014-01-21 11:06:02
【问题描述】:

我是 python 新手,正在尝试编写一个脚本来拍摄每日 amazon ebs 快照。下面是列出卷并将它们输入到 for 循环中的快照命令的脚本。

#!/usr/bin/python #用于清除 AWS Ebs 快照的脚本。 从 boto.ec2 导入 EC2Connection 进口时间 My_access_key = "xxxxxxxxxxxxxxx" My_secret_key = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" conn = EC2Connection(My_access_key, My_secret_key) # 列出卷 vol_id = conn.get_all_volumes(volume_ids=None, filters=None) 打印 vol_id 对于 vol_id 中的 i: 快照 = conn.create_snapshot(i, '每日快照') 打印“创建快照:”,快照

问题是当我以这种方式列出卷时“[Volume:vol-a50057e8, Volume:vol-ba693ef7]”

并且创建快照命令只会将此作为有效输入“vol-a50057e8”。我尝试修剪,但不起作用。

谢谢, 斯沃鲁普。

【问题讨论】:

    标签: python amazon-web-services amazon-ec2 boto


    【解决方案1】:
    volumes = conn.get_all_volumes(volume_ids=None, filters=None)
    # what you get here is a list of volume objects (not just IDs of those)
    for volume in volumes:
       # each volume object has a field "id" which contains what you need:
       snapshot = conn.create_snapshot(volume.id, "Daily-Snapshot")
    

    【讨论】:

    • 感谢 Alfe,这对我有帮助。
    • 不要评论您的感谢,请随意投票任何对您有帮助的答案,如果有人完全解决了您的问题,您应该接受它。
    【解决方案2】:

    这只是 Volume 对象的“文本”表示 get_all_volumes 返回 Volume 对象,所以你可以这样做

    for vol in conn.get_all_volumes(...):
       do_stuff(vol.id)
    

    参考:http://docs.pythonboto.org/en/latest/ref/ec2.html#module-boto.ec2.volume

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      相关资源
      最近更新 更多