繁体   English   中英

Boto3 - Delete_snapshot不评估变量

[英]Boto3 - Delete_snapshot not evaluating variables

我正在尝试运行boto3来循环超过14天的快照。 它可以找到超过14天的所有快照,并且我已经验证了一切正常。 问题是当它通过字典试图删除时,看起来函数没有正确评估变量(见下文)。

它似乎只是将它包含在一个字符串中。

如果标签找到准备删除的快照,则循环使用“for snapshot in ...”在dict中运行。 这是'if'部分:

 if snap_start_time < expiry: # check if it's more than a <expiry> old
   print "Deleting Snapshot: " + snapshot['SnapshotId']
   response = ec2client.delete_snapshot(
     SnapshotId=snapshot['SnapshotId']
   )

错误在这里:

Deleting Snapshot: snap-f4f0079d
Traceback (most recent call last):
  File "./aws-snap.py", line 27, in <module>
SnapshotId=snapshot['SnapshotId']
  File "/usr/lib/python2.6/site-packages/botocore/client.py", line 159, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/lib/python2.6/site-packages/botocore/client.py", line 494, in _make_api_call
    raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidSnapshot.NotFound) when calling the DeleteSnapshot operation: None

有线索吗? \\ O /

事实证明,直接从字典中引用是一个坏主意。 它需要包装在str()中,并提供DryRun = False选项。

我怀疑SnapshotId可能不会作为字符串传递。 将SnapshotId更改为字符串格式并将其传递以进行删除。 str(snapshot['SnapshotId'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM