根据多个标签过滤实例

时间:2019-03-06 10:34:49

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

嗨,我无法根据多个标签过滤实例。当我在过滤器中提供两个标签时,它可以针对一种过滤条件进行处理,结果显示为null。我认为它在过滤器中取为“ AND”。有什么方法可以在过滤条件中以OR表示。我们具有环境和环境两个标签键,这将有助于获取两个详细信息,而不是分别使用两个过滤条件。

#define the connection region ec2 = boto3.client('ec2', region_name="us-east-1") s3 = boto3.client('s3')

custom_filter = [
    {
        'Name':'tag:Enviroment', 
        'Values': ['*']
    },   
    {
        'Name':'tag:environment',
        'Values': ['*']
    } 
]
     def lambda_handler(event,context):
    response = ec2.describe_instances(Filters=custom_filter)
    Reservation_details = response["Reservations"]
    for instance_details in Reservation_details:
        instances = instance_details.get("Instances")
        print(instances)

1 个答案:

答案 0 :(得分:0)

在AFAIU中,过滤器列表中的每个项目均被视为相交,而过滤器项目的VALUES列表中的项目则被视为联合。

要过滤标记键,其中实例的标记键为Environmentenvironment而不关心标记键的值,可以将custom_filter写为:

custom_filter = [
    {
        'Name':'tag-key', 
        'Values': ['Environment', 'environment']
    }
]