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 sostituzioni seguenti:
- 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. Consulta 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 ed esegui questo comando:
$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 dell'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.
L'esempio di codice seguente 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 sostituzioni seguenti:
- 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. Consulta 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 deploy e undeploy 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
createApplicationInstancesper aggiungere in modo incrementale altri input all'applicazione di cui è stato eseguito il deployment. - Consenti l'esecuzione dell'app.
- Utilizza il metodo
deleteApplicationInstancesper rimuovere gradualmente gli input dalle applicazioni di cui è stato eseguito il deployment. - Annulla il deployment dell'applicazione.