Web API の切り替え

はじめに

本ドキュメントを通じて、 ABEJA Platform の GUI を利用して 新たに作成したモデルもしくは推論コードを Web API としてデプロイし、エンドポイントを切り替える方法紹介します。

モデルバージョンの追加

ここでは、その学習済みモデルで新たにモデルバージョンを追加して、そのバージョンを WebAPI としてデプロイした後に、現在使用されている Web API と切り替えます。

学習結果からモデルをバージョンを管理する

モデルについては、学習ジョブが完了している場合、自動的にモデルとして登録・バージョン管理が実施されます。もし、個別にアップロードをする場合はモデルの登録を参照ください。

推論コードをバージョン管理する

左部メニューの 「Codes」 をクリックし、「Create Version」を選択します。

項目 備考
Source Code - 推論コードをZip形式にして、アップロード / テンプレートの選択
Code Version 1.0.1 推論コードの管理バージョンを入力
Runtime abeja-inc/all-cpu:19.04 推論を実施するためのDockerイメージを選択
Model Handler predict:handler 推論コードを実施するためのHandlerを指定

新しい推論コードのバージョンが登録されました。

新しいモデルバージョンで作成した HTTP サービスに切り替える

「Services」から「Create HTTP Service」ボタンをクリックします。

「Cloud」タブを選択し、入力フォームに次の値を設定し、”Create HTTP Service” をクリックし、HTTP サービスを作成します。

項目 備考
Code 1.0.1 Deploymentで管理している推論コードのバージョン指定
Model fashion_classification モデルの指定
Model Version XXXXXXXXXXXX 利用する学習ジョブID
Instance Type cpu-0.25 HTTPサービスのスペック
Instance Number 1 提供するインスタンスの数

HTTP サービスに登録した環境変数は Service ID の右のアイコンをクリックすることで確認できます。

新しいバージョンでHTTP サービスが作成されました。

エイリアスの更新

新しく作成した Web API が正しく動作することが確認できたので、リクエストを流す先の Web API の切り替えを行います。

Primary のボタンをクリックして切替を実施するための画面を表示します。

New Model version (Cloud service only) から新しく作成した Version を選択します。

「Update」を選択すると、切替が完了となります。

実際にエイリアスの向き先が変更されたかどうかは curl コマンドを使用して確認できます。 HTTP サービスのエイリアスの右のアイコンをクリックすることで curl コマンドを確認できます。

今回作成したモデルは画像を入力として受け付けるため、以下のような形式になります。

curl -X POST \
     -u user-xxxxx:xxxxxx \
     -H "Content-Type: image/jpeg" \
     --data-binary @sample.jpg \    
     https://{organization name}.api.abeja.io/deployments/{deployment id}