Form Recognizerの料金は読み取り枚数に対して課金される仕組みです。そのため、どのくらい使用しているかは確認したくなると思います。
一番簡単な確認方法としてはAzureポータルのForm Recognizerのリソースのページから確認することができます。
ただ、この方法だと権限が必要だったり、わざわざページにアクセスしなければいけなかったり、面倒なことも多いです。
そこで、今回はAPI経由で読み取り枚数を取得する方法を解説しようと思います。
前提
- Visual Studio CodeのREST Clientを利用する
- Azure ADにアプリの登録ができており、クライアントシークレットを作成済みであること
手順
1. Form RecognizerリソースのIAM設定
作成済みのAzure ADアプリに対して「監視閲覧者」の権限を付与します。
具体的な手順は以下を参考にしてください。
2. Azure ADのアクセストークンを取得
Azureリソースへアクセスすためのトークを取得します。
POST https://login.microsoftonline.com/[テナントID]/oauth2/v2.0/token Host: login.microsoftonline.com Content-Type: application/x-www-form-urlencoded client_id=[クライアントID] &scope=https://management.core.windows.net/.default &client_secret=[クライアントシークレット] &grant_type=client_credentials
これを実行すると以下のような結果が取得できます。
{ "token_type": "Bearer", "expires_in": 3599, "access_token":"eyJ..." }
access_token
は次の手順で利用します。
3. Form Recognizerのメトリクスから読み取り枚数を取得
API経由でのメトリクスへのアクセスは以下のドキュメントに記載があります。
ただ、Form Recognizerの読み取り枚数を取得するにはここだけだと分かりにくいと思います。(自分は苦労しました)
以下は2023年3月の読み取り枚数を1日ごとに取得する例です。
GET https://management.azure.com/subscriptions/[サブスクリプションID]/resourceGroups/[リソースグループ名]/providers/Microsoft.CognitiveServices/accounts/[リソース名]/providers/Microsoft.Insights/metrics?timespan=2023-03-01T00:00:00Z/2023-03-31T23:59:00Z&metricnames=ProcessedPages&interval=P1D&api-version=2018-01-01 ヘッダー: Authorization: Bearer [Azure ADのアクセストークン(手順1で取得したaccess_token)] Host: management.azure.com
URLに設定しているパラメータの意味は以下の通りです。
- timespan:どの期間のデータを取得したいかを設定します
- metricnames:何のデータを取得したいかを指定します(ここ重要!)
- interval:どの間隔でデータを取りたいかを設定します(上記例の
P1D
では1日ごと) ←指定しないと1分毎のデータを取得します
特に重要なのはmetricnames
です。ここでProcessedPages
と設定しないとProcessedPagesの値が取得できません。
結果は以下のように取得できます。
{ "cost": 44638, "timespan": "2023-03-01T00:00:00Z/2023-03-31T23:59:00Z", "interval": "P1D", "value": [ { "id": "/subscriptions/.....", "type": "Microsoft.Insights/metrics", "name": { "value": "ProcessedPages", "localizedValue": "Processed Pages" }, "displayDescription": "Number of pages processed", "unit": "Count", "timeseries": [ { "metadatavalues": [], "data": [ { "timeStamp": "2023-03-01T00:00:00Z", "total": 0 }, { "timeStamp": "2023-03-02T00:00:00Z", "total": 0 }, (省略) { "timeStamp": "2023-03-09T00:00:00Z", "total": 3 }, { "timeStamp": "2023-03-10T00:00:00Z", "total": 20 }, (省略) ] } ], "errorCode": "Success" } ], "namespace": "Microsoft.CognitiveServices/accounts", "resourceregion": "westus2" }
totalの値をすべて足し合わせれば月の利用枚数を取得できます。
おわりに
以上、Form Recognizerの利用枚数の取得方法について書きました。
最初に仕組みさえ作ってしまえは簡単にチェックできるようになるのでぜひ使ってみてください。