创建和更新应用实例

构建部署应用后,您可以使用 Google Cloud 控制台或命令行创建和更新这些应用实例。

创建应用实例

REST

如需创建应用实例,请使用 projects.locations.applications.createApplicationInstances 方法发送 POST 请求。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_NUMBER:您的 Google Cloud 项目编号
  • LOCATION_ID:您使用 Vertex AI Vision 的区域。例如:us-central1europe-west4。请参阅可用区域
  • APPLICATION_ID:目标应用的 ID。

HTTP 方法和网址:

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

请求 JSON 正文:

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

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

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

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$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

您应该收到类似以下内容的 JSON 响应:

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

更新应用实例

创建应用并获取应用实例 ID 后,您可以修改以下应用实例资源:

  • 输入源*:您可以更改输入源素材资源。
  • 输出数据仓库资源:如果您已连接到数据仓库,并且想要将输出写入其他数据仓库 (corpus) 资源,则可以更新输出资源。
  • 输出流*:如果您想将输出流从自动生成的流更新为您创建的特定流,可以覆盖输出流。

    * 输入流和输出流必须位于同一应用实例的同一集群下。

REST

如需更新应用实例,请使用 projects.locations.applications.updateApplicationInstances 方法发送 POST 请求。

以下代码示例更新了输入流 (inputResources) 以及与应用实例 (outputResources) 相关联的所有输出资源。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT:您的 Google Cloud 项目 ID 或项目编号
  • LOCATION_ID:您使用 Vertex AI Vision 的区域。例如:us-central1europe-west4。请参阅可用区域
  • APPLICATION_ID:目标应用的 ID。
  • INSTANCE_NAME:应用实例的完整资源名称。例如:
    • projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
  • inputResources:当前应用实例的输入资源。这是一个包含以下字段的对象数组:
    • consumerNode:接收输入资源的图节点的名称。
    • inputResource:完整的输入资源名称。
  • outputResources:与一个应用实例关联的所有输出资源。 这是一个包含以下字段的对象数组:
    • outputResource:完整的输出资源名称。
    • producerNode:生成输出资源名称的图节点的名称。

HTTP 方法和网址:

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

请求 JSON 正文:

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

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

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

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$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
 

管理大规模应用

部署和取消部署方法适用于实例数少于 20 的应用。如果您的应用有 20 个以上的实例,您必须使用该 API 逐步创建和移除实例。建议的工作流程如下:

  1. 创建应用。
  2. 添加 1-20 个实验实例。
  3. 部署该应用。
  4. 验证应用是否按预期运行。
  5. 使用 createApplicationInstances 方法可逐步向已部署的应用添加更多输入。
  6. 允许应用运行。
  7. 使用 deleteApplicationInstances 方法可逐步从已部署的应用中移除输入。
  8. 取消部署应用。