일괄 작업 만들기 및 관리

이 페이지에서는 스토리지 일괄 작업을 생성, 확인, 나열, 취소, 삭제하는 방법을 설명합니다. 또한 스토리지 일괄 작업에서 Cloud 감사 로그를 사용하는 방법도 설명합니다.

시작하기 전에

스토리지 일괄 작업을 만들고 관리하려면 다음 섹션의 단계를 완료하세요.

Storage Intelligence 구성

스토리지 일괄 작업을 만들고 관리하려면 작업을 실행할 버킷에서 Storage Intelligence를 구성합니다.

Google Cloud CLI 설정

Google Cloud CLI 버전 516.0.0 이상을 사용해야 합니다.

기본 프로젝트 설정

스토리지 일괄 작업을 만들 프로젝트를 설정합니다.

gcloud config set project PROJECT_ID

여기서 PROJECT_ID는 프로젝트 ID입니다.

API 사용 설정

Storage Batch Operations API를 사용 설정합니다.

gcloud services enable storagebatchoperations.googleapis.com

매니페스트 만들기

객체 선택에 매니페스트를 사용하려면 매니페스트를 만듭니다.

스토리지 일괄 작업 만들기

이 섹션에서는 스토리지 일괄 작업을 만드는 방법을 설명합니다.

명령줄

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 개발 환경에서 gcloud storage batch-operations jobs create 명령어를 실행합니다.

    gcloud storage batch-operations jobs create JOB_NAME --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG

    각 항목의 의미는 다음과 같습니다.

    • JOB_NAME은 스토리지 일괄 작업의 이름입니다.
    • BUCKET_NAME은 처리할 객체가 하나 이상 포함된 버킷의 이름입니다.
    • OBJECT_SELECTION_FLAG는 다음 플래그 중 하나입니다.

      • --included-object-prefixes: 하나 이상의 객체 접두사를 지정합니다. 예를 들면 다음과 같습니다.

        • 단일 접두사가 일치하도록 하려면 --included-object-prefixes='prefix1'를 사용하세요.
        • 여러 접두사가 일치하도록 하려면 쉼표로 구분된 접두사 목록(--included-object-prefixes='prefix1,prefix2')을 사용합니다.
        • 모든 객체를 포함하려면 빈 프리픽스 --included-object-prefixes=''를 사용하세요.
      • --manifest-location: 매니페스트 위치를 지정합니다. 예를 들면 gs://bucket_name/path/object_name.csv입니다.

    • JOB_TYPE_FLAG작업 유형에 따라 다음 플래그 중 하나입니다.

      • --delete-object: 하나 이상의 객체를 삭제합니다.

      • --put-metadata: 객체 메타데이터를 업데이트합니다. 객체 메타데이터는 키-값 쌍으로 저장됩니다. 수정하려는 메타데이터의 키-값 쌍을 지정합니다. 하나 이상의 키-값 쌍을 목록으로 지정할 수 있습니다.

      • --rewrite-object: 하나 이상의 객체의 고객 관리 암호화 키를 업데이트합니다.

      • --put-object-event-based-hold: 이벤트 기반 객체 보존 조치를 사용 설정합니다.

      • --no-put-object-event-based-hold: 이벤트 기반 객체 보존 조치를 사용 중지합니다.

      • --put-object-temporary-hold: 임시 객체 보존 조치를 사용 설정합니다.

      • --no-put-object-temporary-hold: 임시 객체 보존 조치를 사용 중지합니다.

