AWS を使って SMS を送信する機会があったので、送信にかかった利用金を CloudWatch Metrics で取得するコードを Ruby で書きました。その覚書。
- Amazon SNS を使用した CloudWatch トピックのモニタリング - Amazon Simple Notification Service
- Class: Aws::CloudWatch::Client — AWS SDK for Ruby V3
require 'aws-sdk-cloudwatch' params = { metric_data_queries: [ { id: 'spentUSD', metric_stat: { metric: { namespace: 'AWS/SNS', metric_name: 'SMSMonthToDateSpentUSD' }, period: 24 * 60 * 60, # seconds per day stat: 'Maximum' }, } ], start_time: Time.new(2020, 1, 1), end_time: Time.new(2020, 4, 1) } client = Aws::CloudWatch::Client.new(region: 'ap-northeast-1') metric_data_results = [] loop do response = client.get_metric_data(params) metric_data_results.concat(response.metric_data_results) break unless response.next_token params.next_token = response.next_token end pp metric_data_results.flatten