El Servicio de transferencia de almacenamiento puede escuchar notificaciones de eventos en Google Cloud para transferir automáticamente los datos que se agregaron o actualizaron en un bucket de Cloud Storage. Obtén más información sobre los beneficios de las transferencias centradas en eventos.
Las transferencias controladas por eventos de Cloud Storage usan notificaciones de Pub/Sub para saber cuándo se modificaron o agregaron objetos en el bucket de origen. No se detectan las eliminaciones de objetos. Si borras un objeto en la fuente, no se borrará el objeto asociado en el bucket de destino.
Configura permisos
Busca el nombre del agente de servicio de Servicio de transferencia de almacenamiento de tu proyecto:
Ve a la página de referencia de
googleServiceAccounts.get
.Se abrirá un panel interactivo con el título Prueba este método.
En el panel, en Parámetros de solicitud, ingresa el ID de tu proyecto. El proyecto que especifiques aquí debe ser el proyecto que usas para administrar el Servicio de transferencia de almacenamiento, que puede ser diferente del proyecto del bucket de origen.
Haz clic en Ejecutar.
El correo electrónico del agente de servicio se muestra como el valor de
accountEmail
. Copia este valor.El correo electrónico del agente de servicio usa el formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.Otorga el rol
Pub/Sub Subscriber
al agente de servicio del Servicio de transferencia de almacenamiento.Consola de Cloud
Sigue las instrucciones en Cómo controlar el acceso a través de la consola de Google Cloud para otorgar el rol
Pub/Sub Subscriber
al servicio de Servicio de transferencia de almacenamiento. El rol se puede otorgar a nivel del tema, la suscripción o el proyecto.gcloud
CLISigue las instrucciones que se indican en Cómo configurar una política para agregar la siguiente vinculación:
{ "role": "roles/pubsub.subscriber", "members": [ "serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com" }
Configura Pub/Sub
Asegúrate de cumplir con los Requisitos previos para usar Pub/Sub con Cloud Storage.
Configura notificaciones de Pub/Sub para Cloud Storage:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Crea una suscripción de extracción para el tema:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_NAME --ack-deadline=300
Crear un trabajo de transferencia
Puedes usar la API de REST o la consola de Google Cloud para crear un trabajo de transferencia basado en eventos.
No incluyas información sensible, como información de identificación personal (PII) ni datos de seguridad en el nombre de la tarea de transferencia. Los nombres de los recursos se pueden propagar a los nombres de otros recursos de Google Cloud y pueden exponerse a sistemas internos de Google fuera de tu proyecto.
Consola de Cloud
Ve a la página Crear trabajo de transferencia en la consola de Google Cloud.
Selecciona Cloud Storage como la fuente y el destino.
Como Modo de programación, selecciona Basado en eventos y haz clic en Siguiente paso.
Selecciona el bucket de origen para esta transferencia.
En la sección Event stream, ingresa el nombre de la suscripción:
projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID
De manera opcional, define los filtros y, luego, haz clic en Paso siguiente.
Selecciona el bucket de destino para esta transferencia.
De manera opcional, ingresa una hora de inicio y finalización para la transferencia. Si no especificas un horario, la transferencia comenzará de inmediato y se ejecutará hasta que se detenga de forma manual.
Especifica las opciones de transferencia. Puedes obtener más información en la página Crea transferencias.
Haz clic en Crear.
Una vez creado, el trabajo de transferencia comienza a ejecutarse y un objeto de escucha de eventos espera notificaciones en la suscripción de Pub/Sub. La página de detalles del trabajo muestra una operación por hora y, además, incluye detalles sobre los datos transferidos para cada trabajo.
REST
Para crear una transferencia basada en eventos con la API de REST, envía el siguiente objeto JSON al extremo 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
y eventStreamExpirationTime
son opcionales.
Si se omite la hora de inicio, la transferencia comienza de inmediato. Si se omite la hora de finalización, la transferencia continúa hasta que se detiene de forma manual.
Bibliotecas cliente
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las Bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Go del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las Bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Java del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las Bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las Bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Python del Servicio de transferencia de almacenamiento.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.