アプリをビルドしてデプロイしたら、 Google Cloud コンソールまたはコマンドラインを使用して、これらのアプリ インスタンスを作成して更新できます。
アプリ インスタンスを作成する
REST
アプリ インスタンスを作成するには、projects.locations.applications.createApplicationInstances メソッドを使用して POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。たとえば、
us-central1、europe-west4などです。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances
リクエストの本文(JSON):
{
"applicationInstances": [
{
"instance": {
"inputResources": [
{
"consumerNode": "input-stream",
"inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
}
]
},
"instanceId": "INSTANCE_ID"
},
{
"instance": {
[...]
},
[...]
]
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances"
PowerShell
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.visionai.v1.OperationMetadata",
"createTime": "[...]",
"Target": "projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID"
"Verb": "update"
"apiVersion": "v1"
},
"done": false
}
アプリ インスタンスを更新する
アプリを作成してアプリ インスタンス ID を取得したら、次のアプリ インスタンス リソースを変更できます。
- 入力ストリーム*: 入力ストリーム アセットを変更できます。
- 出力ウェアハウス アセット: ウェアハウスに接続し、出力を別のウェアハウス(
corpus)アセットに書き込む場合は、出力アセットを更新できます。 出力ストリーム*: 自動生成されたストリームから作成した特定のストリームに出力ストリームを更新する場合は、出力ストリームを上書きできます。
* 同じアプリケーション インスタンスの場合、入力ストリームと出力ストリームは同じクラスタに属している必要があります。
REST
アプリ インスタンスを更新するには、projects.locations.applications.updateApplicationInstances メソッドを使用して POST リクエストを送信します。
次のコードサンプルは、入力ストリーム(inputResources)と、アプリ インスタンス(outputResources)に関連付けられたすべての出力リソースを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT: Google Cloud プロジェクト ID またはプロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。たとえば、
us-central1、europe-west4などです。利用可能なリージョンをご覧ください。 - APPLICATION_ID: ターゲット アプリケーションの ID。
- INSTANCE_NAME: アプリ インスタンスの完全なリソース名。例:
projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
inputResources: 現在のアプリケーション インスタンスの入力リソース。これは、次のフィールドを含むオブジェクトの配列です。consumerNode: 入力リソースを受け取るグラフノードの名前。inputResource: 入力リソースの完全な名前。
outputResources: 1 つのアプリケーション インスタンスに関連付けられているすべての出力リソース。これは、次のフィールドを含むオブジェクトの配列です。outputResource: 出力リソースの完全な名前。producerNode: 出力リソース名を生成するグラフノードの名前。
HTTP メソッドと URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances
リクエストの本文(JSON):
{
"applicationInstances": [
{
"instance": {
"name": "INSTANCE_NAME",
"inputResources": [
{
"consumerNode": "input-stream",
"inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
}
],
"outputResources":[
{
"outputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID",
"producerNode": "warehouse"
},
{
"outputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
"producerNode": "occupancy-count"
}
]
},
}
],
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances"
PowerShell
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances" | Select-Object -Expand Content
大規模なアプリを管理する
デプロイ メソッドとデプロイ解除メソッドは、インスタンスが 20 個未満のアプリケーションで有効です。アプリに 20 個を超えるインスタンスがある場合は、API を使用してインスタンスを増分的に作成および削除する必要があります。推奨されるワークフローは次のとおりです。
- アプリを作成します。
- 試験運用版インスタンスを 1 ~ 20 個追加します。
- アプリケーションをデプロイします。
- アプリが想定どおりに動作することを確認します。
createApplicationInstancesメソッドを使用して、デプロイされたアプリケーションにインクリメンタルにインプットを追加します。- アプリの実行を許可します。
deleteApplicationInstancesメソッドを使用して、デプロイされたアプリケーションから入力を段階的に削除します。- アプリケーションのデプロイを解除します。