Storage Transfer Service può ascoltare le notifiche di eventi in Google Cloud per trasferire automaticamente i dati aggiunti o aggiornati in un bucket Cloud Storage. Scopri di più sui vantaggi dei trasferimenti basati su eventi.
I trasferimenti basati su eventi da Cloud Storage utilizzano le notifiche Pub/Sub 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 elimina l'oggetto associato nel bucket di destinazione.
I trasferimenti basati su eventi utilizzano sempre un bucket Cloud Storage come destinazione.
Configura autorizzazioni
Oltre alle
autorizzazioni richieste per tutti i job di trasferimento,
i trasferimenti basati su eventi richiedono il ruolo Pub/Sub Subscriber
.
Trova il nome dell'agente di servizio Storage Transfer Service per il tuo progetto:
Vai alla pagina di riferimento di
googleServiceAccounts.get
.Si apre un riquadro interattivo intitolato Prova questo metodo.
Nel riquadro, in Parametri della richiesta, inserisci il tuo ID progetto. Il progetto che specifichi qui deve essere quello che utilizzi per gestire Storage Transfer Service, che potrebbe essere diverso dal progetto del bucket di origine.
Fai clic su Esegui.
L'email dell'agente di servizio viene restituita come valore di
accountEmail
. Copia questo valore.L'email dell'agente di servizio utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.Concedi il ruolo
Pub/Sub Subscriber
all'agente di servizio Storage Transfer Service.console Cloud
Segui le istruzioni riportate in Controllo dell'accesso tramite la console per concedere il ruolo
Pub/Sub Subscriber
al servizio di trasferimento di Storage. Google Cloud Il ruolo può essere concesso a livello di argomento, sottoscrizione o progetto.gcloud
CLISegui le istruzioni riportate in Impostare un criterio per aggiungere il seguente binding:
{ "role": "roles/pubsub.subscriber", "members": [ "serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com" }
Configurare Pub/Sub
Assicurati di aver soddisfatto i prerequisiti per l'utilizzo di Pub/Sub con Cloud Storage.
Crea una notifica Pub/Sub per il bucket Cloud Storage di origine.
Non puoi gestire le notifiche Pub/Sub con la console Google Cloud . Utilizza gcloud CLI o una delle librerie client disponibili.
gcloud storage buckets notifications create gs://SOURCE_BUCKET_NAME --topic=TOPIC_NAME
Crea una sottoscrizione pull per l'argomento. Devi creare un abbonamento separato per ogni job di trasferimento.
Il seguente esempio mostra il comando Google Cloud CLI per creare una sottoscrizione pull. Per le istruzioni della console e il codice della libreria client, vedi Creare un abbonamento pull.
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_NAME --ack-deadline=300
Creare un job di trasferimento
Puoi utilizzare l'API REST o la console Google Cloud per creare un job di trasferimento basato sugli eventi.
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 Cloud
Vai alla pagina Crea job di trasferimento nella Google Cloud console.
Seleziona Cloud Storage sia come origine che come destinazione.
Come Modalità di pianificazione, seleziona Basata sugli eventi e fai clic su Passaggio successivo.
Seleziona il bucket di origine per questo trasferimento.
Nella sezione Stream di eventi, inserisci il nome dell'abbonamento:
projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID
(Facoltativo) Definisci i filtri, poi fai clic su Passaggio successivo.
Seleziona il bucket di destinazione per questo trasferimento.
(Facoltativo) Inserisci un'ora di inizio e di fine per il trasferimento. Se non specifichi un orario, il trasferimento inizierà immediatamente e verrà eseguito fino a quando non verrà interrotto manualmente.
Specifica le opzioni di trasferimento. Per maggiori informazioni, consulta la pagina Crea trasferimenti.
Fai clic su Crea.
Una volta creato, il job di trasferimento inizia a essere eseguito e un listener di eventi attende le notifiche sulla sottoscrizione Pub/Sub. 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" { "gcsDataSource" { "bucketName": "GCS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } "eventStream" { "name": "projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID", "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 fino all'interruzione manuale.
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 di Storage Transfer Service.
Per eseguire l'autenticazione in Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura 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 di Storage Transfer Service.
Per eseguire l'autenticazione in Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura 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 di Storage Transfer Service.
Per eseguire l'autenticazione in Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura 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 di Storage Transfer Service.
Per eseguire l'autenticazione in Storage Transfer Service, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Monitorare un trasferimento basato su eventi
Quando crei un trasferimento basato sugli eventi, Storage Transfer Service crea un job di trasferimento. Una volta raggiunto l'orario di inizio, viene avviata un'operazione di trasferimento e un listener di eventi attende le notifiche dalla coda Pub/Sub.
L'operazione di trasferimento viene eseguita, con lo stato in progress
, per circa
24 ore. Dopo 24 ore, l'operazione termina e ne inizia una nuova.
Viene creata una nuova operazione ogni 24 ore fino al raggiungimento dell'ora di fine del job di trasferimento o fino all'interruzione manuale del job.
Se è in corso un trasferimento di file al termine dell'operazione pianificata, l'operazione corrente rimane in corso finché il file non è stato completamente trasferito. Viene avviata una nuova operazione e le due operazioni vengono eseguite contemporaneamente fino al termine della vecchia operazione. Gli eventi rilevati durante questo periodo vengono gestiti dalla nuova operazione.
Per visualizzare l'operazione corrente e quelle completate:
Google Cloud console
Vai alla pagina Storage Transfer Service nella Google Cloud console.
Nell'elenco dei job, seleziona la scheda Tutti o Da cloud a cloud.
Fai clic sull'ID job per il trasferimento. La colonna Modalità di pianificazione identifica tutti i trasferimenti basati su eventi rispetto ai trasferimenti batch.
Seleziona la scheda Operazioni. I dettagli vengono mostrati per l'operazione corrente e le operazioni completate sono elencate nella tabella Cronologia esecuzioni. Fai clic su qualsiasi operazione completata per ulteriori dettagli.
gcloud
Per monitorare l'avanzamento di un job in tempo reale, utilizza
gcloud transfer jobs monitor
. La risposta mostra l'operazione corrente, l'ora di inizio del job, la quantità di dati trasferiti, i byte ignorati e i conteggi degli errori.
gcloud transfer jobs monitor JOB_NAME
Per recuperare il nome dell'operazione corrente:
gcloud transfer jobs describe JOB_NAME --format="value(latestOperationName)"
Per elencare le operazioni attuali e completate:
gcloud transfer operations list --job-names=JOB_NAME
Per visualizzare i dettagli di un'operazione:
gcloud transfer operations describe OPERATION_NAME