Depois de criar e implementar apps, pode criar e atualizar estas instâncias de apps através da Google Cloud consola ou da linha de comandos.
Crie uma instância da app
REST
Para criar uma instância da app, envie um pedido POST através do método projects.locations.applications.createApplicationInstances.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_NUMBER: o seu Google Cloud número do projeto.
- LOCATION_ID: A região onde está a usar o
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Veja as regiões disponíveis. - APPLICATION_ID: o ID da sua aplicação de destino.
Método HTTP e URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:createApplicationInstances
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 }
Atualize uma instância da app
Depois de criar uma app e obter um ID da instância da app, pode modificar os seguintes recursos da instância da app:
- Stream de entrada*: pode alterar o recurso da stream de entrada.
- Recurso do armazém de saída: pode atualizar o recurso de saída se tiver ligação a um armazém e quiser escrever a saída num recurso de armazém (
corpus
) diferente. Stream de saída*: pode substituir a stream de saída se quiser atualizar a stream de saída de uma stream gerada automaticamente para uma stream específica que criar.
* A stream de entrada e a stream de saída têm de estar no mesmo cluster para a mesma instância da aplicação.
REST
Para atualizar uma instância da app, envie um pedido POST através do método projects.locations.applications.updateApplicationInstances.
O exemplo de código seguinte atualiza a stream de entrada (inputResources
) e
todos os recursos de saída associados à instância da app (outputResources
).
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT: o seu Google Cloud ID do projeto ou número do projeto.
- LOCATION_ID: A região onde está a usar o
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Veja as regiões disponíveis. - APPLICATION_ID: o ID da sua aplicação de destino.
- INSTANCE_NAME: o nome completo do recurso da instância da app. Por exemplo:
projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
inputResources
: o recurso (ou os recursos) de entrada para a instância da aplicação atual. Esta é uma matriz de objetos que contêm os seguintes campos:consumerNode
: o nome do nó do gráfico que recebe o recurso de entrada.inputResource
: o nome completo do recurso de entrada.
outputResources
: todos os recursos de saída associados a uma instância da aplicação. Esta é uma matriz de objetos que contêm os seguintes campos:outputResource
: o nome completo do recurso de saída.producerNode
: o nome do nó do gráfico que produz o nome do recurso de saída.
Método HTTP e URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances
Corpo JSON do pedido:
{ "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 o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Faça a gestão de apps em grande escala
Os métodos deploy e undeploy são válidos para aplicações com menos de 20 instâncias. Se a sua app tiver mais de 20 instâncias, tem de criar e remover instâncias de forma incremental com a API. O fluxo de trabalho recomendado é o seguinte:
- Crie a sua app.
- Adicione 1 a 20 instâncias experimentais.
- Implemente a sua aplicação.
- Valide se a sua app funciona como esperado.
- Use o método
createApplicationInstances
para adicionar incrementalmente mais entradas à aplicação implementada. - Permitir que a app seja executada.
- Use o método
deleteApplicationInstances
para remover gradualmente entradas de aplicações implementadas. - Anule a implementação da aplicação.