AWSの月額使用料をjavascriptで取得します。
以前記述した記事同様に「AWS SDK for JavaScript」を利用します。
AWSの月額使用料はCloudWatchで集計できます。
デフォルトのままだと集計されないのでまずは設定を変更します。
アカウントの設定メニューを開くと「請求アラートを受け取る」のチェックがあります。
ここをチェックして変更すると月額使用料がCloudWatchに集計されます。
なお、このサービスはバージニアリージョンのみ実装されているため閲覧するときはリージョンを切り替える必要があります。
(APIを叩くときも当然指定が必要)
続いて月額料金を取得するスクリプトを作成します。
var AWS = require("aws-sdk"); AWS.config.loadFromPath("./credentials.json"); AWS.config.update({region: 'us-east-1'}); endDate = new Date(); startDate = new Date(); startDate.setDate(endDate.getDate() - 1); var params = { Namespace : 'AWS/Billing', MetricName : 'EstimatedCharges', StartTime : startDate, EndTime : endDate, Period : 3000, Statistics : ['Maximum'], Dimensions : [{ Name: 'Currency', Value: 'USD'}] }; var cloudwatch = new AWS.CloudWatch(); cloudwatch.getMetricStatistics(params, function(err, data) { if (err) console.log(err, err.stack); else console.log(data); });
上記のスクリプトは前日の月額料金を取得するスクリプトになります。
月額料金は月初1日の0時にリセットされますので24時間分取得して一番高い値を出力するようにしています。
実行すると本日までの月額使用料が出力されます。
$ node getCharge.js Monthly fee $123.62