Crear y actualizar instancias de aplicaciones

Después de compilar e implementar aplicaciones, puedes crear y actualizar estas instancias de aplicaciones mediante la consola Google Cloud o la línea de comandos.

Crear una instancia de aplicación

REST

Para crear una instancia de aplicación, envía una solicitud POST mediante el método projects.locations.applications.createApplicationInstances.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • 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: ID de la 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 siguiente:

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

Actualizar una instancia de aplicación

Después de crear una aplicación y obtener un ID de instancia de aplicación, puede modificar los siguientes recursos de instancia de aplicación:

  • Secuencia de entrada*: puedes cambiar el recurso de la secuencia de entrada.
  • Recurso de almacén de datos de salida: puede actualizar el recurso de salida si se ha conectado a un almacén de datos y quiere escribir la salida en otro recurso de almacén de datos (corpus).
  • Secuencia de salida*: puedes sobrescribir la secuencia de salida si quieres cambiarla de una secuencia generada automáticamente a una específica que crees.

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

REST

Para actualizar una instancia de aplicación, envía una solicitud POST mediante el método projects.locations.applications.updateApplicationInstances.

En el siguiente ejemplo de código se actualiza el flujo de entrada (inputResources) y todos los recursos de salida asociados a la instancia de la aplicación (outputResources).

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT: tu Google Cloud ID de 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: ID de la aplicación de destino.
  • INSTANCE_NAME: nombre completo del recurso de la instancia de la aplicación. Por ejemplo:
    • projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
  • inputResources: el recurso o los recursos de entrada de la instancia actual de la aplicación. Es una matriz de objetos que contiene los siguientes campos:
    • consumerNode: El nombre del nodo del gráfico que recibe el recurso de entrada.
    • inputResource: nombre completo del recurso de entrada.
  • outputResources: todos los recursos de salida asociados a una instancia de aplicación. Es una matriz de objetos que contiene los siguientes campos:
    • outputResource: el nombre completo del recurso de salida.
    • producerNode: 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
 

Gestionar aplicaciones a gran escala

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

  1. Crea tu aplicación.
  2. Añade entre 1 y 20 instancias experimentales.
  3. Despliega tu aplicación.
  4. Verifica que tu aplicación funciona correctamente.
  5. Usa el método createApplicationInstances para añadir más entradas de forma incremental a la aplicación implementada.
  6. Permite que la aplicación se ejecute.
  7. Usa el método deleteApplicationInstances para quitar entradas de forma incremental de las aplicaciones implementadas.
  8. Retira la aplicación.