#!/bin/python3 import boto3 # Create an EC2 client ec2_client = boto3.client('ec2') # Retrieve instance IDs and Spot Instance Request IDs response = ec2_client.describe_instances() instance_ids = [] spot_request_ids = [] for reservation in response['Reservations']: for instance in reservation['Instances']: print(instance) instance_ids.append(instance['InstanceId']) if 'SpotInstanceRequestId' in instance: spot_request_ids.append(instance['SpotInstanceRequestId']) # Terminate instances for instance_id in instance_ids: print(f"Terminating instance: {instance_id}") ec2_client.terminate_instances(InstanceIds=[instance_id]) # Cancel Spot Instance Requests for spot_request_id in spot_request_ids: print(f"Cancelling Spot Instance Request: {spot_request_id}") ec2_client.cancel_spot_instance_requests(SpotInstanceRequestIds=[spot_request_id]) # Check the status of the terminated instances terminated_instances = ec2_client.describe_instances(InstanceIds=instance_ids) for reservation in terminated_instances['Reservations']: for instance in reservation['Instances']: print(f"Instance ID: {instance['InstanceId']}, State: {instance['State']['Name']}")