리소스 라벨 사용

이 페이지에서는 Cloud Healthcare API 리소스에서 라벨을 추가, 표시, 수정, 삭제하는 방법을 보여줍니다. 라벨은 리소스 정리를 위해 사용할 수 있는 키-값 쌍입니다. 개별 리소스에 라벨을 추가한 후 라벨을 기준으로 리소스를 필터링할 수 있습니다. 라벨에 대한 정보는 결제 시스템으로 전달되므로 라벨을 기준으로 청구 상세 내역을 확인할 수 있습니다.

다음 Cloud Healthcare API 리소스에 라벨을 사용할 수 있습니다.

  • FHIR 저장소
  • DICOM 저장소
  • 동의 저장소
  • HL7v2 저장소
  • HL7v2 메시지

라벨은 REST 또는 RPC API를 사용하여 제공됩니다. Google Cloud CLI 또는 Google Cloud Console에서 라벨을 사용할 수 없습니다.

라벨 요구사항

리소스에 적용된 라벨은 다음 요구사항을 충족해야 합니다.

  • 각 리소스는 여러 개의 라벨(최대 64개)을 가질 수 있습니다.
  • 각 라벨은 키-값 쌍이어야 합니다.
  • 키는 비워 둘 수 없으며 최소 길이는 1자이고 최대 길이는 63자입니다. 값은 비워 둘 수 있으며 최대 길이는 63자(영문 기준)입니다.
  • 키와 값에는 소문자, 숫자, 밑줄, 대시만 사용할 수 있습니다. 모든 문자는 UTF-8 인코딩을 사용해야 하며 국제 문자가 허용됩니다.
  • 라벨의 키는 단일 리소스에서 고유해야 하지만 여러 리소스에 동일한 키를 사용할 수 있습니다.
  • 키는 소문자나 국제 문자로 시작해야 합니다.

라벨 추가

다음 샘플은 기존 FHIR 저장소에 라벨을 추가하는 방법을 보여줍니다.

예를 들어 라벨을 사용하여 FHIR 저장소가 테스트 환경으로 사용됨을 나타낼 수 있습니다. 라벨의 키는 environment이고 값은 test입니다.

curl

기존 FHIR 저장소에 라벨을 추가하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 업데이트할 라벨 데이터
  • labels로 설정된 업데이트 마스크
  • 액세스 토큰

다음 샘플은 curl을 사용하는 PATCH 요청을 보여줍니다.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'labels': {
        'KEY' : 'VALUE'
      }
     }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY": "VALUE"
  }
}

PowerShell

기존 FHIR 저장소에 라벨을 추가하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 업데이트할 라벨 데이터
  • labels로 설정된 업데이트 마스크
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 PATCH 요청을 보여줍니다.

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

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'labels': {
        'KEY': 'VALUE'
      }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY": "VALUE"
  }
}

여러 라벨 추가

다음 샘플은 기존 FHIR 저장소에 여러 라벨을 추가하는 방법을 보여줍니다. 라벨을 여러 개 추가하려면 각 라벨을 쉼표로 구분합니다.

예를 들어 라벨을 사용하여 FHIR 저장소가 테스트 환경으로 사용되고 있고 연구팀에 사용되고 있음을 나타낼 수 있습니다.

첫 번째 라벨의 키는 environment이고 값은 test입니다. 두 번째 라벨의 키는 team이고 값은 research입니다.

curl

기존 FHIR 저장소에 여러 라벨을 추가하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 쉼표로 구분된 키-값 쌍 목록으로 업데이트할 라벨 데이터
  • labels로 설정된 업데이트 마스크
  • 액세스 토큰

다음 샘플은 curl을 사용하는 PATCH 요청을 보여줍니다.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'labels': {
        'KEY_1' : 'VALUE_1',
        'KEY_2' : 'VALUE_2'
      }
     }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY_1": "VALUE_1",
    "KEY_2": "VALUE_2"
  }
}

PowerShell

