Y

Azure Face API Freeインスタンスの制限について

Face APIの料金体系

https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/face-api/:title

インスタンスタイプが以下2つあります。

1.Free - Web/コンテナー

2.Standard - Web/コンテナー

「1.Free - Web/コンテナー」を選択している場合は、利用制限があり、制限以上のトランザクションはエラーが発生します。

利用制限は以下のとおりです。

  • 1分間(60秒)にコールできるAPI数 = 20件 (3秒に1回コールできる)

  • 30000件(1ヶ月の最大) / 20件(1分間の最大) = 1500分(1分間中の制限の上限を利用した場合の、最大継続時間) = 25時間

トランザクションの説明は上記サイトに記載されています。

100 万単位でのトレーニングが可能な操作 (2018 年 3 月 1 日から利用可能) の場合、トレーニングした画像 1,000 個ごとに 1 トランザクションとしてカウントされます。"LargePersonGroup - Train" と "LargeFaceList - Train" はこのカテゴリに属します。このカテゴリの各操作では、画像の数が最も近い 1,000 個単位に丸められます。たとえば、849,500 個の画像を含む "LargeFaceList - Train" 操作は 850 トランザクションとしてカウントされます。他のすべての操作では、API 呼び出しごとに 1 トランザクションとしてカウントされます。

本記事では、「1.Free - Web/コンテナー」を選択した状態で、制限以上のトランザクションを実行した場合の挙動を見てみます。

制限以上のトランザクションの実行方法

1.Azureポータルを開き、すべてのリソースをクリック

Microsoft Azure

f:id:yzono:20201108183230p:plain

2.対象インスタンスをクリック

f:id:yzono:20201108183302p:plain

3.価格レベルをクリック

f:id:yzono:20201108183326p:plain

4.F0 Freeが選択されていることを確認

f:id:yzono:20201108183353p:plain

5.1分間に20回以上のトランザクションを実行する

for ((i=1;i<=25;i++)); do sleep 1; time curl -X POST -H "Ocp-Apim-Subscription-Key: XXX" -H "Content-Type: application/json" -d '{"url": "https://azurecomcdn.azureedge.net/cvt-9281d9db0c63a479d39019e02b1bc35d712622992174d8bb4dcb33f728511a17/images/shared/cognitive-services-demos/face-detection/detection-1-thumbnail.jpg"}' "https://dev-inst-cog-faced.cognitiveservices.azure.com/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false&recognitionModel=recognition_03&returnRecognitionModel=false&detectionModel=detection_02"; done


[{"faceId":"2d2274f1-9af4-4f74-b82f-26570d5cb42b","faceRectangle":{"top":22,"left":62,"width":71,"height":87}}]
real    0m0.069s
user    0m0.018s
sys 0m0.006s

{"error":{"code":"429","message": "Requests to the Face - Detect Operation under Face API - v1.0 have exceeded rate limit of your current Face F0 pricing tier. Please retry after 30 seconds. To increase your rate limit switch to a paid tier."}}
real    0m0.093s
user    0m0.020s
sys 0m0.008s

想定どおり20回を超えた場合に制限超えのメッセージが表示される。