Crea y actualiza instancias de apps

Después de compilar y desplegar apps, puedes crear y actualizar estas instancias de apps con la consola o la línea de comandos de Google Cloud .

Crea una instancia de la app

REST

Para crear una instancia de la app, envía una solicitud POST con el método projects.locations.applications.createApplicationInstances.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER: Tu Google Cloud número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • APPLICATION_ID: Es el ID de tu aplicación de destino.

Método HTTP y URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances

Cuerpo JSON de la solicitud:

{
  "applicationInstances": [
    {
      "instance": {
        "inputResources": [
          {
            "consumerNode": "input-stream",
            "inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
          }
        ]
      },
      "instanceId": "INSTANCE_ID"
    },
    {
      "instance": {
         [...]
    },
    [...]
  ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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
}

Actualiza una instancia de la app

Después de crear una app y obtener un ID de instancia de la app, puedes modificar los siguientes recursos de instancia de la app:

  • Flujo de entrada*: Puedes cambiar el activo del flujo de entrada.
  • Activo del almacén de salida: Puedes actualizar el activo de salida si te conectaste a un almacén y deseas escribir el resultado en un activo de almacén diferente (corpus).
  • Flujo de salida*: Puedes anular el flujo de salida si deseas actualizarlo de un flujo generado automáticamente a uno específico que crees.

    * El flujo de entrada y el flujo de salida deben estar en el mismo clúster para la misma instancia de la aplicación.

REST

Para actualizar una instancia de la app, envía una solicitud POST con el método projects.locations.applications.updateApplicationInstances.

En el siguiente muestra de código, se actualiza el flujo de entrada (inputResources) y todos los recursos de salida asociados con la instancia de la app (outputResources).

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT: Tu Google Cloud ID del proyecto o número de proyecto.
  • LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • APPLICATION_ID: Es el ID de tu aplicación de destino.
  • INSTANCE_NAME: Es el nombre completo del recurso de la instancia de la app. Por ejemplo:
    • projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
  • inputResources: Es el recurso (o los recursos) de entrada para la instancia de aplicación actual. Es un array de objetos que contiene los siguientes campos:
    • consumerNode: Es el nombre del nodo del gráfico que recibe el recurso de entrada.
    • inputResource: Es el nombre completo del recurso de entrada.
  • outputResources: Son todos los recursos de salida asociados a una instancia de la aplicación. Es un array de objetos que contiene los siguientes campos:
    • outputResource: Es el nombre completo del recurso de salida.
    • producerNode: Es el nombre del nodo del gráfico que genera el nombre del recurso de salida.

Método HTTP y URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances

Cuerpo JSON de la solicitud:

{
  "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"
          }
        ]
      },
    }
  ],
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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:updateApplicationInstances" | Select-Object -Expand Content
 

Administra apps a gran escala

Los métodos de implementación y anulación de la implementación son válidos para aplicaciones con menos de 20 instancias. Si tu app tiene más de 20 instancias, debes crear y quitar instancias de forma incremental con la API. El flujo de trabajo recomendado es el siguiente:

  1. Crea tu app.
  2. Agrega de 1 a 20 instancias experimentales.
  3. Implementa tu aplicación.
  4. Verifica que tu app funcione como se espera.
  5. Usa el método createApplicationInstances para agregar de forma incremental más entradas a la aplicación implementada.
  6. Permite que se ejecute la app.
  7. Usa el método deleteApplicationInstances para quitar de forma incremental las entradas de las aplicaciones implementadas.
  8. Anula la implementación de la aplicación.