Le service de transfert de stockage peut écouter les notifications d'événements dans AWS pour transférer automatiquement les données qui ont été ajoutées ou mises à jour dans l'emplacement source vers un bucket Cloud Storage. En savoir plus sur les avantages des transferts basés sur des événements
Les transferts basés sur des événements écoutent les notifications d'événement Amazon S3 envoyées à Amazon SQS pour savoir quand des objets du bucket source ont été modifiés ou ajoutés. Les suppressions d'objets ne sont pas détectées. La suppression d'un objet à la source n'entraîne pas la suppression de l'objet associé dans le bucket de destination.
Les transferts basés sur les événements utilisent toujours un bucket Cloud Storage comme destination.
Avant de commencer
Suivez les instructions pour accorder les autorisations requises sur votre bucket Cloud Storage de destination :
Créer une file d'attente SQS
Dans la console AWS, accédez à la page Simple Queue Service.
Cliquez sur Créer une file d'attente.
Saisissez un nom pour cette file d'attente.
Dans la section Règle d'accès, sélectionnez Avancée. Un objet JSON s'affiche.
Régions AWS standards
{ "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" } ] }
Régions AWS GovCloud
{ "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" } ] }
Copiez les valeurs de
AWSetResource. Ils sont uniques pour chaque projet.Collez vos valeurs spécifiques de
AWSetResourcede l'étape précédente dans l'extrait JSON suivant :Régions AWS standards
{ "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" } } } ] }
Régions AWS GovCloud
{ "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" } } } ] }
Remplacez S3_BUCKET_NAME par le nom du bucket source S3.
Copiez cet extrait JSON complet et utilisez-le pour remplacer le code JSON affiché dans la section Règle d'accès.
Cliquez sur Créer une file d'attente.
Une fois l'opération terminée, notez le nom de ressource Amazon (ARN) de la file d'attente.
Activez les notifications sur votre bucket S3.
Dans la console AWS, accédez à la page S3.
Dans la liste Buckets, sélectionnez votre bucket source.
Sélectionnez l'onglet Propriétés.
Dans la section Notifications relatives à un événement, cliquez sur Créer une notification d'événement.
Spécifiez un nom pour cet événement.
Dans la section Types d'événements, sélectionnez Tous les événements de création d'objet.
Dans Destination, sélectionnez File d'attente SQS, puis la file d'attente que vous avez créée pour ce transfert.
Cliquez sur Enregistrer les modifications.
Configurer les autorisations
Suivez les instructions de la section Configurer l'accès à une source : Amazon S3 pour créer un ID de clé d'accès et une clé secrète, ou un rôle d'identité fédérée.
Lorsque vous suivez les instructions, utilisez le code JSON suivant lorsque vous êtes invité à spécifier un rôle personnalisé ou une règle de confiance personnalisée :
Régions AWS standards
{ "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" ] } ] }
Une fois le compte créé, notez les informations suivantes :
- Pour un utilisateur, notez l'ID de clé d'accès et la clé secrète.
- Pour un rôle d'identité fédérée, notez le nom de ressource Amazon (ARN), qui se présente au format suivant :
arn:aws:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME
Régions AWS GovCloud
{ "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" ] } ] }
Une fois le compte créé, notez les informations suivantes :
- Pour un utilisateur, notez l'ID de clé d'accès et la clé secrète.
- Pour un rôle d'identité fédérée, notez le nom de ressource Amazon (ARN), qui se présente au format suivant :
arn:aws-us-gov:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME.
Créer un job de transfert
Vous pouvez utiliser l'API REST ou la console Google Cloud pour créer un job de transfert basé sur des événements.
console Cloud
Accédez à la page Créer un job de transfert dans la console Google Cloud .
Sélectionnez Amazon S3 comme type de source et Cloud Storage comme destination.
Dans Scheduling mode (Mode de planification), sélectionnez Event-driven (Piloté par les événements), puis cliquez sur Next step (Étape suivante).
Saisissez le nom de votre bucket S3. Le nom du bucket est celui qui apparaît dans AWS Management Console. Exemple :
my-aws-bucket.Sélectionnez votre méthode d'authentification et saisissez les informations demandées, que vous avez créées et notées dans la section précédente.
Saisissez l'ARN de la file d'attente Amazon SQS que vous avez créée précédemment. Il utilise l'un des formats suivants :
- Pour les régions AWS standards :
arn:aws:sqs:AWS_REGION:AWS_ACCOUNT:AWS_QUEUE_NAME - Pour les régions AWS GovCloud :
arn:aws-us-gov:sqs:AWS_REGION:AWS_ACCOUNT:AWS_QUEUE_NAME
- Pour les régions AWS standards :
Vous pouvez également définir des filtres, puis cliquer sur Étape suivante.
Sélectionnez le bucket Cloud Storage de destination et, éventuellement, le chemin d'accès.
Vous pouvez également saisir une heure de début et de fin pour le transfert. Si vous ne spécifiez pas d'heure, le transfert commencera immédiatement et s'exécutera jusqu'à ce qu'il soit arrêté manuellement.
Spécifiez les options de transfert. Pour en savoir plus, consultez la page Créer des transferts.
Cliquez sur Créer.
Une fois la tâche de transfert créée, elle commence à s'exécuter et un écouteur d'événements attend les notifications dans la file d'attente SQS. La page d'informations sur les tâches affiche une opération par heure et inclut des informations sur les données transférées pour chaque tâche.
REST
Pour créer un transfert basé sur des événements à l'aide de l'API REST, envoyez l'objet JSON suivant au point de terminaison transferJobs.create :
{ "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" } }
Les espaces réservés dans le JSON précédent utilisent les valeurs suivantes :
- DESCRIPTION est une description de la tâche de transfert.
- PROJECT_ID est l'ID du projet Google Cloud dans lequel le job de transfert est créé.
- S3_BUCKET_NAME est le nom du bucket source Amazon S3.
- AWS_ROLE_ARN est l'ARN du rôle d'identité fédérée que vous avez créé. Par exemple,
arn:aws:iam::1234567891011:role/aws-role-namepour les régions AWS standards ouarn:aws-us-gov:iam::1234567891011:role/aws-role-namepour les régions AWS GovCloud. - GCS_BUCKET_NAME est le nom du bucket Cloud Storage de destination.
- AWS_QUEUE_ARN est l'ARN de la file d'attente SQS. Par exemple,
arn:aws:sqs:us-east-1:1234567891011:s3-notification-queuepour les régions AWS standards ouarn:aws-us-gov:sqs:us-gov-east-1:1234567890:event-queuepour les régions AWS GovCloud.
Les éléments eventStreamStartTime et eventStreamExpirationTime sont facultatifs.
Si l'heure de début est omise, le transfert commence immédiatement. Si l'heure de fin est omise, le transfert se poursuit jusqu'à ce qu'il soit arrêté manuellement.
Bibliothèques clientes
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Go du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Java du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Node.js du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Python du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.