aws-cli v2でAWS Invoiceのサマリーを取得してみる

この記事を書いたメンバー:

SAITO Keita

aws-cli v2でAWS Invoiceのサマリーを取得してみる

目次

AWSから発行されるInvoiceの情報をマネジメントコンソールからポチポチ取得するのではなく、APIで取得したい。

上記の要望は、だいぶ昔から各所で言われているのを見かけていましたが。
2025年6月6日、下記のリリースが発表されました。

AWS Invoice Summary API is now generally available

ListInvoiceSummariesといったAPIがリリースされ、こちらのAPIを利用するとInvoiceのサマリが取得できるようです。

一部の人たちにとっては待望な機能かと思います。

今回、こちらのAPIを利用してみたので説明します。

利用するaws-cli v2のバージョンについて

今回、ListInvoiceSummariesのAPIを実行するのが目的ですが、本記事ではAPIを直接叩くような事はせず、aws-cli v2で提供されるコマンドを利用して実行しています。

なお新しくリリースされた機能なので、念のため該当のAPIを操作するコマンドがaws-cli v2で提供されているか確認してみます。

aws-cli v2 CHANGELOG.rst

上記のaws-cli v2のCHANGELOGを確認すると、バージョン2.27.29に

api-change:invoicing: Added new Invoicing ListInvoiceSummaries API Operation

と記載がありました。 aws-cli v2のバージョンが2.27.29以上ならListInvoiceSummariesを操作するコマンドが用意されていそうです。

aws-cli v2 - invoicing

またaws-cli v2のinvoicingサービスのドキュメントを確認すると、list-invoice-summariesといったコマンドが用意されており、これが追加されたコマンドのようです。

このため本記事で紹介するコマンドを実行する場合は、aws-cli バージョンを2.27.29以上にアップデートして実行してください。

なおv1の場合は、1.40.29で追加されてました。


今回実行している環境

  • Windows 11 24H2
  • PowerShell 7.6.0-preview.4
  • aws-cli/2.27.34 Python/3.13.3 Windows/11 exe/AMD64

aws invoicing list-invoice-summaries のドキュメントを確認してみる

aws-cli v2 - list-invoice-summaries

コマンドを実行するにあたって、まずはドキュメントを確認します。

Synopsis

Synopsis をみるとlist-invoice-summariesコマンドを実行するに必須オプションは--selector <value> と記載がありました。

image.png












Options

Options をみると、selectorの記法は ResourceType=string,Value=string と記載すればよさそうな事がわかります。

またselectorで指定するResouceTypeは INVOICE_ID or ACCOUNT_ID とふたつの切り口がありました。

本記事ではそれぞれ実行していきます。

image.png



ResouceType を INVOICE_ID で実行してみる

ここでは下記のようにselectorでINVOICE_IDを指定して実行します。

請求書番号については、適時、マネジメントコンソールから確認などして該当するものに読み替えて実行してください。

aws invoicing list-invoice-summaries --selector "ResourceType=INVOICE_ID,Value=<<請求書番号>>" --output json

image.png


実行すると、上記のようにInvoice情報が取得できました。

ResouceType を ACCOUNT_ID で実行してみる

ここでは下記のようにselectorでACCOUNT_IDを指定して実行します。
# 実行するとエラーになる
aws invoicing list-invoice-summaries --selector "ResourceType=ACCOUNT_ID,Value=<<アカウントID>>" --output json

image.png


実行すると上記のようにBillingPeriod and TimePeriod cannot both be null when retrieve invoice summary by account IDとエラーが表示されました。

エラーメッセージを読むと、ACCOUNT_IDを指定する場合はfilterオプションにある、BillingPeriodとTimePeriodが両方nullだとダメだったようです。

ここでは下記のようにBillingPeriodを2025年05月を指定して対応します。

aws invoicing list-invoice-summaries --selector "ResourceType=ACCOUNT_ID,Value=<<アカウントID>>" --filter "BillingPeriod={Month=05,Year=2025}" --output json

filterオプションでBillingPeriodを指定したところ、今度はエラーが起こらず下記のように結果が返ってきました。

image.png



なおfilterオプションの記法のようになっていました。

image.png


出力される構造についてPDFと比較してみる

output

出力される構造についてはドキュメントのoutputに記載がありますが、ここではコマンドの実行結果とPDFのInvoiceを見比べて、どのような項目が取得できるのか確認してみます。

TotalAmount

BaseCurrencyAmountのTotalAmountが請求総額になっており、PDFのTOTAL AMOUNTと一致していました。

image.png


image.png









AmountBreakdown

BaseCurrencyのAmountAmountBreakdownでPDFのInvoice Summaryに相当する金額が表示されていました。



image.png











CurrencyExchangeDetailsのRate

CurrencyExchangeDetailsのRateでPDFの為替レートが記載されていました


サマリーの粒度について

今回のリリースをみて、サマリーって言われているが、どの程度サマリーした情報が取得できるのかと気になっていましたが。

PDFのInvoice Summary相当のデータまでしか取得できず、アカウント単位のサマリやサービスごとのサマリなどは出力構造には存在していませんでした。

このためPDFには記載のある、サービスごとのサマリーやアカウントごとのサーマリーといった単位では情報を取得する事はできませんでした。image.png







総評

AWS から発行されるInvoiceのサマリーがついにAPIで取得できると聞いて、実行してみました。

実行したところInvoiceのトータル金額、為替レートの取得には利用できそうです。

ただし、サマリーの単位としてアカウント単位やサービス単位のデータは構造として持っていないので、そこらへんを確認したい場合は、相変わらずマネジメントコンソールの請求画面やPDFを確認する必要があります。

この点については将来的にInvoiceのDetailを取得できる機能が追加される事を期待したい所です。


カテゴリー
タグ

この記事を書いたメンバー

Pick upピックアップ

Search記事を探す

キーワード

SAPシステムや基幹システムのクラウド移行・構築・保守、
DXに関して
お気軽にご相談ください

03-6260-6240 (受付時間 平日9:30〜18:00)