Storage Transfer Service kann Ereignisbenachrichtigungen in AWS oder Google Cloud überwachen automatisch Daten zu übertragen, die in der Quelle hinzugefügt oder aktualisiert wurden Standort. Ereignisgesteuerte Übertragungen werden von AWS S3 oder Cloud Storage unterstützt zu Cloud Storage hinzufügen.
Ereignisgesteuerte Übertragungen überwachen Amazon S3-Ereignisbenachrichtigungen für AWS S3-Quellen an Amazon SQS gesendet. Cloud Storage-Quellen senden an ein Pub/Sub-Abo gesendet.
Vorteile ereignisgesteuerter Übertragungen
Da ereignisgesteuerte Übertragungen auf Änderungen am Quell-Bucket warten, werden nahezu in Echtzeit an das Ziel kopiert. Storage Transfer Service benötigt Listenvorgang für die Quelle ausführen und so Zeit und Geld sparen.
Dies ist unter anderem in folgenden Fällen hilfreich:
Ereignisgesteuerte Analysen: Replizieren Sie Daten von AWS in Cloud Storage, um Analyse und Verarbeitung durchführen.
Cloud Storage-Replikation: Automatisches, asynchrones Objekt aktivieren Replikation zwischen Cloud Storage-Buckets.
Ereignisgesteuerte Übertragungen mit Storage Transfer Service unterscheiden sich von typische Cloud Storage-Replikation, indem Sie eine Kopie Ihrer Daten in einem anderen Bucket.
Dies bietet unter anderem folgende Vorteile:
- Aufbewahrung von Entwicklungs- und Produktionsdaten in separaten Namespaces.
- Freigabe von Daten ohne Zugriff auf den ursprünglichen Bucket.
- Die Sicherung läuft auf einem anderen Kontinent oder in einem Gebiet, das nicht von Dual- und Multi-Region-Speicher.
DR/HA-Einrichtung: Objekte der Reihe nach von der Quelle zum Sicherungsziel replizieren von Minuten:
- Cloudübergreifende Sicherung: Erstellen Sie eine Kopie der AWS S3-Sicherung in Cloud Storage.
- Regions- oder projektübergreifende Sicherung: Kopie von Cloud Storage erstellen Bucket in einer anderen Region oder einem anderen Projekt.
Live-Migration: Eine ereignisgesteuerte Übertragung kann eine Migration mit geringen Ausfallzeiten ermöglichen, die Reihenfolge der Ausfallzeit in Minuten, als Folgeschritt für einmalige Batches Migration.
Ereignisgesteuerte Übertragungen aus Cloud Storage einrichten
Ereignisgesteuerte Übertragungen aus Cloud Storage verwenden Pub/Sub-Benachrichtigungen um zu erfahren, wann Objekte im Quell-Bucket geändert wurden hinzugefügt. Objektlöschungen werden nicht erkannt. Löschen eines Objekts an der Quelle wird das zugehörige Objekt im Ziel-Bucket nicht gelöscht.
Berechtigungen konfigurieren
Suchen Sie den Namen des Storage Transfer Service-Dienst-Agents für Ihr Projekt:
Rufen Sie die Referenzseite
googleServiceAccounts.get
auf.Es wird ein interaktives Steuerfeld mit dem Titel Diese Methode testen geöffnet.
Geben Sie im Steuerfeld unter Anfrageparameter Projekt-ID. Das hier angegebene Projekt muss das Projekt sein, zur Verwaltung des Storage Transfer Service verwenden, der sich von der Quelle unterscheiden kann. des Buckets.
Klicken Sie auf Ausführen.
Die E-Mail-Adresse des Dienst-Agents wird als Wert von
accountEmail
zurückgegeben. Kopieren Sie diesen Wert.Die E-Mail des Dienst-Agents hat das Format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.Gewähren Sie dem Storage Transfer Service-Dienst-Agent die Rolle
Pub/Sub Subscriber
.Cloud Console
Folgen Sie dazu der Anleitung unter Zugriff über die Google Cloud Console steuern um dem Storage Transfer Service-Dienst die Rolle
Pub/Sub Subscriber
zuzuweisen. Die Rolle kann auf Themen-, Abo- oder Projektebene gewährt werden.gcloud
CLIFolgen Sie dazu der Anleitung unter Festlegen einer Richtlinie auf fügen Sie die folgende Bindung hinzu:
{ "role": "roles/pubsub.subscriber", "members": [ "serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com" }
Pub/Sub konfigurieren
Stellen Sie sicher, dass Sie mit dem Voraussetzungen für die Verwendung Pub/Sub mit Cloud Storage.
Konfigurieren Sie die Pub/Sub-Benachrichtigung für Cloud Storage:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Erstellen Sie ein Pull-Abo für das Thema:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_NAME --ack-deadline=300
Übertragungsjob erstellen
Sie können die REST API oder die Google Cloud Console verwenden, um eine ereignisbasierte Übertragungsjob.
Geben Sie keine vertraulichen Daten wie personenidentifizierbare Informationen an (PII) oder Sicherheitsdaten in den Namen des Übertragungsjobs ein. Ressourcennamen können an die Namen anderer Google Cloud-Ressourcen weitergegeben und Google-internen Systemen außerhalb Ihres Projekts zu implementieren.
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Übertragungsjob erstellen auf.
Wählen Sie Cloud Storage sowohl als Quelle als auch als Ziel aus.
Wählen Sie als Planungsmodus die Option Ereignisgesteuert aus und klicken Sie auf Nächster Schritt.
Wählen Sie den Quell-Bucket für diese Übertragung aus.
Geben Sie im Abschnitt Ereignisstream den Namen des Abos ein:
projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID
Legen Sie optional Filter fest und klicken Sie dann auf Nächster Schritt.
Wählen Sie den Ziel-Bucket für diese Übertragung aus.
Geben Sie optional eine Start- und Endzeit für die Übertragung ein. Wenn Sie keine geben Sie eine Uhrzeit an, beginnt die Übertragung sofort und läuft bis manuell beendet wurden.
Geben Sie etwaige Übertragungsoptionen an. Weitere Informationen finden Sie in der Seite Übertragungen erstellen
Klicken Sie auf Erstellen.
Nach der Erstellung wird der Übertragungsjob ausgeführt und ein Event-Listener wartet auf Benachrichtigungen für das Pub/Sub-Abo. Auf der Seite mit den Jobdetails einen Vorgang pro Stunde und enthält Details zu den für jeden Job übertragenen Daten.
REST
Senden Sie Folgendes, um eine ereignisgesteuerte Übertragung mit der REST API zu erstellen: JSON-Objekt zum Endpunkt transferJobs.create an:
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
und eventStreamExpirationTime
sind optional.
Wenn keine Startzeit angegeben wird, wird die Übertragung sofort gestartet. wenn das Ende
angegeben ist, wird die Übertragung fortgesetzt, bis sie manuell gestoppt wird.
Clientbibliotheken
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Go API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Java API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Node.js API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Python API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Ereignisgesteuerte Übertragungen von AWS S3 einrichten
Ereignisgesteuerte Übertragungen von AWS S3 verwenden Benachrichtigungen von Amazon Simple Queue Dienst (SQS), der ermittelt, wenn Objekte im Quell-Bucket geändert wurden, oder hinzugefügt. Objektlöschungen werden nicht erkannt. Löschen eines Objekts an der Quelle wird das zugehörige Objekt im Ziel-Bucket nicht gelöscht.
SQS-Warteschlange erstellen
Rufen Sie in der AWS-Konsole die Seite Einfacher Warteschlangendienst auf.
Klicken Sie auf Warteschlange erstellen.
Geben Sie einen Namen für die Warteschlange ein.
Wählen Sie im Bereich Zugriffsrichtlinie die Option Erweitert aus. Ein JSON-Objekt ist angezeigt:
{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__owner_statement", "Effect": "Allow", "Principal": { "AWS": "01234567890" }, "Action": [ "SQS:*" ], "Resource": "arn:aws:sqs:us-west-2:01234567890:test" } ] }
Die Werte für
AWS
undResource
sind für jedes Projekt eindeutig.Kopieren Sie Ihre spezifischen Werte für
AWS
undResource
aus der angezeigten JSON-Datei. in das folgende JSON-Snippet ein:{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "RESOURCE", "Condition": { "StringEquals": { "aws:SourceAccount": "AWS" }, "ArnLike": { "aws:SourceArn": "S3_BUCKET_ARN" } } } ] }
Die Werte der Platzhalter in der vorherigen JSON-Datei verwenden Folgendes: Format:
- AWS ist ein numerischer Wert, der Ihre Amazon Web Services darstellt.
Projekt arbeiten. Beispiel:
"aws:SourceAccount": "1234567890"
. - RESOURCE ist eine Amazon Resource Number (ARN), die
aus dieser Warteschlange. Beispiel:
"Resource": "arn:aws:sqs:us-west-2:01234567890:test"
- S3_BUCKET_ARN ist ein ARN, der den Quell-Bucket identifiziert. Beispiel:
"aws:SourceArn": "arn:aws:s3:::example-aws-bucket"
Sie können Den ARN eines Buckets auf dem Tab Eigenschaften der Bucket-Detailseite finden in der AWS-Konsole.
- AWS ist ein numerischer Wert, der Ihre Amazon Web Services darstellt.
Projekt arbeiten. Beispiel:
Ersetzen Sie die JSON-Datei im Abschnitt Zugriffsrichtlinie durch die aktualisierte JSON-Datei. JSON oben.
Klicken Sie auf Warteschlange erstellen.
Notieren Sie sich anschließend den Amazon Resource Name (ARN) der Warteschlange. Der ARN hat die folgendes Format:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Benachrichtigungen für Ihren S3-Bucket aktivieren
Rufen Sie in der AWS-Konsole die Seite S3 auf.
Wählen Sie in der Liste Buckets Ihren Quell-Bucket aus.
Wählen Sie den Tab Eigenschaften aus.
Klicken Sie im Abschnitt Terminbenachrichtigungen auf Ereignisbenachrichtigung erstellen.
Geben Sie einen Namen für das Ereignis ein.
Wählen Sie im Bereich Ereignistypen die Option Alle Ereignisse zum Erstellen von Objekten aus.
Wählen Sie als Ziel die Option SQS-Warteschlange und dann die erstellte Warteschlange aus. für diese Übertragung.
Klicken Sie auf Änderungen speichern.
Berechtigungen konfigurieren
Folgen Sie dazu der Anleitung unter Zugriff auf eine Quelle konfigurieren: Amazon S3 um entweder eine Zugriffsschlüssel-ID und einen geheimen Schlüssel oder eine föderierte Identität zu erstellen. Rolle.
Ersetzen Sie die JSON-Datei für die benutzerdefinierten Berechtigungen durch Folgendes:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:ChangeMessageVisibility", "sqs:ReceiveMessage", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::AWS_BUCKET_NAME", "arn:aws:s3:::AWS_BUCKET_NAME/*", "AWS_QUEUE_ARN" ] } ] }
Notieren Sie sich nach der Erstellung die folgenden Informationen:
- Notieren Sie sich für den Nutzer die Zugriffsschlüssel-ID und den geheimen Schlüssel.
- Notieren Sie sich für eine Federated Identity-Rolle den Amazon Resource Name (ARN),
mit dem Format
arn:aws:iam::AWS_ACCOUNT:role/ROLE_NAME
Übertragungsjob erstellen
Sie können die REST API oder die Google Cloud Console verwenden, um eine ereignisbasierte Übertragungsjob.
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Übertragungsjob erstellen auf.
Wählen Sie Amazon S3 als Quelltyp und Cloud Storage als das Ziel.
Wählen Sie als Planungsmodus die Option Ereignisgesteuert aus und klicken Sie auf Nächster Schritt.
Geben Sie den Namen Ihres S3-Buckets ein. Der Bucket-Name ist der Name, der in der AWS Management Console angezeigt wird. Beispiel:
my-aws-bucket
Wählen Sie Ihre Authentifizierungsmethode aus und geben Sie die erforderlichen Informationen ein. die Sie im vorherigen Abschnitt erstellt und notiert haben.
Geben Sie den ARN der Amazon SQS-Warteschlange ein, den Sie zuvor erstellt haben. Dabei werden die folgendes Format:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Legen Sie optional Filter fest und klicken Sie dann auf Nächster Schritt.
Wählen Sie den Cloud Storage-Ziel-Bucket und optional den Pfad aus.
Geben Sie optional eine Start- und Endzeit für die Übertragung ein. Wenn Sie keine geben Sie eine Uhrzeit an, beginnt die Übertragung sofort und läuft bis manuell beendet.
Geben Sie etwaige Übertragungsoptionen an. Weitere Informationen finden Sie in der Seite Übertragungen erstellen
Klicken Sie auf Erstellen.
Nach der Erstellung wird der Übertragungsjob ausgeführt und ein Event-Listener wartet auf in der SQS-Warteschlange. Auf der Seite mit den Jobdetails wird stündlich durchgeführte Vorgänge sowie Details zu den für jeden Auftrag übertragenen Daten.
REST
Senden Sie Folgendes, um eine ereignisgesteuerte Übertragung mit der REST API zu erstellen: JSON-Objekt zum Endpunkt transferJobs.create an:
transfer_job { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec" { "awsS3DataSource" { "bucketName": "AWS_SOURCE_NAME", "roleArn": "arn:aws:iam::1234567891011:role/role_for_federated_auth" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } "eventStream" { "name": "arn:aws:sqs:us-east-1:1234567891011:s3-notification-queue", "eventStreamStartTime": "2022-12-02T01:00:00+00:00", "eventStreamExpirationTime": "2023-01-31T01:00:00+00:00" } }
eventStreamStartTime
und eventStreamExpirationTime
sind optional.
Wenn keine Startzeit angegeben wird, wird die Übertragung sofort gestartet. wenn das Ende
angegeben ist, wird die Übertragung fortgesetzt, bis sie manuell gestoppt wird.
Clientbibliotheken
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Go API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Java API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Node.js API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken Weitere Informationen finden Sie in der Storage Transfer Service Python API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.