Finding all Amazon AWS Instances That Do Not Have a Certain Tag

前端 未结 9 2028
借酒劲吻你
借酒劲吻你 2020-12-23 12:09

I\'m trying to use the Amazon AWS Command Line Tools to find all instances that do not have a specified tag.

Finding all instances WITH a tag is simple enough, e.g.<

9条回答
  •  遥遥无期
    2020-12-23 12:28

    I use this python3 / boto script for very large inverse tag filtering operations:

    import boto3
    from botocore.config import Config
    
    # Attempts
    config = Config(
      retries = dict(
        max_attempts = 3
      )
    )
    
    # Tag(s)
    my_tags = [
      {
        "Key": "backup",
        "Value": "true"
      }
    ]
    
    # Owner ID Filter
    owner_id = 'SOME_OWNER_ID'
    
    # Connection
    ec2 = boto3.client("ec2", config=config)
    
    # Instances
    def tag_instances():
      # All Reservations [instances] (tagged or untagged)
      all_reservations = ec2.describe_instances(Filters = [{'Name': 'owner-id', 'Values':[owner_id]}])
    
      # Append each InstanceId in all_reservations to all_instances
      all_instances = []
      for all_reservation in all_reservations['Reservations']:
        for all_instance in all_reservation['Instances']:
          all_instances.append(all_instance['InstanceId'])
    
      # Append each InstanceId with backup:true or backup:false to tagged_instances
      tagged_reservations = ec2.describe_instances(Filters = [{'Name': 'owner-id', 'Values':[owner_id]},{'Name': 'tag:backup', 'Values':['true','false']}])
      tagged_instances = []
      for tagged_reservation in tagged_reservations['Reservations']:
        for tagged_instance in tagged_reservation['Instances']:
          tagged_instances.append(tagged_instance['InstanceId'])
    
      # Append each InstanceId in all_instances and not in tagged_instances to untagged_instances
      untagged_instances = [all_instance for all_instance in all_instances if all_instance not in tagged_instances]
    
      # Print untagged InstanceId
      print("untagged_instanceids:",untagged_instances)
    

提交回复
热议问题