如何通过检查实例名称中的字符串来过滤实例

时间:2018-07-05 22:32:10

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

我正在编写一个python脚本来检索未正确标记的实例列表。我需要通过过滤来检查名称中是否存在特定的字符串。

最好的方法是什么?

我打算使用describe_instances并使用标签过滤器(键为“名称”),但是该过滤器要求我提供标签的完整值(即实例名称),但我需要能够进行搜索使用名称的子集。

可以使用客户端吗?

2 个答案:

答案 0 :(得分:0)

最简单的方法是在不使用过滤器的情况下调用describe_instances(),然后循环遍历结果并在Python中执行自己的过滤和修复逻辑。

一般逻辑是:

Create EC2 client
Call describe_instances
Loop through results['Reservations']['Instances']:
  Loop through instance['Tags']:
    if Key == 'Name' and "bad-string" in Value:
      Fix tag

如果实例数超过1000,则必须用describe-instances()重新调用NextToken

答案 1 :(得分:0)

对于正在阅读本文的人,您可以执行John Rotenstein在其答案中建议的操作,或者,也可以在标签名称中使用通配符'*',这样您的过滤器将类似于:

filters = [{'Name':'tag:Name', 'Values':['string*']}]