Storage Transfer Service는 Google Cloud의 이벤트 알림을 리슨하여 Cloud Storage 버킷에 추가 또는 업데이트된 데이터를 자동으로 전송할 수 있습니다. 이벤트 기반 전송의 이점에 대해 자세히 알아보세요.
Cloud Storage의 이벤트 기반 전송은 Pub/Sub 알림을 사용하여 소스 버킷의 객체가 수정되거나 추가된 시점을 확인합니다. 객체 삭제는 감지되지 않습니다. 소스에서 객체를 삭제해도 대상 버킷에 있는 연결된 객체는 삭제되지 않습니다.
권한 구성
프로젝트의 Storage Transfer Service 서비스 에이전트 이름을 찾습니다.
googleServiceAccounts.get
참조 페이지로 이동하세요.이 메서드 사용해 보기라는 제목의 대화형 패널이 열립니다.
패널의 요청 매개변수에 프로젝트 ID를 입력합니다. 여기에서 지정하는 프로젝트는 Storage Transfer Service 관리를 위해 사용 중인 프로젝트여야 하고, 이 프로젝트는 소스 버킷의 프로젝트와 다를 수 있습니다.
실행을 클릭합니다.
서비스 에이전트의 이메일이
accountEmail
값으로 반환됩니다. 이 값을 복사합니다.서비스 에이전트의 이메일에는
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
형식이 사용됩니다.Storage Transfer Service 서비스 에이전트에
Pub/Sub Subscriber
역할을 부여합니다.Cloud 콘솔
Google Cloud 콘솔을 통한 액세스 제어의 안내에 따라 Storage Transfer Service 서비스에
Pub/Sub Subscriber
역할을 부여합니다. 역할은 주제, 구독 또는 프로젝트 수준에서 부여할 수 있습니다.gcloud
CLI정책 설정의 안내에 따라 다음 바인딩을 추가합니다.
{ "role": "roles/pubsub.subscriber", "members": [ "serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com" }
Pub/Sub 구성
Cloud Storage에서 Pub/Sub를 사용하기 위한 기본 요건을 충족했는지 확인합니다.
Cloud Storage용 Pub/Sub 알림 구성
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
주제에 대한 pull 구독을 만듭니다.
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_NAME --ack-deadline=300
전송 작업 만들기
REST API 또는 Google Cloud 콘솔을 사용하여 이벤트 기반 전송 작업을 만들 수 있습니다.
전송 작업 이름에 개인 식별 정보(PII) 또는 보안 데이터와 같은 민감한 정보를 포함하지 마세요. 리소스 이름은 다른 Google Cloud 리소스 이름으로 전파될 수 있으며 프로젝트 외부의 Google 내부 시스템에 노출될 수 있습니다.
Cloud 콘솔
Google Cloud 콘솔에서 전송 작업 만들기 페이지로 이동합니다.
Cloud Storage를 소스와 대상으로 선택합니다.
예약 모드로 이벤트 기반을 선택하고 다음 단계를 클릭합니다.
이 전송의 소스 버킷을 선택합니다.
이벤트 스트림 섹션에서 다음과 같이 구독 이름을 입력합니다.
projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID
원하는 경우 필터를 정의한 후 다음 단계를 클릭합니다.
이 전송의 대상 버킷을 선택합니다.
원하는 경우 전송 시작 시간과 종료 시간을 입력합니다. 시간을 지정하지 않으면 전송이 즉시 시작되고 수동으로 중지할 때까지 실행됩니다.
전송 옵션을 지정합니다. 자세한 내용은 전송 만들기 페이지에서 확인할 수 있습니다.
만들기를 클릭합니다.
일단 생성되면 전송 작업이 시작되고 이벤트 리스너가 Pub/Sub 구독에서 알림을 기다립니다. 작업 세부정보 페이지에는 시간당 하나의 작업이 표시되며 각 작업에 전송되는 데이터에 대한 세부정보가 포함됩니다.
REST
REST API를 사용하여 이벤트 기반 전송을 만들려면 다음 JSON 객체를 transferJobs.create 엔드포인트로 전송합니다.
transfer_job { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec" { "gcsDataSource" { "bucketName": "GCS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } "eventStream" { "name": "projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID", "eventStreamStartTime": "2022-12-02T01:00:00+00:00", "eventStreamExpirationTime": "2023-01-31T01:00:00+00:00" } }
eventStreamStartTime
및 eventStreamExpirationTime
은 선택사항입니다.
시작 시간을 생략하면 전송이 즉시 시작되고, 종료 시간을 생략하면 전송이 수동으로 중지될 때까지 계속됩니다.
클라이언트 라이브러리
Go
Storage Transfer Service용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Storage Transfer Service 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Storage Transfer Service Go API 참고 문서를 참조하세요.
Storage Transfer Service에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Storage Transfer Service용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Storage Transfer Service 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Storage Transfer Service Java API 참고 문서를 참조하세요.
Storage Transfer Service에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Storage Transfer Service용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Storage Transfer Service 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Storage Transfer Service Node.js API 참고 문서를 참조하세요.
Storage Transfer Service에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Storage Transfer Service용 클라이언트 라이브러리를 설치하고 사용하는 방법은 Storage Transfer Service 클라이언트 라이브러리를 참조하세요. 자세한 내용은 Storage Transfer Service Python API 참고 문서를 참조하세요.
Storage Transfer Service에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.