Creare e aggiornare le istanze dell'app

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:

  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.