Storage Transfer Service può ascoltare le notifiche di eventi in AWS per trasferire automaticamente i dati aggiunti o aggiornati nella posizione di origine in un bucket Cloud Storage. Scopri di più sui vantaggi dei trasferimenti basati su eventi.
I trasferimenti basati su eventi ascoltano le notifiche di eventi di Amazon S3 inviate ad Amazon SQS per sapere quando gli oggetti nel bucket di origine sono stati modificati o aggiunti. Le eliminazioni di oggetti non vengono rilevate; l'eliminazione di un oggetto nell'origine non comporta l'eliminazione dell'oggetto associato nel bucket di destinazione.
Crea una coda SQS
Nella console AWS, vai alla pagina Simple Queue Service.
Fai clic su Crea coda.
Inserisci un nome per la coda.
Nella sezione Criteri di accesso, seleziona Avanzate. Viene visualizzato un oggetto JSON:
{ "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" } ] }
I valori di
AWS
eResource
sono univoci per ogni progetto.Copia i valori specifici di
AWS
eResource
dal codice JSON visualizzato nel seguente snippet JSON:{ "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" } } } ] }
I valori dei segnaposto nel JSON precedente utilizzano il seguente formato:
- AWS è un valore numerico che rappresenta il tuo progetto Amazon Web Services. Ad esempio,
"aws:SourceAccount": "1234567890"
. - RESOURCE è un numero di risorsa Amazon (ARN) che identifica questa coda. Ad esempio,
"Resource": "arn:aws:sqs:us-west-2:01234567890:test"
. - S3_BUCKET_ARN è un ARN che identifica il bucket di origine. Ad esempio,
"aws:SourceArn": "arn:aws:s3:::example-aws-bucket"
. Puoi trovare l'ARN di un bucket dalla scheda Proprietà della pagina dei dettagli del bucket nella console AWS.
- AWS è un valore numerico che rappresenta il tuo progetto Amazon Web Services. Ad esempio,
Sostituisci il codice JSON visualizzato nella sezione Criterio di accesso con il codice JSON aggiornato sopra.
Fai clic su Crea coda.
Al termine, prendi nota dell'Amazon Resource Name (ARN) della coda. L'ARN ha il seguente formato:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Attivare le notifiche nel bucket S3
Nella console AWS, vai alla pagina S3.
Nell'elenco Bucket, seleziona il bucket di origine.
Seleziona la scheda Proprietà.
Nella sezione Notifiche di eventi, fai clic su Crea notifica di evento.
Specifica un nome per questo evento.
Nella sezione Tipi di eventi, seleziona Tutti gli eventi di creazione di oggetti.
Come Destinazione, seleziona Coda SQS e la coda che hai creato per questo trasferimento.
Fai clic su Salva modifiche.
Configura autorizzazioni
Segui le istruzioni riportate in Configurare l'accesso a un'origine: Amazon S3 per creare un ID chiave di accesso e una chiave segreta o un ruolo di identità federata.
Sostituisci il file JSON delle autorizzazioni personalizzate con quanto segue:
{ "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" ] } ] }
Una volta creato, prendi nota delle seguenti informazioni:
- Per un utente, prendi nota dell'ID chiave di accesso e della chiave segreta.
- Per un ruolo Federated Identity, prendi nota dell'ARN (Amazon Resource Name),
che ha il formato
arn:aws:iam::AWS_ACCOUNT:role/ROLE_NAME
.
Creare un job di trasferimento
Puoi utilizzare l'API REST o la console Google Cloud per creare un job di trasferimento basato su eventi.
console Cloud
Vai alla pagina Crea job di trasferimento nella console Google Cloud.
Seleziona Amazon S3 come tipo di origine e Cloud Storage come destinazione.
Come Modalità di pianificazione, seleziona In base agli eventi e fai clic su Passaggio successivo.
Inserisci il nome del bucket S3. Il nome del bucket è il nome visualizzato nella Console di gestione AWS. Ad esempio,
my-aws-bucket
.Seleziona il metodo di autenticazione e inserisci le informazioni richieste, che hai creato e annotato nella sezione precedente.
Inserisci l'ARN della coda Amazon SQS che hai creato in precedenza. Utilizza il seguente formato:
arn:aws:sqs:us-east-1:1234567890:event-queue"
Se vuoi, definisci i filtri, poi fai clic su Passaggio successivo.
Seleziona il bucket Cloud Storage di destinazione e, facoltativamente, il percorso.
Facoltativamente, inserisci un'ora di inizio e di fine per il trasferimento. Se non specifichi un orario, il trasferimento inizierà immediatamente e verrà eseguito finché non verrà interrotto manualmente.
Specifica eventuali opzioni di trasferimento. Maggiori informazioni sono disponibili nella pagina Crea trasferimenti.
Fai clic su Crea.
Una volta creato, il job di trasferimento inizia a essere eseguito e un gestore eventi attende le notifiche nella coda SQS. La pagina dei dettagli del job mostra un'operazione ogni ora e include i dettagli sui dati trasferiti per ogni job.
REST
Per creare un trasferimento basato su eventi utilizzando l'API REST, invia il seguente oggetto JSON all'endpoint 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
e eventStreamExpirationTime
sono facoltativi.
Se l'ora di inizio viene omessa, il trasferimento inizia immediatamente; se l'ora di fine viene omessa, il trasferimento continua finché non viene interrotto manualmente.
Librerie client
Go
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, consulta Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go Storage Transfer Service.
Per autenticarti a Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, consulta Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Storage Transfer Service.
Per autenticarti a Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, consulta Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js Storage Transfer Service.
Per autenticarti a Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, consulta Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Storage Transfer Service.
Per autenticarti a Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.