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サービスをメインに業務を行っています。趣味はドライブです。
担当記事一覧