Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过检查实例名称中的字符串来筛选实例_Python_Amazon Web Services_Amazon Ec2_Boto3 - Fatal编程技术网

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

Python 如何通过检查实例名称中的字符串来筛选实例,python,amazon-web-services,amazon-ec2,boto3,Python,Amazon Web Services,Amazon Ec2,Boto3,我正在编写一个python脚本,以检索错误标记的实例列表。我需要通过检查名称中是否存在特定字符串进行筛选 最好的方法是什么 我打算使用descripe_实例并使用标记过滤器(其中键为“Name”),但该过滤器要求我提供标记的完整值(即实例名称),但我需要能够使用名称的子集进行搜索 使用客户端可以做到这一点吗?最简单的方法是调用descripe\u instances(),而不使用过滤器,然后循环遍历结果并在Python中执行自己的过滤和修复逻辑 一般逻辑是: Create EC2 client

我正在编写一个python脚本,以检索错误标记的实例列表。我需要通过检查名称中是否存在特定字符串进行筛选

最好的方法是什么

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


使用客户端可以做到这一点吗?

最简单的方法是调用
descripe\u 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多个实例,则必须使用
NextToken
重新调用
descripe-instances()
。对于阅读本文的任何人,您可以按照John Rotenstein在其回答中的建议执行,或者,您也可以在标记名中使用通配符“*”,因此您的筛选器类似于:

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

谢谢你,约翰!是的,这是可行的,但在我的例子中,我有大量的实例(超过15k),所以这将没有那么有效。在做了一些研究之后,我在下面发布了另一个解决方案,我认为这也很有效,使用了过滤器和通配符“*”。