장기 실행 작업 관리

이 페이지에서는 Cloud Life Sciences API 장기 실행 작업(LRO)의 수명 주기를 관리하는 방법을 설명합니다.

메서드 호출이 완료되는 데 오래 걸릴 수 있으면 장기 실행 작업이 반환됩니다. Cloud Life Sciences API는 projects.locations.pipelines.run 또는 gcloud beta lifesciences pipelines run이 호출될 때마다 LRO를 만듭니다 LRO는 파이프라인 상태를 추적합니다.

Cloud Life Sciences API에 제공되는 작업 API를 사용하여 LRO 상태를 확인할 수 있습니다. 또한 LRO 나열, 폴링, 취소도 가능합니다.

Cloud Life Sciences API를 직접 호출할 때 LRO는 Google Cloud 프로젝트 및 위치 수준에서 관리됩니다. LRO에 직접 요청을 수행할 때는 Google Cloud 프로젝트 및 LRO가 실행되는 위치를 포함하세요.

gcloud CLI를 설정한 경우에는 gcloud CLI를 사용하여 Cloud Life Sciences API를 호출할 때 LRO에 대한 요청에 작업 식별자만 포함되면 됩니다. Google Cloud 프로젝트 ID 및 LRO가 실행되는 위치는 작업 ID로부터 유추됩니다.

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하거나 API를 직접 호출하여 Cloud Life Sciences LRO를 관리할 수 있습니다. Google Cloud 콘솔에는 gcloud CLI를 사용하고 Cloud Life Sciences API를 직접 호출할 때 사용 가능한 LRO에 대한 모든 세부정보가 포함되지 않습니다.

LRO 레코드는 LRO가 완료된 후 약 30일 동안 유지됩니다. 이후에는 LRO를 보거나 나열할 수 없습니다.

장기 실행 작업에 대한 세부정보 확인하기

다음 샘플은 LRO에 대한 세부정보를 확인하는 방법을 보여줍니다.

콘솔

  1. Google Cloud 콘솔에서 Life Sciences Pipelines 페이지로 이동합니다.

    Life Sciences Pipelines 페이지로 이동

  2. LRO 목록과 해당 상태가 표시됩니다. 원하는 LRO를 찾고 상태를 확인합니다. 상태 열에 표시될 수 있는 값은 실행 중, 완료됨, 실패함입니다.

gcloud

gcloud beta lifesciences pipelines run 호출 후 다음 응답이 수신되었다고 가정해보세요.

Running [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID].

응답에는 작업 ID와 함께 Cloud Life Sciences API로 생성된 LRO가 표시됩니다.

LRO 세부정보를 확인하려면 해당 작업 ID를 지정해서 gcloud beta lifesciences operations describe 명령어를 실행합니다.

gcloud beta lifesciences operations describe OPERATION_ID

또한 장기 실행 데이터베이스 작업을 나열하여 작업 ID를 검색할 수 있습니다.

요청이 성공하면 명령 프롬프트에 작업 세부정보가 표시됩니다. 여기에 표시된 출력은 빠른 시작의 파이프라인 작업에서 가져온 것입니다.

API

LRO 상태를 가져오고 세부정보를 보려면 projects.locations.operations.get 메서드를 호출합니다.

REST

projects.locations.pipelines.run 호출 후 다음 응답이 수신되었다고 가정해보세요.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID"
}

응답의 name 값은 Cloud Life Sciences API로 생성된 projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID라는 LRO를 보여줍니다.

또한 장기 실행 작업을 나열하여 LRO를 검색할 수 있습니다.

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

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: LRO가 실행되는 위치입니다.
  • OPERATION_ID: LRO의 식별자

HTTP 메서드 및 URL:

GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

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

curl

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

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"

PowerShell

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

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content

API 탐색기

메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.

다음과 비슷한 JSON 응답이 수신됩니다. 여기에 표시된 출력은 빠른 시작의 파이프라인 작업에서 가져온 것입니다.

장기 실행 작업 나열

다음 샘플은 Google Cloud 프로젝트 및 위치의 LRO를 나열하는 방법을 보여줍니다.

콘솔

  1. Google Cloud 콘솔에서 Life Sciences Pipelines 페이지로 이동합니다.

    Life Sciences Pipelines 페이지로 이동

  2. LRO 목록과 해당 상태가 표시됩니다. 상태 열에 표시될 수 있는 값은 실행 중, 완료됨, 실패함입니다.

gcloud

Google Cloud 프로젝트 및 위치의 LRO를 나열하려면 gcloud beta lifesciences operations list 명령어를 실행합니다.

gcloud beta lifesciences operations list

요청이 성공하면 명령어 프롬프트가 LRO를 나열합니다.

