Depois de criar e implantar apps, é possível criar e atualizar essas instâncias de app usando o console ou a linha de comando do Google Cloud .
Criar uma instância de app
REST
Para criar uma instância de app, envie uma solicitação POST usando o método projects.locations.applications.createApplicationInstances.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_NUMBER: o número do projeto do Google Cloud.
- LOCATION_ID: a região em que você está usando a
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - APPLICATION_ID: o ID do aplicativo 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 da solicitação:
{ "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 a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
{ "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 }
Atualizar uma instância de app
Depois de criar um app e receber um ID de instância do app, você pode modificar os seguintes recursos de instância do app:
- Stream de entrada*: é possível mudar o recurso de stream de entrada.
- Recurso de saída do data warehouse: é possível atualizar o recurso de saída se você se conectou a um data warehouse e quer gravar a saída em um recurso de data warehouse diferente (
corpus
). Fluxo de saída*: você pode substituir o fluxo de saída se quiser atualizar um fluxo gerado automaticamente para um fluxo específico que você criou.
* Os fluxos de entrada e saída precisam estar no mesmo cluster para a mesma instância de aplicativo.
REST
Para atualizar uma instância de app, envie uma solicitação POST usando o método projects.locations.applications.updateApplicationInstances.
O exemplo de código a seguir atualiza o fluxo de entrada (inputResources
) e todos os recursos de saída associados à instância do app (outputResources
).
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT: o ID ou número do projeto do Google Cloud.
- LOCATION_ID: a região em que você está usando a
Vertex AI Vision. Por exemplo:
us-central1
,europe-west4
. Consulte as regiões disponíveis. - APPLICATION_ID: o ID do aplicativo de destino.
- INSTANCE_NAME: o nome completo do recurso da instância do app. Por exemplo:
projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
inputResources
: o recurso (ou recursos) de entrada da instância do aplicativo atual. É 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 de aplicativo. É 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 da solicitação:
{ "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 a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Gerenciar apps em grande escala
Os métodos de implantação e remoção são válidos para aplicativos com menos de 20 instâncias. Se o app tiver mais de 20 instâncias, crie e remova instâncias de forma incremental com a API. O fluxo de trabalho recomendado é o seguinte:
- Crie seu app.
- Adicione de 1 a 20 instâncias experimentais.
- Implante o aplicativo.
- Verifique se o app funciona conforme o esperado.
- Use o método
createApplicationInstances
para adicionar entradas de forma incremental ao aplicativo implantado. - Permita que o app seja executado.
- Use o método
deleteApplicationInstances
para remover entradas de forma incremental dos aplicativos implantados. - Cancele a implantação do aplicativo.