기존 FHIR 저장소에 라벨을 추가하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 쉼표로 구분된 키-값 쌍 목록으로 업데이트할 라벨 데이터
  • labels로 설정된 업데이트 마스크
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 PATCH 요청을 보여줍니다.

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

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'labels': {
        'KEY_1': 'VALUE_1',
        'KEY_2': 'VALUE_2'
      }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY_1": "VALUE_1",
    "KEY_2": "VALUE_2"
  }
}

라벨별 나열 및 필터링

Cloud Healthcare API 리소스에 라벨을 추가하면 리소스를 나열하고 라벨별로 필터링할 수 있습니다. 예를 들어 이전 샘플에서 FHIR 저장소에 라벨을 추가한 후 데이터 세트의 FHIR 저장소를 나열하고 추가한 라벨로 필터링할 수 있습니다.

HL7v2 메시지에는 projects.locations.datasets.hl7V2Stores.messages.list에서 볼 수 있는 추가 필터링 옵션이 있습니다.

curl

FHIR 저장소를 데이터 세트에서 보고 라벨별로 필터링하려면 GET 요청을 수행하고 다음 정보를 제공합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 필터링할 정보가 포함된 쿼리 문자열
  • 액세스 토큰

다음 샘플은 curl을 사용하는 GET 요청을 보여줍니다.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?filter=labels.KEY=VALUE"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "fhirStores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "labels": {
        "KEY": "VALUE"
      }
    },
    {
      ...
    }
  ]
}

PowerShell

FHIR 저장소를 데이터 세트에서 보고 라벨별로 필터링하려면 GET 요청을 수행하고 다음 정보를 제공합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 필터링할 정보가 포함된 쿼리 문자열
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 GET 요청을 보여줍니다.

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

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores?filter=labels.KEY=VALUE" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "fhirStores": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
      "labels": {
        "KEY": "VALUE"
      }
    },
    {
      ...
    }
  ]
}

라벨 삭제

다음 두 가지 방법 중 하나로 라벨을 삭제할 수 있습니다.

  • 키와 값을 포함하여 라벨을 완전히 삭제하려면 다음 단계에 따라 읽기-수정-쓰기 패턴을 사용합니다.

    1. 리소스의 get() 메서드를 호출하여 현재 라벨을 읽습니다.
    2. 텍스트 편집기를 사용하거나 프로그래밍 방식으로 반환된 라벨을 수정하여 적용가능한 키와 값을 추가하거나 삭제합니다.
    3. 리소스의 patch() 메서드를 호출하여 업데이트된 라벨을 작성합니다.
  • 키를 유지하고 값을 삭제하려면 값을 null로 설정합니다.

curl

다음 샘플은 라벨 값을 null로 설정하여 라벨을 삭제하는 방법을 보여줍니다.

기존 FHIR 저장소에서 라벨을 삭제하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 업데이트할 라벨 데이터
  • labels로 설정된 업데이트 마스크
  • 액세스 토큰

다음 샘플은 curl을 사용하는 PATCH 요청을 보여줍니다.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'labels': {
        'KEY' : null
      }
     }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY":
  }
}

PowerShell

다음 샘플은 라벨 값을 null로 설정하여 라벨을 삭제하는 방법을 보여줍니다.

기존 FHIR 저장소에서 라벨을 삭제하려면 PATCH 요청을 수행하고 다음 정보를 지정합니다.

  • 상위 데이터 세트의 이름
  • FHIR 저장소의 이름
  • 업데이트할 라벨 데이터
  • labels로 설정된 업데이트 마스크
  • 액세스 토큰

다음 샘플은 Windows PowerShell을 사용한 PATCH 요청을 보여줍니다.

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

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'labels': {
        'KEY': nullresource_manager_api
      }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=labels" | Select-Object -Expand Content

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID",
  "labels": {
    "KEY":
  }
}

다음 단계

Cloud Resource Manager API의 다른 라벨 사용 방법 읽어보기