我已使用以下链接完成了快照的自动创建:
https://blog.powerupcloud.com/2016/02/15/automate-ebs-snapshots-using-lambda-function/
如代码中所述,过滤是基于VM的 标记 完成的。我想创建除了某些名称之外的所有快照,而不是创建具有备份或备份标记的VM。
我不想为VM添加额外的标签。相反,我想在我的过滤器中写一个if条件。我会提供测试虚拟机的名称,如果虚拟机标签与之匹配,则不会创建快照。如果不匹配,则必须创建快照。我能这样做吗?
例如:我的帐户中有四个虚拟机。
{{1}}
例如,我需要能够写一个if条件,其中包括我的测试VM标签' Test1'。如果标记与此匹配,则不应创建快照。如果不匹配,则必须创建快照。
因此,为此,我应该如何更改代码?
答案 0 :(得分:1)
您只需使用密钥'备份'为您的所有三台服务器创建一个标记。该脚本仅过滤键名称上的实例。
答案 1 :(得分:1)
需要备份哪些VM的代码是:
reservations = ec.describe_instances(
Filters=[
{'Name': 'tag-key', 'Values': ['Backup', 'True']},
]
).get(
'Reservations', []
)
如您所见,它使用boto的describe_instances,过滤器限制了将要处理的实例数。如果您想备份除环境中非产品之外的所有内容,则应考虑使用Backup = NO标记非prod实例。
答案 2 :(得分:0)
备份所有服务器,但标记为标记的服务器
这需要两次拨打describe_instances()
。