ID                    LOCATION     DONE
OPERATION_ID          LOCATION       {TRUE|FALSE}
...

API

Google Cloud 프로젝트 및 위치의 LRO를 나열하려면 projects.locations.operations.list 메서드를 호출합니다.

REST

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

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: 하나 이상의 LRO가 실행되는 위치입니다.

HTTP 메서드 및 URL:

GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations

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

curl

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

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations"

PowerShell

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

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations" | Select-Object -Expand Content

API 탐색기

메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.

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

{
  "operations": [
    {
      "name": "PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.lifesciences.v2beta.Metadata",
        "pipeline": {
          ...
        }
        "createTime": "CREATE_TIME",
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/cloud.lifesciences.pipelines.RunPipelineResponse"
      }
    },
    ...
  ]
}

장기 실행 작업 폴링

다음 샘플은 LRO의 상태를 폴링하는 방법을 보여줍니다.

콘솔

  1. Google Cloud 콘솔에서 Life Sciences Pipelines 페이지로 이동합니다.

    Life Sciences Pipelines 페이지로 이동

  2. LRO 목록과 해당 상태가 표시됩니다. 업데이트된 LRO 상태를 보려면 새로고침 아이콘을 클릭합니다.

gcloud

파이프라인을 시작한 후 gcloud beta lifesciences operations wait 명령어를 실행하여 LRO를 폴링할 수 있습니다.

gcloud beta lifesciences operations wait OPERATION_ID

요청이 성공하면 명령어 프롬프트가 다음을 표시합니다.

Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...

작업이 완료되면 명령어 프롬프트가 다음을 표시합니다.

Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...done.

API

LRO를 폴링하려면 작업이 완료될 때까지 projects.locations.operations.get 메서드를 반복해서 호출합니다. 각 폴링 요청 사이에 백오프를 사용합니다(예: 10초).

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

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: LRO가 실행되는 위치입니다.
  • OPERATION_ID: LRO의 식별자

HTTP 메서드 및 URL:

GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

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

curl

다음 명령어를 실행하여 LRO 상태를 10초 간격으로 폴링합니다.

while true; \
    do curl -X GET \
    -H "Authorization: Bearer "$(gcloud auth print-access-token) \
    "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"; \
    sleep 10; \
    done

다음과 비슷한 JSON 응답이 수신됩니다. 여기에 표시된 출력은 빠른 시작의 파이프라인 작업에서 가져온 것입니다. 작업이 완료되면 응답에 "done": trueendTime 필드의 값이 포함됩니다.

PowerShell

다음 명령어를 실행하여 LRO 상태를 10초 간격으로 폴링합니다.

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

Do {
  Invoke-WebRequest `
    -Method Get `
    -Headers $headers `
    -Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
sleep 10
}

while ($true)

다음과 비슷한 JSON 응답이 수신됩니다. 여기에 표시된 출력은 빠른 시작의 파이프라인 작업에서 가져온 것입니다. 작업이 완료되면 응답에 "done": trueendTime 필드의 값이 포함됩니다.

장기 실행 작업 취소

다음 샘플은 실행 중인 LRO를 취소하는 방법을 보여줍니다.

콘솔

  1. Google Cloud 콘솔에서 Life Sciences Pipelines 페이지로 이동합니다.

    Life Sciences Pipelines 페이지로 이동

  2. 취소하려는 LRO의 ID를 클릭합니다.
  3. 취소 아이콘을 클릭합니다.

gcloud

LRO를 취소하려면 gcloud beta lifesciences operations cancel 명령어를 실행합니다.

gcloud beta lifesciences operations cancel OPERATION_ID

요청이 성공하면 취소 프롬프트가 표시됩니다.

Operation [OPERATION_ID] will be canceled.

Do you want to continue (Y/n)?  Y

확인하려면 Y를 입력합니다. 취소를 확인하면 응답이 빈 본문을 반환합니다.

Operation [OPERATION_ID] will be canceled.

Do you want to continue (Y/n)?  Y

{}

API

LRO를 취소하려면 projects.locations.operations.cancel 메서드를 호출합니다.

REST

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

  • PROJECT_ID: Google Cloud 프로젝트 ID
  • LOCATION: LRO가 실행되는 위치입니다.
  • OPERATION_ID: LRO의 식별자

HTTP 메서드 및 URL:

POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel

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

curl

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

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel"

PowerShell

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

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content

API 탐색기

메서드 참조 페이지를 엽니다. 페이지 오른쪽에 API 탐색기 패널이 열립니다. 이 도구를 사용하여 요청을 보낼 수 있습니다. 모든 필수 필드를 입력하고 실행을 클릭합니다.

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

{}