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:
- Crea tu aplicación.
- Añade entre 1 y 20 instancias experimentales.
- Despliega tu aplicación.
- Verifica que tu aplicación funciona correctamente.
- Usa el método
createApplicationInstances
para añadir más entradas de forma incremental a la aplicación implementada. - Permite que la aplicación se ejecute.
- Usa el método
deleteApplicationInstances
para quitar entradas de forma incremental de las aplicaciones implementadas. - Retira la aplicación.