APIを利用してMicrosoft Cost Managementのサブスクリプション一覧を取得する方法 -第一部-

Microsoft Cost Management(以下、Cost Management)はPowerShellやAzureCLIなどで操作をする事も出来るのですが、サブスクリプション一覧を取得する事が出来ません。

サブスクリプション一覧を取得するためにはAPIを使用する必要があったので、記事としてまとめてみました。

今回は第一部として、APIの実行準備までの方法をまとめています。

Azureへの接続

Azureへの接続は以下のコマンドで行うことができます。

Connect-AzAccount

※以下のようにサブスクリプションIDやテナントIDを指定することも可能です。

Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx' -SubscriptionId 'yyyy-yyyy-yyyy-yyyy'

APIの実行の事前準備

APIを実行するまでの事前準備として、以下の手順を実施する必要があります。

アクセストークンの取得

アクセストークンの取得は以下のコマンドで行います。

Get-AzAccessToken

※以前まではアクセストークンの取得はGet-AzContextで取得が可能でしたが、現在は取得ができない仕様になっています。そのため、上記のコマンドでアクセストークンの取得を実行してください。

トークンの指定

トークンの指定は以下のコマンドで行います。

$token = "Bearer " + $accessToken.Token

今回、認証にはBearerを使用するため、取得したアクセストークンの中でTokenだけを指定してBearerと連結する、という記載を行っています。

ヘッダーの指定

ヘッダーの指定は以下のコマンドで行います。

$header = @{ "Authorization" = $token; "Content-Type" = "application/json" }

ここでは、Authorizationとして指定したトークンを記載し、Content-Typeとしてapplication/jsonを指定しています。

URLの指定

URLの指定は以下のコマンドで行います。

$uri = "https://management.azure.com/providers/Microsoft.Billing/billingAccounts/XXXXXXXX/billingSubscriptions?api-version=YYYY-MM-DD-privatepreview"

ここでは、取得するCost ManagementのbillingAccountsのIDを指定したURLを記載します。

XXXXXXXXにbillingAccountsのIDを記載し、api-versionは自分のバージョンを確認して日付を記載してください。

おわりに

APIを実行する場合、PowerShellのコマンドレットのように1つコマンドを打てば良いだけではないので、手順がたくさんあります。しかし、APIでないと取得できないパラメータなどもあるので、今回の記事が参考になれば幸いです。

第二部では、APIの実行方法についてまとめます。

執筆担当者プロフィール
伊藤 潤人

伊藤 潤人(日本ビジネスシステムズ株式会社)

HC本部所属です。Azure・AWSともに経験がありますが、最近はAzureのPaaSサービスをメインに業務を行っています。趣味はドライブです。

担当記事一覧