Der Storage Transfer Service kann Ereignisbenachrichtigungen in AWS empfangen, um Daten, die am Speicherort der Quelle hinzugefügt oder aktualisiert wurden, automatisch in einen Cloud Storage-Bucket zu übertragen. Weitere Informationen zu den Vorteilen ereignisgesteuerter Übertragungen
Bei ereignisgesteuerten Übertragungen werden Amazon S3-Ereignisbenachrichtigungen an Amazon SQS gesendet, um zu erfahren, wann Objekte im Quell-Bucket geändert oder hinzugefügt wurden. Das Löschen von Objekten wird nicht erkannt. Wenn Sie ein Objekt in der Quelle löschen, wird das zugehörige Objekt im Ziel-Bucket nicht gelöscht.
SQS-Warteschlange erstellen
Rufen Sie in der AWS Console die Seite Simple Queue Service auf.
Klicken Sie auf Warteschlange erstellen.
Geben Sie einen Namen für diese Warteschlange ein.
Wählen Sie im Bereich Zugriffsrichtlinie die Option Erweitert aus. Ein JSON-Objekt wird so 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 von
AWS
undResource
sind für jedes Projekt eindeutig.Kopieren Sie die Werte für
AWS
undResource
aus der angezeigten JSON-Datei in das folgende JSON-Snippet:{ "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 im obigen JSON-Code haben folgendes Format:
- AWS ist ein numerischer Wert, der Ihr Amazon Web Services-Projekt darstellt. Beispiel:
"aws:SourceAccount": "1234567890"
. - RESOURCE ist eine Amazon Resource Number (ARN), die diese Warteschlange identifiziert. Beispiel:
"Resource": "arn:aws:sqs:us-west-2:01234567890:test"
- S3_BUCKET_ARN ist eine ARN, die den Quell-Bucket identifiziert. Beispiel:
"aws:SourceArn": "arn:aws:s3:::example-aws-bucket"
Sie finden die ARN eines Buckets auf der Seite mit den Bucket-Details in der AWS-Konsole auf dem Tab Properties (Eigenschaften).
- AWS ist ein numerischer Wert, der Ihr Amazon Web Services-Projekt darstellt. Beispiel:
Ersetzen Sie die im Abschnitt Zugriffsrichtlinie angezeigte JSON durch die aktualisierte JSON-Datei oben.
Klicken Sie auf Warteschlange erstellen.
Notieren Sie sich den Amazon Resource Name (ARN) der Warteschlange. Die ARN hat folgendes Format:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Benachrichtigungen für Ihren S3-Bucket aktivieren
Rufen Sie in der AWS Console die Seite S3 auf.
Wählen Sie in der Liste Buckets den Quell-Bucket aus.
Wählen Sie den Tab Eigenschaften aus.
Klicken Sie im Bereich Terminbenachrichtigungen auf Terminbenachrichtigung erstellen.
Geben Sie einen Namen für dieses Ereignis an.
Wählen Sie im Bereich Ereignistypen die Option Alle Ereignisse vom Typ „Objekt erstellt“ aus.
Wählen Sie als Ziel SQS-Warteschlange und dann die Warteschlange aus, die Sie für diese Übertragung erstellt haben.
Klicken Sie auf Änderungen speichern.
Berechtigungen konfigurieren
Folgen Sie der Anleitung unter Zugriff auf eine Quelle konfigurieren: Amazon S3, um entweder eine Zugriffsschlüssel-ID und einen geheimen Schlüssel oder eine Rolle für föderierte Identitäten zu erstellen.
Ersetzen Sie das JSON-Objekt für benutzerdefinierte 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:::S3_BUCKET_NAME", "arn:aws:s3:::S3_BUCKET_NAME/*", "AWS_QUEUE_ARN" ] } ] }
Notieren Sie sich nach dem Erstellen die folgenden Informationen:
- Notieren Sie sich für einen Nutzer die Zugriffsschlüssel-ID und den geheimen Schlüssel.
- Notieren Sie sich für eine Rolle mit föderierter Identität den Amazon Resource Name (ARN). Er hat das Format
arn:aws:iam::AWS_ACCOUNT:role/ROLE_NAME
.
Übertragungsjob erstellen
Sie können einen ereignisbasierten Übertragungsjob mit der REST API oder der Google Cloud Console erstellen.
Cloud Console
Rufen Sie in der Google Cloud Console die Seite Übertragungsjob erstellen auf.
Wählen Sie als Quelltyp Amazon S3 und als Ziel Cloud Storage aus.
Wählen Sie als Planungsmodus die Option Ereignisgesteuert aus und klicken Sie auf Weiterer 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 die Authentifizierungsmethode aus und geben Sie die erforderlichen Informationen ein, die Sie im vorherigen Abschnitt erstellt und notiert haben.
Geben Sie den ARN der zuvor erstellten Amazon SQS-Warteschlange ein. Sie hat folgendes Format:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Optional: Definieren Sie Filter und klicken Sie dann auf Vorgehen.
Wählen Sie den Ziel-Cloud Storage-Bucket und optional den Pfad aus.
Optional: Geben Sie eine Start- und Endzeit für die Übertragung ein. Wenn Sie keine Uhrzeit angeben, beginnt die Übertragung sofort und läuft, bis sie manuell beendet wird.
Geben Sie Optionen für die Übertragung an. Weitere Informationen finden Sie auf der Seite Übertragungen erstellen.
Klicken Sie auf Erstellen.
Nach der Erstellung wird der Übertragungsjob gestartet und ein Ereignisempfänger wartet auf Benachrichtigungen in der SQS-Warteschlange. Auf der Seite mit den Jobdetails wird jede Stunde eine Operation angezeigt. Außerdem sind Details zu den für jeden Job übertragenen Daten enthalten.
REST
Wenn Sie eine ereignisgesteuerte Übertragung mit der REST API erstellen möchten, senden Sie das folgende JSON-Objekt an den Endpunkt transferJobs.create:
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 die Startzeit weggelassen wird, beginnt die Übertragung sofort. Wenn die Endzeit weggelassen wird, wird die Übertragung fortgesetzt, bis sie manuell beendet 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 Referenzdokumentation zur Storage Transfer Service Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich beim 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 Referenzdokumentation zur Storage Transfer Service Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich beim 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 Referenzdokumentation zur Storage Transfer Service Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich beim 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 Referenzdokumentation zur Storage Transfer Service Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich beim Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.