python boto3でawsのprofileを複数指定してそれぞれの請求額を取得する
たくさんアカウントを抱えていて、一気に確認したいのと、boto3使ってみたかったので。
~/.aws/credentialsのprofileをprofilesに列挙して実行
# coding:utf-8 from boto3.session import Session import datetime profiles = ['profile1', 'profile2'] for profile in profiles: session = Session(profile_name=profile) client = session.client('cloudwatch', region_name = 'us-east-1') bill_data = client.get_metric_statistics( Namespace='AWS/Billing', MetricName='EstimatedCharges', Dimensions=[ { 'Name': 'Currency', 'Value': 'USD' } ], StartTime=datetime.datetime.today() - datetime.timedelta(days=1), EndTime=datetime.datetime.today(), Period=86400, Statistics=['Maximum'] )['Datapoints'][0] print "{0:15s}".format(str(profile)) + "{0:8s}".format(str(bill_data['Maximum'])) + ' (USD)'
実行結果
profile1 653.16 (USD) profile2 55.11 (USD)
うーん(・∀・)イイネ!!
他の機能も使ってみようっと