import boto3 import sys import logging from openpyxl import Workbook from config import Config from report import EcsReport, LambdaReport def main(args): logging.getLogger().setLevel('INFO') wb = Workbook() ecs_ws = wb.create_sheet(title='ECS') lambda_ws = wb.create_sheet(title='Lambda') ecs_ws.append( [ 'ACCOUNT', 'ECS CLUSTER', 'ECS SERVICE', 'NUM OF TASKS', 'NUM OF CONTAINERS', 'TOTAL NUM OF CONTAINERS', 'MIN NUM OF TASKS', 'MAX NUM OF TASKS', 'MAX NUM OF CONTAINERS', 'TYPE' ] ) lambda_ws.append( [ 'ACCOUNT', 'FUNC NAME', 'RUNTIME', 'NUM OF INVOCATIONS', ] ) profiles = Config.get_aws_profiles_list() for profile in profiles: logging.info(f'generate report for {profile}') ecs_report = EcsReport(profile) lambda_report = LambdaReport(profile) for row in ecs_report.make_report(): ecs_ws.append(row) for row in lambda_report.make_report(): lambda_ws.append(row) wb.save('report.xlsx') return 0 if __name__ == "__main__": sys.exit(main(sys.argv[1:]))