毎日のAWS料金をSlackに送る


やりたいこと

個人で使用しているAWSの料金を知る方法をまとめました。

手順

Lambdaを作成する

実際に取得しているところを抜粋しました。

const params = {
  Granularity: 'DAILY',
  Metrics: ['UnblendedCost'],
  GroupBy: [
    {
      Type: 'DIMENSION',
      Key: 'SERVICE',
    },
  ],
  TimePeriod: {
    Start: '<YYYY-MM-DD>',
    End: '<YYYY-MM-DD>',
  },
};

const AWS = require('aws-sdk');
const costExplorer = new AWS.CostExplorer({
  apiVersion: '2017-10-25',
  region: 'us-east-1',
});
const costAndUsage = await costExplorer.getCostAndUsage(params).promise();
const items = JSON.parse(JSON.stringify(costAndUsage.ResultsByTime));


const costs = items.map((item) =>
  item.Groups.map((group) => {
    const serviceName = group.Keys[0];
    const value = group.Metrics.UnblendedCost.Amount * < Rate >;
    return `${serviceName}: \¥${value}`;
  })
);