Questa pagina mostra come creare e avviare job di trasferimento da Amazon S3 a Cloud Storage.
Configura autorizzazioni
Prima di creare un trasferimento, devi configurare le autorizzazioni per il bucket Amazon S3. Per maggiori dettagli, consulta Configurare l'accesso a un'origine: Amazon S3.
Devi anche configurare le autorizzazioni per le seguenti entità Google Cloud :
L'account utente utilizzato per creare il trasferimento. Questo è l'account con cui è stato eseguito l'accesso alla console Google Cloud o l'account specificato durante l'autenticazione a gcloud CLI. L'account utente può essere un account utente normale o un account di servizio gestito dall'utente. | |
Il service account gestito da Google, noto anche come agente di servizio, utilizzato da Storage Transfer Service. Questo account è generalmente identificato dal suo indirizzo email, che utilizza il formato project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
Per le istruzioni, vedi Autorizzazioni di trasferimento senza agente.
Opzioni di uscita
Storage Transfer Service offre diverse opzioni per il trasferimento dei dati S3 a Cloud Storage.
Opzione di uscita | Descrizione |
---|---|
Default agentless | Questa opzione utilizza un trasferimento gestito e senza agente
da S3. Amazon ti addebita il traffico in uscita.
Segui le istruzioni riportate in questa pagina per utilizzare questa opzione. |
Distribuzione CloudFront | Utilizza una distribuzione Amazon CloudFront come percorso
in uscita. I trasferimenti di dati tramite CloudFront potrebbero
beneficiare di costi di uscita AWS inferiori rispetto
al trasferimento diretto da S3. Per i dettagli, consulta
Prezzi di CloudFront e Addebiti per l'uscita di S3.
Segui le istruzioni riportate in Trasferimento da S3 tramite CloudFront per configurare la distribuzione e creare un trasferimento. |
Rete privata gestita | Trasferisci i dati su una rete gestita da Google. Non paghi costi per il traffico in uscita da S3. Paghi invece una tariffa per GiB aGoogle Cloud. Per i dettagli, consulta la pagina Prezzi. Potresti comunque ricevere addebiti
per le operazioni da AWS (ad es. LIST o GET
per le chiamate; consulta i prezzi per i dettagli.
Tutti i trasferimenti dei progetti sulla rete privata gestita condividono la stessa larghezza di banda. In periodi di utilizzo elevato, il trasferimento potrebbe rallentare. I trasferimenti con file di grandi dimensioni sono più interessati rispetto a quelli con file di piccole dimensioni. Per utilizzare questa opzione, segui le istruzioni riportate in questa pagina. Specifica l'opzione Rete privata gestita nella console Google Cloud o il campo managedPrivateNetwork nell'API REST. gcloud CLI
e le librerie client non supportano i trasferimenti di rete privata gestita. Consulta le
regioni supportate. |
Basato sull'agente | Valido per tutti gli spazi di archiviazione compatibili con S3, incluso Amazon S3. Installando
il software dell'agente sulle macchine con accesso
ai tuoi bucket S3, puoi controllare il percorso
di rete e la larghezza di banda. Questa opzione richiede agenti
e pool di agenti.
Segui le istruzioni riportate in Trasferimento da origini compatibili con S3 per utilizzare questa opzione. |
Aree geografiche supportate
Storage Transfer Service supporta le seguenti regioni Amazon S3:
af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ap-southeast-2 ap-southeast-3 |
ap-southeast-4 ca-central-1 ca-west-1 eu-central-1 eu-central-2 eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2
|
eu-west-3 il-central-1 me-central-1 me-south-1 sa-east-1 us-east-1 us-east-2 us-west-1 us-west-2
|
ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ca-central-1 ca-west-1 eu-central-1 eu-central-2 |
eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2 eu-west-3 us-east-1 us-east-2 us-west-1 us-west-2
|
Opzioni di trasferimento
Le seguenti funzionalità di Storage Transfer Service sono disponibili per i trasferimenti da<0x0AS3 a Cloud Storage
- Trasferire file specifici utilizzando un manifest
- Puoi trasmettere un elenco di file su cui Storage Transfer Service deve intervenire. Per maggiori dettagli, vedi Trasferimento di file o oggetti specifici utilizzando un manifest.
- Filtrare gli oggetti di origine per prefisso o per ora dell'ultima modifica
-
Puoi scegliere di includere o escludere gli oggetti dal trasferimento in base al nome e al percorso del file o all'ultima data di modifica.
I filtri per prefisso sono descritti in Filtri per prefisso.
I filtri basati sul tempo includono:
- Tempo minimo trascorso e tempo massimo trascorso dall'ultima modifica. Entrambi accettano un valore in secondi per filtrare gli oggetti che sono stati o non sono stati modificati entro un determinato periodo di tempo.
- Ultima modifica dal giorno e Ultima modifica prima del giorno, che accettano entrambi un valore dateTime.
Tieni presente che i filtri basati sul tempo per i trasferimenti S3 si basano sulla definizione di "ora ultima modifica " di AWS, ovvero l'ora in cui inizia il caricamento di un oggetto. Poiché un oggetto non è disponibile fino al termine del caricamento, potresti trovare oggetti la cui ora dell'ultima modifica soddisfa i criteri di filtro, ma che sono ancora in fase di caricamento. Questi oggetti non saranno inclusi nel tuo job di trasferimento. Per evitare problemi, ti consigliamo di:
- Anziché utilizzare filtri basati sul tempo, utilizza [trasferimenti basati su eventi](/storage-transfer/docs/event-driven-aws) per trasferire gli oggetti non appena diventano disponibili.
- Per evitare la perdita di oggetti nei trasferimenti ricorrenti, la finestra temporale "Ultima modifica" deve essere maggiore della pianificazione ricorrente. Ad esempio, per un job eseguito ogni ora, una finestra di ricerca di due ore fornisce un buffer.
- Specifica la classe di archiviazione
- Puoi specificare la
classe di archiviazione Cloud Storage da utilizzare per i dati nel bucket di destinazione. Consulta le opzioni
StorageClass
per i dettagli di REST oppure utilizza il flag--custom-storage-class
con Google Cloud CLI.Tieni presente che tutte le impostazioni della classe di archiviazione vengono ignorate se nel bucket di destinazione è abilitata la funzionalità Autoclass. Se Autoclass è abilitata, gli oggetti trasferiti nel bucket vengono inizialmente impostati su Standard Storage.
- Conservazione dei metadati
-
Quando trasferisce file da S3, Storage Transfer Service può conservare facoltativamente determinati attributi come metadati personalizzati.
Consulta la sezione Da Amazon S3 a Cloud Storage di Conservazione dei metadati per informazioni dettagliate su quali metadati possono essere conservati e su come configurare il trasferimento.
- Trasferimenti basati su eventi
- Storage Transfer Service può ascoltare le notifiche di eventi Amazon S3 inviate ad Amazon SQS per trasferire automaticamente i dati aggiunti o aggiornati nella posizione di origine. Per informazioni, vedi Trasferimenti basati su eventi.
- Logging e monitoraggio
- I trasferimenti da S3 possono essere visualizzati in Cloud Logging e Cloud Monitoring. Per maggiori dettagli, consulta Cloud Logging per Storage Transfer Service e Monitorare i job di trasferimento. Puoi anche configurare le notifiche Pub/Sub.
Crea un trasferimento
Storage Transfer Service fornisce più interfacce tramite le quali creare un trasferimento.
Non includere informazioni sensibili come quelle che consentono l'identificazione personale (PII) o dati di sicurezza nel nome del job di trasferimento. I nomi delle risorse potrebbero essere propagato ai nomi di altre risorse Google Cloud e potrebbero essere esposti a sistemi interni di Google al di fuori del tuo progetto.
Console Google Cloud
Vai alla pagina Storage Transfer Service nella Google Cloud console.
Fai clic su Crea job di trasferimento. Viene visualizzata la pagina Crea un job di trasferimento.
In Tipo di origine, seleziona Amazon S3.
Come Tipo di destinazione, seleziona Google Cloud Storage.
Seleziona la modalità di programmazione. I trasferimenti batch vengono eseguiti una tantum o in base a una pianificazione. I trasferimenti basati sugli eventi monitorano continuamente l'origine e trasferiscono i dati quando vengono aggiunti o modificati.
Per configurare un trasferimento basato su eventi, segui le istruzioni riportate in Trasferimenti basati su eventi.
Fai clic su Passaggio successivo.
Nel campo Nome bucket o cartella, inserisci il nome del bucket di origine.
Il nome del bucket è quello visualizzato nella Console di gestione AWS.
Se utilizzi una distribuzione CloudFront per il trasferimento da S3, inserisci il nome di dominio della distribuzione nel campo Dominio CloudFront. Ad esempio,
https://dy1h2n3l4ob56.cloudfront.net
. Consulta Trasferimento da S3 tramite CloudFront per configurare una distribuzione CloudFront.Per utilizzare una rete privata gestita per questo trasferimento, seleziona la casella di controllo. Per maggiori dettagli, vedi Opzioni di uscita.
Seleziona il metodo di autenticazione Amazon Web Services (AWS). Per maggiori dettagli, consulta Configurare l'accesso a un'origine: Amazon S3.
Chiave di accesso: inserisci la chiave di accesso nel campo ID chiave di accesso e il segreto associato alla chiave di accesso nel campo Chiave di accesso segreta.
Ruolo AWS IAM per la federazione delle identità: inserisci l'ARN nel campo ARN del ruolo AWS IAM, con la seguente sintassi:
arn:aws:iam::ACCOUNT:role/ROLE-NAME-WITH-PATH
Dove:
ACCOUNT
: l'ID account AWS senza trattini.ROLE-NAME-WITH-PATH
: il nome del ruolo AWS, incluso il percorso.
Per ulteriori informazioni sugli ARN, consulta la sezione ARN IAM.
Risorsa secret: seleziona questa opzione per utilizzare una credenziale Amazon salvata in Secret Manager. Seleziona un segreto dall'elenco oppure inseriscine uno manualmente nel formato
projects/PROJECT_NUMBER/secrets/SECRET_NAME
.
Se si tratta di un trasferimento basato su eventi, inserisci l'ARN della coda Amazon SQS, che ha il seguente formato:
arn:aws:sqs:us-east-1:1234567890:event-queue
- Se vuoi, scegli di
filtrare gli oggetti per prefisso
o per data dell'ultima modifica. Se hai specificato una cartella come posizione di origine, i filtri dei prefissi
sono relativi a quella cartella. Ad esempio, se l'origine è
my-test-bucket/path/
, un filtro di inclusione difile
include tutti i file che iniziano conmy-test-bucket/path/file
. Fai clic su Passaggio successivo.
Nel campo Bucket o cartella, inserisci il nome del bucket di destinazione e (facoltativamente) della cartella oppure fai clic su Sfoglia per selezionare un bucket da un elenco di bucket esistenti nel progetto corrente. Per creare un nuovo bucket, fai clic su
Crea nuovo bucket.
Fai clic su Passaggio successivo.
Scegli le impostazioni per il job di trasferimento.
Nel campo Descrizione, inserisci una descrizione del trasferimento. Come best practice, inserisci una descrizione significativa e univoca in modo da poter distinguere i job.
In Opzioni metadati, scegli di utilizzare le opzioni predefinite o fai clic su Visualizza e seleziona opzioni per specificare i valori per tutti i metadati supportati. Per i dettagli, vedi Conservazione dei metadati.
In Quando sovrascrivere, seleziona una delle seguenti opzioni:
Se diverso: sovrascrive i file di destinazione se il file di origine con lo stesso nome ha ETag o valori di checksum diversi.
Sempre: sovrascrive sempre i file di destinazione quando il file di origine ha lo stesso nome, anche se sono identici.
In Quando eliminare, seleziona una delle seguenti opzioni:
Mai: non eliminare mai i file dall'origine o dalla destinazione.
Elimina i file dall'origine dopo il trasferimento: elimina i file dall'origine dopo il trasferimento alla destinazione. Se un file di origine non viene trasferito, ad esempio perché esiste già nella destinazione, non viene eliminato.
Elimina i file dalla destinazione se non sono presenti anche nell'origine: se i file nel bucket Cloud Storage di destinazione non sono presenti anche nell'origine, elimina i file dal bucket Cloud Storage.
Questa opzione garantisce che il bucket Cloud Storage di destinazione corrisponda esattamente all'origine.
Nella sezione Opzioni di notifica, seleziona l'argomento Pub/Sub e gli eventi per cui ricevere notifiche. Per maggiori dettagli, consulta Notifiche Pub/Sub.
Fai clic su Passaggio successivo.
Scegli le opzioni di pianificazione:
Dall'elenco a discesa Esegui una volta, seleziona una delle seguenti opzioni:
Esegui una volta: esegue un singolo trasferimento, a partire dal momento che selezioni.
Esegui ogni giorno: esegue un trasferimento ogni giorno, a partire dall'ora che selezioni.
Puoi inserire una Data di fine facoltativa o lasciare vuoto il campo Data di fine per eseguire il trasferimento in modo continuo.
Esegui ogni settimana: esegue un trasferimento settimanale a partire dall'ora che selezioni.
Esegui con frequenza personalizzata: esegue un trasferimento con una frequenza che selezioni. Puoi scegliere di ripetere il trasferimento a un intervallo regolare di ore, giorni o settimane.
Puoi inserire una Data di fine facoltativa o lasciare vuoto il campo Data di fine per eseguire il trasferimento in modo continuo.
Dall'elenco a discesa Starting now (A partire da ora), seleziona una delle seguenti opzioni:
A partire da ora: avvia il trasferimento dopo che fai clic su Crea.
A partire dal giorno: avvia il trasferimento nella data e nell'ora che selezioni. Fai clic su Calendario per visualizzare un calendario per selezionare la data di inizio.
Per creare il job di trasferimento, fai clic su Crea.
Interfaccia a riga di comando gcloud
Per creare un nuovo job di trasferimento, utilizza il comando gcloud transfer jobs create
. La creazione di un nuovo job avvia il trasferimento specificato, a meno che non sia specificata una pianificazione o un --do-not-run
.
gcloud CLI non supporta i trasferimenti tramite CloudFront o Managed private network.
gcloud transfer jobs create \
s3://S3_BUCKET_NAME gs://STORAGE_BUCKET_NAME \
--source-creds-file="relative_path/to/creds.json"
Dove:
S3_BUCKET_NAME è l'origine dati per questo trasferimento. Puoi includere facoltativamente un percorso:
s3://S3_BUCKET_NAME/S3_FOLDER_PATH
STORAGE_BUCKET_NAME è il bucket Cloud Storage in cui trasferire i dati. Per trasferire in una directory specifica, specifica
gs://STORAGE_BUCKET_NAME/STORAGE_FOLDER_PATH/
, inclusa la barra finale.--source-creds-file
specifica il percorso relativo a un file locale sulla tua macchina che include le credenziali AWS per l'origine del trasferimento. I contenuti devono essere nel seguente formato JSON:{ "accessKeyId": string, "secretAccessKey": string }
Altre opzioni sono:
--do-not-run
impedisce a Storage Transfer Service di eseguire il job al momento dell'invio del comando. Per eseguire il job, aggiornalo per aggiungere una pianificazione oppure utilizzajobs run
per avviarlo manualmente.--manifest-file
specifica il percorso di un file CSV in Cloud Storage contenente un elenco di file da trasferire dall'origine. Per la formattazione del file manifest, vedi Trasferimento di file o oggetti specifici utilizzando un manifest.Informazioni sul job: puoi specificare
--name
e--description
.Programmazione: specifica
--schedule-starts
,--schedule-repeats-every
e--schedule-repeats-until
o--do-not-run
.Condizioni degli oggetti: utilizza le condizioni per determinare quali oggetti vengono trasferiti. Questi includono
--include-prefixes
e--exclude-prefixes
, nonché le condizioni basate sul tempo in--include-modified-[before | after]-[absolute | relative]
. Se hai specificato una cartella con l'origine, i filtri dei prefissi sono relativi a quella cartella. Per saperne di più, consulta Filtrare gli oggetti di origine per prefisso.Opzioni di trasferimento: specifica se sovrascrivere i file di destinazione (
--overwrite-when=different
oalways
) e se eliminare determinati file durante o dopo il trasferimento (--delete-from=destination-if-unique
osource-after-transfer
); specifica quali valori dei metadati conservare (--preserve-metadata
) e, facoltativamente, imposta una classe di archiviazione sugli oggetti trasferiti (--custom-storage-class
).Notifiche: configura le notifiche Pub/Sub per i trasferimenti con
--notification-pubsub-topic
,--notification-event-types
e--notification-payload-format
.Cloud Logging: abilita Cloud Logging con
--log-actions
e--log-action-states
. Per i dettagli, consulta Cloud Logging per Storage Transfer Service.
Per visualizzare tutte le opzioni, esegui gcloud transfer jobs create --help
o consulta la
documentazione di riferimento di gcloud
.
REST
Gli esempi riportati di seguito mostrano come utilizzare Storage Transfer Service tramite l'API REST.
Quando configuri o modifichi i job di trasferimento utilizzando l'API Storage Transfer Service, l'ora deve essere in formato UTC. Per ulteriori informazioni su come specificare la pianificazione di un job di trasferimento, consulta Pianificazione.
Quando crei job di trasferimento, non includere il prefisso s3://
per
bucketName
nei nomi delle origini dei bucket Amazon S3.
Trasferimento senza agente
L'esempio seguente crea un job di trasferimento utilizzando la configurazione standard senza agenti. Per ulteriori dettagli, consulta il riferimento transferJobs.create.
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Consulta Configurare l'accesso a un'origine: Amazon S3 per altre opzioni di autenticazione.
Distribuzione CloudFront
Se esegui il trasferimento da S3 tramite una distribuzione CloudFront, specifica
il nome di dominio della distribuzione come valore del
campo transferSpec.awsS3DataSource.cloudfrontDomain
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Rete privata gestita
Per eseguire il trasferimento da S3 utilizzando una rete privata gestita da Google, specifica il campo transferSpec.awsS3DataSource.managedPrivateNetwork
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "managedPrivateNetwork": TRUE, "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Librerie client
Gli esempi seguenti mostrano come utilizzare Storage Transfer Service a livello di programmazione con Go, Java, Node.js e Python.
Quando configuri o modifichi i job di trasferimento in modo programmatico, l'ora deve essere in formato UTC. Per ulteriori informazioni su come specificare la pianificazione di un job di trasferimento, consulta Pianificazione.
Per ulteriori informazioni sulle librerie client di Storage Transfer Service, consulta Guida introduttiva alle librerie client di Storage Transfer Service.
Trasferimento da Amazon S3 a Cloud Storage
In questo esempio, imparerai a spostare i file da Amazon S3 a un bucket Cloud Storage.
Quando crei job di trasferimento, non includere il prefisso s3://
per
bucketName
nei nomi delle origini dei bucket Amazon S3.
Le librerie client di Storage Transfer Service non supportano i trasferimenti tramite CloudFront o Managed private network.
Vai
Java
Stai cercando campioni precedenti? Consulta la guida alla migrazione di Storage Transfer Service.
Node.js
Python
Stai cercando campioni precedenti? Consulta la guida alla migrazione di Storage Transfer Service.