애플리케이션 인스턴스 관리

앱을 빌드하고 배포한 후 Google Cloud 콘솔 또는 명령줄을 사용하여 이러한 앱 인스턴스를 관리할 수 있습니다.

배포된 앱 인스턴스 및 출력 보기

Google Cloud 콘솔 또는 명령줄을 사용하여 앱 인스턴스와 출력을 볼 수 있습니다. 그런 다음 이 정보를 사용하여 모델 출력 스트림을 읽고 애셋을 가져올 수 있습니다.

웹 UI

Google Cloud 콘솔에서 앱의 인스턴스와 출력을 확인합니다.

  1. Vertex AI Vision 대시보드의 애플리케이션 탭을 엽니다.

    애플리케이션 탭으로 이동

  2. 확인하려는 앱의 이름을 선택합니다. 그러면 애플리케이션 세부정보 페이지로 이동합니다.

    애플리케이션 세부정보 페이지에 애플리케이션 리소스가 포함된 표가 표시됩니다. 이 표에는 실행 중인 애플리케이션의 모든 인스턴스가 나열됩니다. 애플리케이션의 각 입력 스트림에는 자체 인스턴스가 있습니다. 각 인스턴스에는 아래에 나열된 자체 입력 및 출력 리소스가 있습니다.

    앱 리소스 세부정보 페이지 이미지

  3. 인스턴스 테이블에서 스트림 또는 웨어하우스 애셋 리소스를 검사하려면 입력 또는 출력 ID를 클릭하거나 경로를 선택합니다.

    • 스트림 리소스를 클릭하면 스트림 세부정보 페이지로 리디렉션되며, 여기에서 해당 스트림의 세부 정보를 검사할 수 있습니다.

      명령줄을 사용하여 모델의 출력 스트림을 읽는 방법을 알아보려면 스트림 만들기 및 관리를 참고하세요.

      스트림 리소스 세부정보 이미지

    • 웨어하우스 애셋 리소스를 클릭하면 Vision Warehouse 애셋 세부정보 페이지로 이동합니다.

      Vision Warehouse 애셋을 가져오려면 Vision Warehouse API를 사용하여 리소스 관리를 참고하세요.

      창고 리소스 세부정보 이미지

REST

앱 인스턴스를 나열하려면 projects.locations.applications.instances.list 메서드를 사용하여 GET 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

HTTP 메서드 및 URL:

GET https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

다음 명령어를 실행합니다.

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances"

PowerShell

다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "instances": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID",
      "createTime": "2022-03-01T20:05:45.863836157Z",
      "inputResources": [
        {
          "inputResource": "input-stream",
          "consumerNode": "builtin-input-stream"
        }
      ],
      "outputResources": [
        {
          "outputResource": "sample-resource-1",
          "producerNode": "builtin-occupancy-count",
          "isTemporary": true
        },
        {
          "outputResource": "sample-resource-2",
          "producerNode": "builtin-input-stream"
        },
        {
          "outputResource": "sample-resource-3",
          "producerNode": "builtin-input-stream",
          "isTemporary": true
        },
        {
          "outputResource": "sample-resource-4",
          "producerNode": "builtin-input-stream",
          "isTemporary": true
        }
      ]
    }
  ]
}

앱 인스턴스 삭제

REST

애플리케이션 인스턴스를 삭제하려면 projects.locations.applications.deleteApplicationInstances 메서드를 사용하여 POST 요청을 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER: Google Cloud 프로젝트 번호
  • LOCATION_ID: Vertex AI Vision을 사용하는 리전입니다. 예를 들면 us-central1, europe-west4입니다. 사용 가능한 리전을 참고하세요.
  • APPLICATION_ID: 타겟 애플리케이션의 ID입니다.

HTTP 메서드 및 URL:

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

JSON 요청 본문:

{
  "instanceIds": [
    "INSTANCE_ID1",
    "INSTANCE_ID2",
    [...]
  ]
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

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:deleteApplicationInstances"

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:deleteApplicationInstances" | 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
}

대규모 앱 관리

배포 및 배포 취소 메서드는 인스턴스가 20개 미만인 애플리케이션에 유효합니다. 앱에 인스턴스가 20개를 초과하는 경우 API를 사용하여 인스턴스를 점진적으로 만들고 삭제해야 합니다. 권장 워크플로는 다음과 같습니다.

  1. 앱을 만듭니다.
  2. 실험 인스턴스를 1~20개 추가합니다.
  3. 애플리케이션을 배포합니다.
  4. 앱이 예상대로 작동하는지 확인합니다.
  5. createApplicationInstances 메서드를 사용하여 배포된 애플리케이션에 입력을 점진적으로 추가합니다.
  6. 앱 실행을 허용합니다.
  7. deleteApplicationInstances 메서드를 사용하여 배포된 애플리케이션에서 입력을 점진적으로 삭제합니다.
  8. 애플리케이션을 배포 취소합니다.