Creare e aggiornare le istanze dell'app

Dopo aver creato ed eseguito il deployment delle app, puoi creare e aggiornare queste istanze dell'app utilizzando la Google Cloud console o la riga di comando.

Creare un'istanza dell'app

REST

Per creare un'istanza dell'app, invia una richiesta POST utilizzando il 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 Agent Platform Vision. Ad esempio: us-central1, europe-west4. Vedi 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
}

Aggiornare un'istanza dell'app

Dopo aver creato un'app e aver ottenuto un ID istanza dell'app, puoi modificare le seguenti risorse dell'istanza dell'app:

  • Stream di input*: puoi modificare l'asset dello stream di input.
  • Asset del data warehouse di output: puoi aggiornare l'asset di output se ti sei connesso a un data warehouse e vuoi scrivere l'output in un data warehouse (corpus) diverso.
  • Stream di output*: puoi sovrascrivere lo stream di output se vuoi aggiornarlo da uno stream generato automaticamente a uno stream specifico che crei.

    * Lo stream di input e lo stream 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 projects.locations.applications.updateApplicationInstances metodo.

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 Agent Platform Vision. Ad esempio: us-central1, europe-west4. Vedi 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 di input (o le risorse di input) per l'istanza dell'applicazione corrente. 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 genera 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, e 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 annullamento del deployment 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 l'app.
  2. Aggiungi 1-20 istanze sperimentali.
  3. Esegui il deployment dell'applicazione.
  4. Verifica che l'app funzioni come previsto.
  5. Utilizza il metodo createApplicationInstances per aggiungere in modo incrementale altri input a ll'applicazione di cui hai eseguito il deployment.
  6. Consenti l'esecuzione dell'app.
  7. Utilizza il metodo deleteApplicationInstances per rimuovere in modo incrementale gli input dalle applicazioni di cui hai eseguito il deployment.
  8. Annulla il deployment dell'applicazione.