48 lines
1.9 KiB
Python

import boto3
from pprint import pprint
# creds from ~/.aws/credentials
session = boto3.Session(profile_name="dev")
region1="us-east-1"
dev_ec2_client = session.client("ec2", region_name=region1)
dev_s3_client = session.client("s3", region_name=region1)
dev_sqs_client = session.client("sqs", region_name=region1)
# Get all instances' information
all_instances = dev_ec2_client.describe_instances()
with open("output.txt", "w") as out_f:
pprint(all_instances, stream=out_f)
print("Capacity Reservations:", len(all_instances["Reservations"]))
for idx, reservation in enumerate(all_instances["Reservations"]):
print("Reservation", idx + 1, ":-")
print("\tGroups:", len(reservation["Groups"])) # TODO: add grp info logging
print("\tInstances:", len(reservation["Instances"]))
for inst_idx, instance in enumerate(reservation["Instances"]):
print("\tInstance", inst_idx + 1, ":-")
print("\t\tInstance ID:", instance["InstanceId"])
print("\t\tInstance state:", instance["State"]["Name"])
print(f"\t\t{instance["InstanceType"]} in {instance["Placement"]["AvailabilityZone"]}")
print(f"\t\t{instance["CpuOptions"]["CoreCount"]}vCPU, {instance["Hypervisor"]} hypervisor")
print(f"\t\t{instance["PlatformDetails"]} on {instance["RootDeviceType"]} volume")
print("\t\tPublic IP address:", instance["PublicIpAddress"] if "PublicIpAddress" in instance else "N/A")
# Get all buckets' information
all_buckets = dev_s3_client.list_buckets()
with open("output.txt", "a") as out_f:
pprint(all_buckets, stream=out_f)
print("Buckets:", len(all_buckets["Buckets"]))
for bucket in all_buckets["Buckets"]:
print("\tName:", bucket["Name"])
# Get all queues' information
all_queues = dev_sqs_client.list_queues()
with open("output.txt", "a") as out_f:
pprint(all_queues, stream=out_f)
print("Queues:", len(all_queues["QueueUrls"]))
for queue in all_queues["QueueUrls"]:
print("\tQueue URL:", queue)