Storage Transfer Service は、Google Cloud のイベント通知をリッスンし、Cloud Storage バケットで追加または更新されたデータを自動的に転送できます。イベント ドリブン転送のメリットについて詳しくは、こちらをご覧ください。
Cloud Storage からのイベントドリブン転送では、Pub/Sub 通知を使用して、ソースバケット内のオブジェクトが変更または追加されたタイミングを確認します。オブジェクトの削除は検出されません。転送元でオブジェクトを削除しても、転送先バケットで関連付けられたオブジェクトは削除されません。
権限を構成する
プロジェクトの Storage Transfer Service サービス エージェントの名前を確認します。
googleServiceAccounts.get
リファレンス ページに移動します。[Try this method] というインタラクティブ パネルが開きます。
パネルの [Request parameters] にプロジェクト ID を入力します。ここで指定するプロジェクトは Storage Transfer Service の管理に使用しているプロジェクトで、これは、ソースバケットのプロジェクトとは異なる場合があります。
[実行] をクリックします。
サービス エージェントのメールアドレスが
accountEmail
の値として返されます。この値をコピーします。サービス エージェントのメールアドレスは
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
の形式です。このロールを
Pub/Sub Subscriber
Storage Transfer Service サービス エージェントに付与します。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 サブスクリプションの通知を待機します。ジョブの詳細ページには、1 時間ごとに 1 つのオペレーションが表示されます。このページには、各ジョブで転送されたデータの詳細も表示されます。
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 の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。