aws/delete.py

79 lines
2.9 KiB
Python
Raw Normal View History

2024-12-20 20:58:05 +01:00
import boto3
import json
def delete_security_group(ec2_client, security_group_id):
ec2_client.revoke_security_group_ingress(
GroupId=security_group_id,
IpPermissions=[
{
'IpProtocol': 'tcp',
'FromPort': 22,
'ToPort': 22,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
},
{
'IpProtocol': 'tcp',
'FromPort': 8080,
'ToPort': 8080,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
}
]
)
ec2_client.delete_security_group(GroupId=security_group_id)
print(f"Security group {security_group_id} deleted.")
def delete_key_pair(ec2_client, key_name):
ec2_client.delete_key_pair(KeyName=key_name)
print(f"Key pair {key_name} deleted.")
def delete_instances(ec2_client, instance_ids):
ec2_client.terminate_instances(InstanceIds=instance_ids)
print(f"EC2 instances {instance_ids} terminated.")
def delete_load_balancer(elbv2_client, load_balancer_arn):
elbv2_client.delete_load_balancer(LoadBalancerArn=load_balancer_arn)
print(f"Load Balancer {load_balancer_arn} deleted.")
def delete_target_group(elbv2_client, target_group_arn):
elbv2_client.delete_target_group(TargetGroupArn=target_group_arn)
print(f"Target Group {target_group_arn} deleted.")
def delete_internet_gateway(ec2_client, igw_id, vpc_id):
ec2_client.detach_internet_gateway(InternetGatewayId=igw_id, VpcId=vpc_id)
ec2_client.delete_internet_gateway(InternetGatewayId=igw_id)
print(f"Internet Gateway {igw_id} deleted.")
def delete_route_table(ec2_client, route_table_id):
ec2_client.delete_route_table(RouteTableId=route_table_id)
print(f"Route Table {route_table_id} deleted.")
def delete_vpc(ec2_client, vpc_id):
ec2_client.delete_vpc(VpcId=vpc_id)
print(f"VPC {vpc_id} deleted.")
def delete_subnet(ec2_client, subnet_id):
ec2_client.delete_subnet(SubnetId=subnet_id)
print(f"Subnet {subnet_id} deleted.")
def delete_resources(ec2_client, elbv2_client, resources):
delete_instances(ec2_client, resources["instance_ids"])
delete_load_balancer(elbv2_client, resources["load_balancer_arn"])
delete_target_group(elbv2_client, resources["target_group_arn"])
delete_security_group(ec2_client, resources["security_group_id"])
delete_key_pair(ec2_client, resources["key_name"])
delete_internet_gateway(ec2_client, resources["igw_id"], resources["vpc_id"])
delete_route_table(ec2_client, resources["route_table_id"])
delete_subnet(ec2_client, resources["subnet_id"])
delete_vpc(ec2_client, resources["vpc_id"])
def main():
with open("resources.json", "r") as file:
resources = json.load(file)
ec2_client = boto3.client("ec2")
elbv2_client = boto3.client("elbv2")
delete_resources(ec2_client, elbv2_client, resources)
if __name__ == "__main__":
main()