APS Design Automation API を利用するアプリをお持ちで、GET workItems/:id エンドポイントを使用して WorkItem のステータスを高頻度でチェックしている場合は、今後の Rate Limit(呼び出し数制限)の変更についてご留意ください。
2025 年 5 月 1 日以降、GET workitems/:id エンドポイントに対して、Client ID あたり 150 RPM の呼び出し数制限が適用されます。(1 分間の呼び出しは 150 回まで)
Rate Limit(呼び出し数制限)
Rate Limit は、ネットワークによって送受信されるトラフィックの量を制御するために使用されます。アプリが制限数を超えて呼び出しをおこなうと、制限数に達した後に呼び出しが失敗し、429 レスポンスが返されます。これは、データの流れを改善し、DoS 攻撃などを軽減することでセキュリティを強化する目的で一般的に使用される手法です。
スケーラブルなソリューションのコードを作成時には、この Rate Limit を考慮に入れる必要があります。Rate Limit に達した場合には、"Retry-After" レスポンス ヘッダーで指定された時間が経過した後に、再度呼び出しをおこなう必要があります。下記の記述は、Rate Limit(呼び出し数制限)に達した際のレスポンス例です。
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 25
Server: Apigee Router
Content-Length: 44
{"developerMessage":"Quota limit exceeded."}
必要なアクション
アプリが 1 分あたり 150 回以上 GET workitems/:id エンドポイントを呼び出している、または予想される場合は、前述のように 429 ステータス コードを適切に処理するようにしてください。
「ポーリング」は、GET workitems/:id エンドポイントを繰り返し呼び出す一般的な方法ですが、 Rate Limit(呼び出し数制限)による APS 環境のパフォーマンス低下の懸念を考慮すると、アプリ改良に際していくつかの代替策が存在します。
- OnComplete コールバックを使用する。
- 複数の作業WorkIten を処理する場合には、GET workitems/:id エンドポイントを何度も呼び出す代わりに、POST workitems/status を使用して WorkItem の配列のステータスを取得する
- OnComplete コールバックがシナリオで機能しない場合には、WebSocket API を使用して WorkItem の状態をフェッチする。
- GET workitems/:id エンドポイント呼び出しが避けられない場合には、毎分 150 回以下の呼び出しになるよう呼び出し回数を抑制する。
Rate Limit(呼び出し数制限)の詳細については、こちら の内容をご確認ください。
ご不明な点がございましたら、APS サポート お問い合わせください。
※ 本記事は Design Automation GET WorkItems/:id will be enforced with Rate Limit 150 Rate Per Minute (RPM) | Autodesk Platform Services から転写・意訳・補足したものです。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。