Dopo aver creato ed eseguito il deployment delle app, puoi creare e aggiornare queste istanze di app utilizzando la console Google Cloud o la riga di comando.
Crea un'istanza dell'app
REST
Per creare un'istanza dell'app, invia una richiesta POST utilizzando il metodo projects.locations.applications.createApplicationInstances.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_NUMBER: il tuo Google Cloud numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - APPLICATION_ID: l'ID dell'applicazione di destinazione.
Metodo HTTP e URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances
Corpo JSON della richiesta:
{ "applicationInstances": [ { "instance": { "inputResources": [ { "consumerNode": "input-stream", "inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } ] }, "instanceId": "INSTANCE_ID" }, { "instance": { [...] }, [...] ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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 }
Aggiorna un'istanza dell'app
Dopo aver creato un'app e ottenuto un ID istanza app, puoi modificare le seguenti risorse istanza app:
- Stream di input*: puoi modificare l'asset dello stream di input.
- Asset di output del warehouse: puoi aggiornare l'asset di output se
ti sei connesso a un warehouse e vuoi scrivere l'output in un asset
di un warehouse diverso (
corpus
). Stream di output*: puoi sovrascrivere lo stream di output se vuoi aggiornarlo da uno stream generato automaticamente a uno stream specifico che crei.
* Il flusso di input e il flusso di output devono trovarsi nello stesso cluster per la stessa istanza dell'applicazione.
REST
Per aggiornare un'istanza dell'app, invia una richiesta POST utilizzando il metodo projects.locations.applications.updateApplicationInstances.
Il seguente esempio di codice aggiorna lo stream di input (inputResources
) e
tutte le risorse di output associate all'istanza dell'app (outputResources
).
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT: il tuo Google Cloud ID progetto o numero di progetto.
- LOCATION_ID: la regione in cui utilizzi
Vertex AI Vision. Ad esempio:
us-central1
,europe-west4
. Vedi le regioni disponibili. - APPLICATION_ID: l'ID dell'applicazione di destinazione.
- INSTANCE_NAME: il nome completo della risorsa dell'istanza dell'app. Ad esempio:
projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
inputResources
: La risorsa o le risorse di input per l'istanza dell'applicazione attuale. Si tratta di un array di oggetti che contengono i seguenti campi:consumerNode
: il nome del nodo del grafico che riceve la risorsa di input.inputResource
: il nome completo della risorsa di input.
outputResources
: Tutte le risorse di output associate a un'istanza dell'applicazione. Si tratta di un array di oggetti che contengono i seguenti campi:outputResource
: il nome completo della risorsa di output.producerNode
: Il nome del nodo del grafico che produce il nome della risorsa di output.
Metodo HTTP e URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances
Corpo JSON della richiesta:
{ "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" } ] }, } ], }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
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
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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
Gestire app su larga scala
I metodi di deployment e undeployment sono validi per le applicazioni con meno di 20 istanze. Se la tua app ha più di 20 istanze, devi creare e rimuovere le istanze in modo incrementale con l'API. Il flusso di lavoro consigliato è il seguente:
- Crea la tua app.
- Aggiungi da 1 a 20 istanze sperimentali.
- Esegui il deployment dell'applicazione.
- Verifica che la tua app funzioni come previsto.
- Utilizza il metodo
createApplicationInstances
per aggiungere in modo incrementale altri input all'applicazione di cui è stato eseguito il deployment. - Consenti l'esecuzione dell'app.
- Utilizza il metodo
deleteApplicationInstances
per rimuovere gradualmente gli input dalle applicazioni di cui è stato eseguito il deployment. - Annulla il deployment dell'applicazione.