Home CloudAWS AWS: Playing with tags

AWS: Playing with tags

by Kliment Andreev
5.6K views

I had to rename a bunch of instances in AWS to meet the new standard so I had to make a script.
The script is a simple Python 3 script that uses boto3. Change the DryRun variable to True if you want to test first.
Without further ado, here is the script.

import boto3

ec2 = boto3.resource('ec2')
# You can filter the instances here, e.g. running, stopped, VPC etc...
instances = ec2.instances.filter(
    Filters=[{'Name': 'instance-state-name', 'Values': ['running', 'stopping', 'stopped']},
             {'Name': 'vpc-id', 'Values': ['vpc-7abcdef']}])

Now, for each case just append the code below.

# Create a new tag with 'Application' as a key and 'SQL' as value on all instances that match
for instance in instances:
    instance.create_tags(DryRun=False,
        Tags=[{
            'Key': 'Application',
            'Value': 'SQL'
            }]
# Modify a tag. This example will change the value to 'Web' for all Keys that equal 'Application'
# If the Key 'Application' doesn't exist, it'll be added
for instance in instances:
    instance.create_tags(DryRun=False,
        Tags=[{
            'Key': 'Application',
            'Value': 'Web'
            }]
# Delete a value from a tag
for instance in instances:
    instance.create_tags(DryRun=False,
        Tags=[{
            'Key': 'Application',
            'Value': ''
            }]
# Delete a key/value pair
for instance in instances:
    instance.delete_tags(DryRun=False,
        Tags=[{
             'Key': 'Application',
             'Value': 'SQL'
# Delete a key
for instance in instances:
    instance.delete_tags(DryRun=False,
        Tags=[{
            'Key': 'Application'
            }])
# WARNING!!!!! Delete all tags
for instance in instances:
    instance.delete_tags()

Related Articles

Leave a Comment

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More