概要
準備 python,boto3をインストール、Cloudwatchで料金のアラームを作成しておく必要があります。
AWSのcloudwatchに接続する 下記のリンクにPythonでAWSに接続する方法があります。 「boto3」を使い,AWSに接続する方法
作成したアラームの情報を抜き出す boto3.client.get_metric_statistics() もしくは boto3.client.get_metric_data() を使い、情報を抽出します。 下記で示す例ではboto3.client.get_metric_statistics()を使っています。
4.1日の使用料を抜き出す 抽出したデータからさらに必要な値を抽出し、出力する
例
今回は、今日1日で使用した額を表示できる様にしました。
#coding:utf-8 import boto3 from boto3.session import Session import datetime import dateutil.tz import re accesskey = "************************" secretkey = "************************" region = "us-east-1" #cloudwatchに接続 session = Session( aws_access_key_id=accesskey, aws_secret_access_key=secretkey, region_name=region) client = session.client('cloudwatch') #1日の最大値、最小値を抜き出す get_metric_statistics_max = 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'] ) get_metric_statistics_min = 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=['Minimum'] ) #get_metric_stastics_*から最大最小を抜き出し、1日の料金を表示する max = re.findall('[0-9]{2}.[0-9]{1}',str(get_metric_statistics_max)) min = re.findall('[0-9]{2}.[0-9]{1}',str(get_metric_statistics_min)) answer = float(max[1]) -float(min[1]) print(str(answer)+"$")