はじめに
Form Recognizerのカスタムモデルでモデルを作成した後、他のリソースにモデルをコピーしたいということがありました。例えば開発環境と本番環境で分けたい場合などです。
こういった場合にどのようにコピーするのか気になったので調べてみました。
環境
Visual Studio Code 1.72.2 (拡張機能で「REST Client」を使用)
REST Clientはエディタ上でHTTPリクエストを送信して結果を受信することができます。詳しくは以下をご覧ください。
事前準備
コピー元、コピー先の両方のForm Recognizerのリソースから以下の情報を取得しておきます。
- キー(画像の①)
- エンドポイント(画像の②)
手順
こちらのドキュメントに方法が記載されているので、これをもとに進めていきます。
まず始めにコピー先にコピーの承認要求を送ります。
リクエストの方法は以下の通りです。
POST {コピー先のエンドポイント}formrecognizer/documentModels:authorizeCopy?api-version=2022-08-31 Ocp-Apim-Subscription-Key: {コピー先のキー} { "modelId": "{コピー後のモデルIDを指定}" }
結果が200 OK
になっていれば成功です。
本文には以下のようなJSONがあります。
{ "targetResourceId": "...", "targetResourceRegion": "...", "targetModelId": "...", "targetModelLocation": "...", "accessToken": "...", "expirationDateTime": "..." }
ここは次で使用するのでコピーしておきます。
次にコピー元に対してコピー操作を行います。
本文のJSONは先ほど受け取ったJSONをそのまま貼り付けます。
POST {コピー元のエンドポイント}formrecognizer/documentModels/{コピーするモデルのID}:copyTo?api-version=2022-08-31 Ocp-Apim-Subscription-Key: {コピー元のキー} { "targetResourceId": "...", "targetResourceRegion": "...", "targetModelId": "...", "targetModelLocation": "...", "accessToken": "...", "expirationDateTime": "..." }
応答が202\Accepted
になっていれば成功です。
最後にコピー先にモデルがコピーされているか確認しましょう。
以下を実行するとForm Recognizerのリソースに存在するモデルの一覧を取得することができます。
GET {コピー先のエンドポイント}formrecognizer/documentModels?api-version=2022-08-31 Ocp-Apim-Subscription-Key: {コピー先のキー}