REST API

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. 스토리지 일괄 작업설정이 포함된 JSON 파일을 만듭니다. 다음은 일반적으로 포함되는 설정입니다.

    {
        "Description": "JOB_DESCRIPTION",
        "BucketList":
        {
        "Buckets":
        [
         {
           "Bucket": "BUCKET_NAME",
           "Manifest": {
              "manifest_location": "MANIFEST_LOCATION"
               }
           "PrefixList": {
              "include_object_prefixes": "OBJECT_PREFIXES"
               }
         }
        ]
        },
        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
         }
        "RewriteObject": {
          "kms_key":"KMS_KEY_VALUE"
          }
        "PutMetadata": {
          METADATA_KEY= METADATA_VALUE,
          ...,
          }
        "PutObjectHold": {
          "temporary_hold": TEMPORARY_HOLD_VALUE,
          "event_based_hold": EVENT_BASED_HOLD_VALUE
        }
     }
         

    각 항목의 의미는 다음과 같습니다.

    • JOB_NAME은 스토리지 일괄 작업의 이름입니다.

    • JOB_DESCRIPTION은 스토리지 일괄 작업의 설명입니다.

    • BUCKET_NAME은 처리할 객체가 하나 이상 포함된 버킷의 이름입니다.

    • 처리할 객체를 지정하려면 JSON 파일에서 다음 속성 중 하나를 사용하세요.

      • MANIFEST_LOCATION매니페스트 위치입니다. 예를 들면 gs://bucket_name/path/object_name.csv입니다.

      • OBJECT_PREFIXES는 하나 이상의 객체 접두사가 포함된 쉼표로 구분된 목록입니다. 모든 객체와 일치시키려면 빈 목록을 사용합니다.

    • 처리하려는 작업에 따라 다음 옵션 중 하나를 지정합니다.

      • 객체 삭제:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        여기서 OBJECT_DELETION_VALUE는 객체를 삭제하는 TRUE입니다.

      • 객체의 고객 관리 암호화 키를 업데이트합니다.

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        여기서 KMS_KEY_VALUE는 업데이트하려는 객체의 KMS 키 값입니다.

      • 객체 메타데이터 업데이트:

        "PutMetadata": {
        METADATA_KEY= METADATA_VALUE,
        ...,
        }

        여기서 METADATA_VALUE객체의 메타데이터 키 값입니다. 하나 이상의 키-값 쌍을 목록으로 지정할 수 있습니다.

      • 객체 보존 조치를 업데이트합니다.

        "PutObjectHold": {
        "temporary_hold": TEMPORARY_HOLD_VALUE,
        "event_based_hold": EVENT_BASED_HOLD_VALUE
        }

        각 항목의 의미는 다음과 같습니다.

        • TEMPORARY_HOLD_VALUE는 임시 객체 보존 조치를 사용 설정하거나 중지하는 데 사용됩니다. 값이 1이면 보존 조치가 사용 설정되고 값이 2이면 보존 조치가 사용 중지됩니다.

        • EVENT_BASED_HOLD_VALUE는 이벤트 기반 객체 보존 조치를 사용 설정하거나 중지하는 데 사용됩니다. 값이 1이면 보존 조치가 사용 설정되고 값이 2이면 보존 조치가 사용 중지됩니다.

  3. cURL을 사용하여 POST 스토리지 일괄 작업 요청으로 JSON API를 호출합니다.

    curl -X POST --data-binary @JSON_FILE_NAME \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     "https://storagebatchoperations.googleapis.com/v1/project=PROJECT_ID/locations/global/jobs?job_id=JOB_ID"

    각 항목의 의미는 다음과 같습니다.

    • JSON_FILE_NAME은 JSON 파일의 이름입니다.
    • PROJECT_ID는 프로젝트의 ID 또는 번호입니다. 예를 들면 my-project입니다.
    • JOB_ID는 스토리지 일괄 작업의 이름입니다.

스토리지 일괄 작업 세부정보 가져오기

이 섹션에서는 스토리지 일괄 작업 세부정보를 가져오는 방법을 설명합니다.

명령줄

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 개발 환경에서 gcloud storage batch-operations jobs describe 명령어를 실행합니다.

    gcloud storage batch-operations jobs describe JOB_ID

    각 항목의 의미는 다음과 같습니다.

    JOB_ID는 스토리지 일괄 작업의 이름입니다.

REST API

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. cURL을 사용하여 GET 스토리지 일괄 작업 요청으로 JSON API를 호출합니다.

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?JOB_ID"

    각 항목의 의미는 다음과 같습니다.

    • PROJECT_ID는 프로젝트의 ID 또는 번호입니다. 예를 들면 my-project입니다.
    • JOB_ID는 스토리지 일괄 작업의 이름입니다.

