Storage Transfer Service kann Ereignisbenachrichtigungen in AWS abrufen, um automatisch Daten, die am Quellspeicherort hinzugefügt oder aktualisiert wurden, in einen Cloud Storage-Bucket zu übertragen. Weitere Informationen zu den Vorteilen von ereignisgesteuerten Übertragungen
Bei ereignisgesteuerten Übertragungen wird auf Amazon S3-Ereignisbenachrichtigungen gewartet, die an Amazon SQS gesendet werden, 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.
Bei ereignisgesteuerten Übertragungen wird immer ein Cloud Storage-Bucket als Ziel verwendet.
Hinweis
Folgen Sie der Anleitung, um die erforderlichen Berechtigungen für Ihren Cloud Storage-Ziel-Bucket zu erteilen:
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 Abschnitt Zugriffsrichtlinie die Option Erweitert aus. Ein JSON-Objekt wird angezeigt.
Standardmäßige AWS-Regionen
{ "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" } ] }
AWS GovCloud-Regionen
{ "Version": "2008-10-17", "Id": "\_\_default\_policy\_ID", "Statement": [ { "Sid": "\_\_owner\_statement", "Effect": "Allow", "Principal": { "AWS": "01234567890" }, "Action": [ "SQS:*" ], "Resource": "arn:aws-us-gov:sqs:us-gov-west-1:01234567890:test" } ] }
Kopieren Sie die Werte von
AWSundResource. Sie sind für jedes Projekt eindeutig.Fügen Sie Ihre spezifischen Werte für
AWSundResourceaus dem vorherigen Schritt in das folgende JSON-Snippet ein:Standardmäßige AWS-Regionen
{ "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": "arn:aws:s3:::S3_BUCKET_NAME" } } } ] }
AWS GovCloud-Regionen
{ "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": "arn:aws-us-gov:s3:::S3_BUCKET_NAME" } } } ] }
Ersetzen Sie S3_BUCKET_NAME durch den Namen des S3-Quell-Buckets.
Kopieren Sie dieses vollständige JSON-Snippet und ersetzen Sie damit das JSON, das im Bereich Zugriffsrichtlinie angezeigt wird.
Klicken Sie auf Warteschlange erstellen.
Notieren Sie sich nach Abschluss den Amazon Resource Name (ARN) der Warteschlange.
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 Ereignisbenachrichtigungen auf Ereignisbenachrichtigung erstellen.
Geben Sie einen Namen für dieses Ereignis an.
Wählen Sie im Bereich Ereignistypen die Option Alle Ereignisse zum Erstellen von Objekten aus.
Wählen Sie als Ziel die Option SQS-Warteschlange aus und wählen Sie 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 die Verbundidentität zu erstellen.
Verwenden Sie beim Befolgen der Anleitung den folgenden JSON-Code, wenn Sie aufgefordert werden, eine benutzerdefinierte Rolle oder eine benutzerdefinierte Vertrauensrichtlinie anzugeben:
Standardmäßige AWS-Regionen
{ "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 föderierte Identitätsrolle den Amazon Resource Name (ARN) im folgenden Format:
arn:aws:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME
AWS GovCloud-Regionen
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:ChangeMessageVisibility", "sqs:ReceiveMessage", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws-us-gov:s3:::S3_BUCKET_NAME", "arn:aws-us-gov: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 Federated Identity-Rolle den Amazon Resource Name (ARN) im folgenden Format:
arn:aws-us-gov:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME
Übertragungsjob erstellen
Sie können die REST API oder die Google Cloud Console verwenden, um einen ereignisbasierten Übertragungsjob zu erstellen.
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 Ziel aus.
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 angeforderten Informationen ein, die Sie im vorherigen Abschnitt erstellt und notiert haben.
Geben Sie den ARN der Amazon SQS-Warteschlange ein, die Sie zuvor erstellt haben. Dazu wird eines der folgenden Formate verwendet:
- Für Standard-AWS-Regionen:
arn:aws:sqs:AWS_REGION:AWS_ACCOUNT:AWS_QUEUE_NAME - Für AWS GovCloud-Regionen:
arn:aws-us-gov:sqs:AWS_REGION:AWS_ACCOUNT:AWS_QUEUE_NAME
- Für Standard-AWS-Regionen:
Optional: Definieren Sie Filter und klicken Sie dann auf Nächster Schritt.
Wählen Sie den Cloud Storage-Ziel-Bucket und optional den Pfad aus.
Optional: Geben Sie eine Start- und Endzeit für die Übertragung ein. Wenn Sie keine Zeit angeben, beginnt die Übertragung sofort und wird fortgesetzt, bis sie manuell beendet wird.
Geben Sie Übertragungsoptionen an. Weitere Informationen finden Sie auf der Seite Übertragungen erstellen.
Klicken Sie auf Erstellen.
Nach der Erstellung wird der Übertragungsjob ausgeführt und ein Event-Listener wartet auf Benachrichtigungen in der SQS-Warteschlange. Auf der Detailseite für Jobs wird für jede Stunde ein Vorgang angezeigt. Sie enthält Details zu den für jeden Job übertragenen Daten.
REST
Senden Sie das folgende JSON-Objekt an den Endpunkt transferJobs.create, um eine ereignisgesteuerte Übertragung mit der REST API zu erstellen:
{ "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "S3_BUCKET_NAME", "roleArn": "AWS_ROLE_ARN" }, "gcsDataSink": { "bucketName": "GCS_BUCKET_NAME" } }, "eventStream": { "name": "AWS_QUEUE_ARN", "eventStreamStartTime": "2022-12-02T01:00:00+00:00", "eventStreamExpirationTime": "2023-01-31T01:00:00+00:00" } }
Die Platzhalter im vorherigen JSON verwenden die folgenden Werte:
- DESCRIPTION ist eine Beschreibung des Übertragungsjobs.
- PROJECT_ID ist die ID des Google Cloud-Projekts, in dem der Übertragungsjob erstellt wird.
- S3_BUCKET_NAME ist der Name des Amazon S3-Quell-Buckets.
- AWS_ROLE_ARN ist der ARN der Rolle für föderierte Identitäten, die Sie erstellt haben. Beispiel:
arn:aws:iam::1234567891011:role/aws-role-namefür Standard-AWS-Regionen oderarn:aws-us-gov:iam::1234567891011:role/aws-role-namefür AWS GovCloud-Regionen. - GCS_BUCKET_NAME ist der Name des Cloud Storage-Ziel-Buckets.
- AWS_QUEUE_ARN ist der ARN der SQS-Warteschlange. Beispiel:
arn:aws:sqs:us-east-1:1234567891011:s3-notification-queuefür Standard-AWS-Regionen oderarn:aws-us-gov:sqs:us-gov-east-1:1234567890:event-queuefür AWS GovCloud-Regionen.
Die Parameter 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.