Gestire le istanze dell'applicazione

Dopo aver creato ed eseguito il deployment delle app, puoi gestire queste istanze di app utilizzando la console Google Cloud o la riga di comando.

Visualizzare le istanze e l'output dell'app di cui è stato eseguito il deployment

Puoi visualizzare le istanze e l'output dell'app utilizzando la console Google Cloud o la riga di comando. Puoi quindi utilizzare queste informazioni per leggere i flussi di output del modello e ottenere gli asset.

UI web

Visualizza le istanze e l'output di un'app nella console Google Cloud .

  1. Apri la scheda Applicazioni della dashboard di Vertex AI Vision.

    Vai alla scheda Applicazioni

  2. Seleziona il nome dell'app che vuoi visualizzare. Viene visualizzata la pagina dei dettagli dell'applicazione.

    La pagina dei dettagli dell'applicazione mostra una tabella con le risorse dell'applicazione. Questa tabella elenca tutte le istanze in esecuzione dell'applicazione. Ogni flusso di input dell'applicazione ha una propria istanza. Ogni istanza ha le proprie risorse di input e output elencate sotto.

    immagine della pagina dei dettagli delle risorse dell'app

  3. Per esaminare le risorse stream o warehouse nella tabella delle istanze, fai clic sull'ID input o output oppure seleziona il percorso.

    • Se fai clic sulla risorsa stream, viene eseguito il reindirizzamento alla pagina dei dettagli dello stream, dove puoi esaminare le informazioni dettagliate dello stream.

      Per scoprire come leggere il flusso di output di un modello utilizzando la riga di comando, vedi Creare e gestire stream.

      immagine dei dettagli della risorsa dello stream

    • Se fai clic sulla risorsa asset del warehouse, viene visualizzata la pagina dei dettagli dell'asset Vision Warehouse.

      Per ottenere una risorsa Vision Warehouse, consulta Gestire le risorse utilizzando l'API Vision Warehouse.

      immagine dei dettagli della risorsa del warehouse

REST

Per elencare le istanze dell'app, invia una richiesta GET utilizzando il metodo projects.locations.applications.instances.list.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

Metodo HTTP e URL:

GET https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "instances": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID",
      "createTime": "2022-03-01T20:05:45.863836157Z",
      "inputResources": [
        {
          "inputResource": "input-stream",
          "consumerNode": "builtin-input-stream"
        }
      ],
      "outputResources": [
        {
          "outputResource": "sample-resource-1",
          "producerNode": "builtin-occupancy-count",
          "isTemporary": true
        },
        {
          "outputResource": "sample-resource-2",
          "producerNode": "builtin-input-stream"
        },
        {
          "outputResource": "sample-resource-3",
          "producerNode": "builtin-input-stream",
          "isTemporary": true
        },
        {
          "outputResource": "sample-resource-4",
          "producerNode": "builtin-input-stream",
          "isTemporary": true
        }
      ]
    }
  ]
}

Elimina un'istanza dell'app

REST

Per eliminare le istanze dell'applicazione, invia una richiesta POST utilizzando il metodo projects.locations.applications.deleteApplicationInstances.

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:deleteApplicationInstances

Corpo JSON della richiesta:

{
  "instanceIds": [
    "INSTANCE_ID1",
    "INSTANCE_ID2",
    [...]
  ]
}

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:deleteApplicationInstances"

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:deleteApplicationInstances" | 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
}

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:

  1. Crea la tua app.
  2. Aggiungi da 1 a 20 istanze sperimentali.
  3. Esegui il deployment dell'applicazione.
  4. Verifica che la tua app funzioni come previsto.
  5. Utilizza il metodo createApplicationInstances per aggiungere in modo incrementale altri input all'applicazione di cui è stato eseguito il deployment.
  6. Consenti l'esecuzione dell'app.
  7. Utilizza il metodo deleteApplicationInstances per rimuovere gradualmente gli input dalle applicazioni di cui è stato eseguito il deployment.
  8. Annulla il deployment dell'applicazione.