스토리지 일괄 작업 나열

이 섹션에서는 프로젝트 내 스토리지 일괄 작업을 나열하는 방법을 설명합니다.

명령줄

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 개발 환경에서 gcloud storage batch-operations jobs list 명령어를 실행합니다.

    gcloud storage batch-operations jobs list

REST API

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. cURL를 사용하여 LIST 스토리지 일괄 작업 요청으로 JSON API를 호출합니다.

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs"

    각 항목의 의미는 다음과 같습니다.

    PROJECT_ID는 프로젝트의 ID 또는 번호입니다. 예를 들면 my-project입니다.

스토리지 일괄 작업 취소

이 섹션에서는 프로젝트 내에서 스토리지 일괄 작업을 취소하는 방법을 설명합니다.

명령줄

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 개발 환경에서 gcloud storage batch-operations jobs cancel 명령어를 실행합니다.

    gcloud storage batch-operations jobs cancel JOB_ID

    각 항목의 의미는 다음과 같습니다.

    JOB_ID는 스토리지 일괄 작업의 이름입니다.

REST API

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. cURL을 사용하여 CANCEL 스토리지 일괄 작업 요청으로 JSON API를 호출합니다.

    curl -X CANCEL \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    각 항목의 의미는 다음과 같습니다.

    • PROJECT_ID는 프로젝트의 ID 또는 번호입니다. 예를 들면 my-project입니다.

    • JOB_ID는 스토리지 일괄 작업의 이름입니다.

스토리지 일괄 작업 삭제

이 섹션에서는 스토리지 일괄 작업을 삭제하는 방법을 설명합니다.

명령줄

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 개발 환경에서 gcloud storage batch-operations jobs delete 명령어를 실행합니다.

    gcloud storage batch-operations jobs delete JOB_ID

    각 항목의 의미는 다음과 같습니다.

    JOB_ID는 스토리지 일괄 작업의 이름입니다.

REST API

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. cURL을 사용하여 DELETE 스토리지 일괄 작업 요청으로 JSON API를 호출합니다.

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    각 항목의 의미는 다음과 같습니다.

    • PROJECT_ID는 프로젝트의 ID 또는 번호입니다. 예를 들면 my-project입니다.

    • JOB_ID는 스토리지 일괄 작업의 이름입니다.

Storage Insights 데이터 세트를 사용하여 스토리지 일괄 작업 만들기

Storage Insights 데이터 세트를 사용하여 스토리지 일괄 작업을 만들려면 다음 섹션의 단계를 완료하세요.

Storage Insights 데이터 세트를 사용하여 매니페스트 만들기

BigQuery에서 데이터를 추출하여 스토리지 일괄 작업의 매니페스트를 만들 수 있습니다. 이렇게 하려면 연결된 데이터 세트를 쿼리하고 결과 데이터를 CSV 파일로 내보낸 후 Cloud Storage 버킷에 저장해야 합니다. 그러면 스토리지 일괄 작업에서 이 CSV 파일을 매니페스트로 사용할 수 있습니다.

BigQuery의 Storage Insights 데이터 세트 보기에서 다음 SQL 쿼리를 실행하면 이름이 Temp_Training이고 크기가 1KiB를 초과하는 객체가 검색됩니다.

  EXPORT DATA OPTIONS(
   uri=`URI`,
   format=`CSV`,
   overwrite=OVERWRITE_VALUE,
   field_delimiter=',') AS
  SELECT bucket, name, generation
  FROM DATASET_VIEW_NAME
  WHERE bucket = BUCKET_NAME
  AND name LIKE (`Temp_Training%`)
  AND size > 1024 * 1024
  AND snapshotTime = SNAPSHOT_TIME
  

