앱을 빌드하고 배포한 후 Google Cloud 콘솔 또는 명령줄을 사용하여 이러한 앱 인스턴스를 만들고 업데이트할 수 있습니다.
앱 인스턴스 만들기
REST
앱 인스턴스를 만들려면 projects.locations.applications.createApplicationInstances 메서드를 사용하여 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: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-central1
,europe-west4
입니다. 사용 가능한 리전을 참고하세요. - APPLICATION_ID: 타겟 애플리케이션의 ID입니다.
- INSTANCE_NAME: 앱 인스턴스의 전체 리소스 이름입니다. 예를 들면 다음과 같습니다.
projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID/instances/INSTANCE_ID
inputResources
: 현재 애플리케이션 인스턴스의 입력 리소스입니다. 다음 필드가 포함된 객체의 배열입니다.consumerNode
: 입력 리소스를 수신하는 그래프 노드의 이름입니다.inputResource
: 전체 입력 리소스 이름입니다.
outputResources
: 하나의 애플리케이션 인스턴스와 연결된 모든 출력 리소스입니다. 다음 필드가 포함된 객체의 배열입니다.outputResource
: 전체 출력 리소스 이름입니다.producerNode
: 출력 리소스 이름을 생성하는 그래프 노드의 이름입니다.
HTTP 메서드 및 URL:
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~20개 추가합니다.
- 애플리케이션을 배포합니다.
- 앱이 예상대로 작동하는지 확인합니다.
createApplicationInstances
메서드를 사용하여 배포된 애플리케이션에 입력을 점진적으로 추가합니다.- 앱 실행을 허용합니다.
deleteApplicationInstances
메서드를 사용하여 배포된 애플리케이션에서 입력을 점진적으로 삭제합니다.- 애플리케이션을 배포 취소합니다.