각 항목의 의미는 다음과 같습니다.

  • URI는 매니페스트가 포함된 버킷의 URI입니다. 예를 들면 gs://bucket_name/path_to_csv_file/*.csv입니다. *.csv 와일드 카드를 사용하면 BigQuery에서 결과를 여러 CSV 파일로 내보냅니다.
  • OVERWRITE_VALUE는 불리언 값입니다. true로 설정하면 내보내기 작업이 지정된 위치의 기존 파일을 덮어씁니다.
  • DATASET_VIEW_NAME은 Storage Insights 데이터 세트 뷰의 정규화된 이름으로 PROJECT_ID.DATASET_ID.VIEW_NAME 형식입니다. 데이터 세트의 이름을 찾으려면 연결된 데이터 세트를 확인합니다.

    각 항목의 의미는 다음과 같습니다.

    • PROJECT_ID는 프로젝트의 ID 또는 번호입니다. 예를 들면 my-project입니다.
    • DATASET_ID는 데이터 세트 이름입니다. 예를 들면 objects-deletion-dataset입니다.
    • VIEW_NAME은 데이터 세트 뷰의 이름입니다. 예를 들면 bucket_attributes_view입니다.
  • BUCKET_NAME은 버킷의 이름입니다. 예를 들면 my-bucket입니다.

  • SNAPSHOT_TIME는 Storage Insights 데이터 세트 보기의 스냅샷 시간입니다. 예를 들면 2024-09-10T00:00:00Z입니다.

스토리지 일괄 작업 만들기

매니페스트에 포함된 객체를 처리하는 스토리지 일괄 작업을 만들려면 다음 단계를 완료하세요.

명령줄

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 개발 환경에서 gcloud storage batch-operations jobs create 명령어를 실행합니다.

    gcloud storage batch-operations jobs create \
    JOB_ID \
    --bucket=SOURCE_BUCKET_NAME \
    --manifest-location=URI \
    --JOB_TYPE_FLAG

    각 항목의 의미는 다음과 같습니다.

    • JOB_ID는 스토리지 일괄 작업의 이름입니다.

    • SOURCE_BUCKET_NAME은 처리할 객체가 하나 이상 포함된 버킷입니다. 예를 들면 my-bucket입니다.

    • URI는 매니페스트가 포함된 버킷의 URI입니다. 예를 들면 gs://bucket_name/path_to_csv_file/*.csv입니다. *.csv 와일드 카드를 사용하면 BigQuery에서 결과를 여러 CSV 파일로 내보냅니다.

    • JOB_TYPE_FLAG작업 유형에 따라 다음 플래그 중 하나입니다.

      • --delete-object: 하나 이상의 객체를 삭제합니다.

      • --put-metadata: 객체 메타데이터를 업데이트합니다. 객체 메타데이터는 키-값 쌍으로 저장됩니다. 수정하려는 메타데이터의 키-값 쌍을 지정합니다. 하나 이상의 키-값 쌍을 목록으로 지정할 수 있습니다.

      • --rewrite-object: 하나 이상의 객체의 고객 관리 암호화 키를 업데이트합니다.

      • --put-object-event-based-hold: 이벤트 기반 객체 보존 조치를 사용 설정합니다.

      • --no-put-object-event-based-hold: 이벤트 기반 객체 보존 조치를 사용 중지합니다.

      • --put-object-temporary-hold: 임시 객체 보존 조치를 사용 설정합니다.

      • --no-put-object-temporary-hold: 임시 객체 보존 조치를 사용 중지합니다.

스토리지 일괄 작업에 Cloud 감사 로그 사용

스토리지 일괄 작업은 Cloud Storage Cloud 감사 로그에 Cloud Storage 객체의 변환을 기록합니다. Cloud Storage와 함께 CCloud 감사 로그를 사용하여 스토리지 일괄 작업이 실행하는 객체 변환을 추적할 수 있습니다. 감사 로그 사용 설정에 관한 자세한 내용은 감사 로그 사용 설정을 참고하세요. 감사 로그 항목에서 값이 StorageBatchOperationscallUserAgent 메타데이터 필드는 스토리지 일괄 작업 변환을 나타냅니다.

다음 단계