En esta página se describe cómo gestionar flujos de procesamiento mediante el control de versiones en Cloud Data Fusion a través de repositorios de Git.
Acerca de la gestión del control de código fuente
Cloud Data Fusion ofrece la posibilidad de diseñar visualmente flujos de procesamiento de datos para integraciones de extracción, transformación y carga (ETL) y de extracción, carga y transformación (ELT). Para gestionar mejor los flujos de procesamiento entre el desarrollo y la producción, Cloud Data Fusion permite gestionar el control de versiones de los flujos de procesamiento mediante GitHub y otros sistemas de control de versiones.
La gestión de control de versiones de Cloud Data Fusion te permite hacer lo siguiente:
- Integra cada espacio de nombres de Cloud Data Fusion con un sistema de control de versiones.
- Gestiona tus pipelines en un repositorio de Git central.
- Revisa y audita los cambios en la canalización.
- Deshacer los cambios en la canalización.
- Colaborar de forma eficaz con el equipo y, al mismo tiempo, mantener el control centralizado.
Antes de empezar
- La gestión del control de código fuente admite la integración con repositorios de GitHub, Bitbucket Server, Bitbucket Cloud y GitLab.
- No se admite OAuth de GitHub.
- La gestión de control de código fuente solo admite las canalizaciones por lotes.
- La gestión de control de código fuente solo admite archivos JSON de diseño de canalizaciones para las operaciones de inserción y extracción. No se admiten configuraciones de ejecución.
- El límite de tamaño del repositorio vinculado es de 5 GB.
Roles y permisos necesarios
La gestión de control de versiones en Cloud Data Fusion consta de dos operaciones clave:
- Configurar repositorios de control de código fuente
- Sincronizar canalizaciones con repositorios de Git mediante operaciones de inserción y extracción
Para obtener los permisos que necesitas para usar la función Gestión de control de versiones, pide a tu administrador que te asigne uno de los siguientes roles predefinidos en tu proyecto:
Configura el repositorio de control de versiones:
- Operador de Cloud Data Fusion (
roles/datafusion.operator
) - Editor de Cloud Data Fusion (
roles/datafusion.editor
) - Administrador de Cloud Data Fusion (
roles/datafusion.admin
)
- Operador de Cloud Data Fusion (
Sincronizar las canalizaciones mediante una operación push o pull desde un espacio de nombres:
- Operador de Cloud Data Fusion (
roles/datafusion.operator
) - Desarrollador de Cloud Data Fusion (
roles/datafusion.developer
) - Editor de Cloud Data Fusion (
roles/datafusion.editor
) - Administrador de Cloud Data Fusion (
roles/datafusion.admin
)
- Operador de Cloud Data Fusion (
Para obtener más información sobre cómo conceder roles, consulta el artículo sobre cómo gestionar el acceso.
También puedes conseguir los permisos necesarios a través de otros roles predefinidos.
Configurar un repositorio de Git
Para crear un repositorio de Git en GitHub, sigue las instrucciones que se describen en Crear un repositorio.
Para obtener más información sobre los tokens de acceso personal en GitHub y otros sistemas de control de versiones, consulta las siguientes páginas:
Conectar un repositorio de Git con Cloud Data Fusion
Cloud Data Fusion te permite configurar y conectar tu repositorio de Git en la pestaña Gestión de control de versiones de cada espacio de nombres. Para vincular un espacio de nombres con tu repositorio de Git, sigue estos pasos:
Consola
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Administrador de espacio de nombres.
- En la página Administración de espacio de nombres, haz clic en la pestaña Gestión de control de código fuente.
- Haz clic en Vincular repositorio.
Introduce los siguientes datos:
- Proveedor: elige un proveedor de servicios Git, como GitHub o GitLab.
- URL del repositorio: introduce la URL donde se puede acceder a tu repositorio. En GitHub, la URL del repositorio es
https://github.com/HOST/REPO
. - Rama predeterminada (opcional): introduce la rama inicial de Git. Esta rama puede ser diferente de la rama predeterminada configurada en GitHub. Esta rama se usa para sincronizar las canalizaciones, independientemente de la rama predeterminada de GitHub.
- Prefijo de ruta (opcional): introduce un prefijo para el nombre de la canalización que se guardará en el repositorio de Git. Por ejemplo, si el nombre de tu canal es
DataFusionQuickStart
y especificas el prefijonamespaceName
, el canal se guardará comonamespaceName/DataFusionQuickStart
en el repositorio de Git. - Tipo de autenticación: Cloud Data Fusion te permite usar el token de acceso personalizado como tipo de autenticación. Esta opción se selecciona automáticamente.
- Nombre del token: introduce un nombre que se pueda asociar al token.
- Token: introduce el token proporcionado por el repositorio de GitHub.
- Opcional: Nombre de usuario: introduce un nombre de usuario o un propietario para el token.
Haz clic en Validar. Espera a que se verifique la conexión.
Cuando se haya completado la configuración, haz clic en Guardar y cerrar para confirmar la configuración.
API REST
Crea una clave secreta en Cloud Data Fusion que contenga el token de acceso personal.
Ejecuta el siguiente comando:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/securekeys/PASSWORD_SECRET_KEY -X PUT -d '{ "description": "Example Secure Key","data": "PERSONAL_ACCESS_TOKEN"}'
Haz los cambios siguientes:
NAMESPACE_ID
: el ID del espacio de nombres.PASSWORD_SECRET_KEY
: el nombre de la clave secreta que contiene el token de acceso personal.PERSONAL_ACCESS_TOKEN
: token de acceso personal de GitHub.
Ejecuta el siguiente comando:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X PUT -d '{"test": "TEST_ONLY", "config": {"provider": "PROVIDER_TYPE", "link": "REPO_URL", "defaultBranch": "DEFAULT_BRANCH", "pathPrefix": "PATH_TO_DIRECTORY", "auth": {"type": "AUTH_TYPE", "patConfig": {"passwordName": "PASSWORD_SECRET_KEY", "username": "USER_NAME"}}}}'
Haz los cambios siguientes:
NAMESPACE_ID
: el ID del espacio de nombres.TEST_ONLY
: se define comotrue
si solo quieres validar la configuración y no añadirla.PROVIDER_TYPE
: el nombre del proveedor de Git, es decir,GITHUB
.REPO_URL
: URL del repositorio que se va a vincular. Usa una URLhttps
; por ejemplo,https://github.com/user/repo.git
.DEFAULT_BRANCH
: rama que se usa para las operaciones de envío e incorporación. Si se omite, se usará la rama predeterminada configurada en el repositorio (por ejemplo, la rama principal).PATH_TO_DIRECTORY
: ruta al directorio del repositorio donde se almacenan los archivos de configuración.AUTH_TYPE
: el tipo de autenticación. Solo se admitePAT
. Consulta Tokens de acceso personal detallados en GitHub.PASSWORD_SECRET_KEY
: el nombre de la clave secreta que contiene el token de acceso personal para el tipo de autenticaciónPAT
.USER_NAME
: puedes omitir este valor para el tipo de autenticaciónPAT
.
Sincronizar flujos de procesamiento de Cloud Data Fusion con un repositorio remoto
Después de configurar un repositorio de Git con un espacio de nombres, puedes insertar y extraer canalizaciones, así como sincronizarlas, con el repositorio de Git.
Enviar pipelines de Cloud Data Fusion a un repositorio de Git
Para sincronizar varias canalizaciones implementadas de un espacio de nombres con un repositorio de Git, sigue estos pasos:
Consola
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Administrador de espacio de nombres.
- En la página Administración de espacio de nombres, haz clic en la pestaña Gestión de control de código fuente.
- Busca el repositorio de Git que quieras sincronizar y haz clic en Sincronizar canalizaciones.
- Haga clic en la pestaña Pipelines de espacio de nombres.
Busca y selecciona las canalizaciones que quieras enviar al repositorio de Git.
Si se envía o se extrae la última versión de la canalización del repositorio de Git, el estado Conectado a Git mostrará
Connected
. Si la canalización nunca se ha enviado a GitHub, el estado Conectado a Git se muestra en blanco (-
).Si implementas una versión más reciente de una canalización que ya está sincronizada con el repositorio de Git, el estado Conectado a Git cambia de
Connected
a en blanco (-
).Haz clic en Enviar al repositorio.
Introduce un mensaje de confirmación y haz clic en Aceptar.
Se inicia la operación de envío y se muestra un mensaje que indica que las canalizaciones seleccionadas se están enviando al repositorio remoto.
Cuando la operación de envío se haya completado correctamente, se mostrará un mensaje que indica el número de canalizaciones que se han enviado al repositorio remoto.
Si la operación de envío falla, comprueba la canalización en GitHub para ver si es la versión más reciente. Por cada operación de envío fallida, se muestra un mensaje de error. Para ver los detalles del error, amplía el mensaje de error.
También puedes enviar pipelines concretos a un repositorio de Git desde el estudio de diseño de pipelines:
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Lista.
- Haz clic en la canalización que quieras enviar al repositorio de Git.
- En la página de la canalización, haga clic en Acciones > Enviar al repositorio.
- Escribe un mensaje de confirmación y haz clic en Aceptar.
API REST
Envía un conjunto de pipelines de Cloud Data Fusion al repositorio de Git:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/push -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}, "commitMessage": "COMMIT_MESSAGE"'
Haz los cambios siguientes:
NAMESPACE_ID
: el ID del espacio de nombres.PIPELINE_NAME_1
,PIPELINE_NAME_2
: nombres de las canalizaciones que se van a insertar.COMMIT_MESSAGE
: mensaje de confirmación de la confirmación de Git.
La respuesta contiene el ID de la operación push. Por ejemplo:
RESPONSE { "id": OPERATION_ID }
Para sondear el estado de la operación de inserción, ejecuta el siguiente comando:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
Haz los cambios siguientes:
NAMESPACE_ID
: el ID del espacio de nombres.OPERATION_ID
: el ID de operación recibido de la operación push.
La respuesta contiene el estado de la operación de envío. Por ejemplo:
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }
Para verificar si se ha completado la operación push, comprueba la propiedad
done
en la respuesta. Si la operación ha fallado, consulta la propiedaderror
para obtener más información.
Extraer canalizaciones de un repositorio de Git a Cloud Data Fusion
Para sincronizar varias canalizaciones de un repositorio de Git con tu espacio de nombres, sigue estos pasos:
Consola
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Administrador de espacio de nombres.
- En la página Administración de espacio de nombres, haz clic en la pestaña Gestión de control de código fuente.
- Busca el repositorio de Git que quieras sincronizar y haz clic en Sincronizar canalizaciones.
- Haz clic en la pestaña Pipelines de repositorio. Se muestran todas las canalizaciones almacenadas en el repositorio de Git.
- Busca y selecciona las canalizaciones que quieras extraer del repositorio de Git al espacio de nombres de Cloud Data Fusion.
Haz clic en Extraer del repositorio.
Se inicia la operación de extracción y se muestra un mensaje que indica que se están extrayendo las canalizaciones seleccionadas del repositorio remoto. Cloud Data Fusion busca archivos JSON en la ruta configurada, los extrae y los implementa como flujos de procesamiento en Cloud Data Fusion.
Cuando la operación de extracción se completa correctamente, se muestra un mensaje que indica el número de canalizaciones que se han extraído del repositorio remoto.
Si la operación de extracción falla, se mostrará un mensaje de error. Para ver los detalles del error, despliega el mensaje de error.
También puedes extraer pipelines concretos de un repositorio de Git a un espacio de nombres desde el estudio de diseño de pipelines:
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Lista.
- Haz clic en la canalización que quieras extraer del repositorio de Git.
- En la página de la canalización, haz clic en Acciones > Extraer del repositorio.
API REST
Extrae un conjunto de pipelines del repositorio de Git a Cloud Data Fusion:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/pull -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}'
Haz los cambios siguientes:
NAMESPACE_ID
: el ID del espacio de nombres.PIPELINE_NAME_1
,PIPELINE_NAME_2
: nombres de los flujos de procesamiento que se van a extraer.
La respuesta contiene el ID de la operación de extracción. Por ejemplo:
RESPONSE { "id": OPERATION_ID }
Para sondear el estado de la operación de extracción, ejecuta el siguiente comando:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
Haz los cambios siguientes:
NAMESPACE_ID
: el ID del espacio de nombres.OPERATION_ID
: el ID de operación recibido de la operación de extracción.
La respuesta contiene el estado de la operación de extracción. Por ejemplo:
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }
Para verificar si la operación de extracción se ha completado, comprueba la propiedad
done
de la respuesta. Si la operación ha fallado, consulta la propiedaderror
para obtener más información.
Eliminar la configuración del repositorio de Git
Para eliminar la configuración del repositorio de Git de un espacio de nombres, sigue estos pasos:
Consola
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Administrador de espacio de nombres.
- En la página Administración de espacio de nombres, haz clic en la pestaña Gestión de control de código fuente.
- En la configuración del repositorio de Git que quieras eliminar, haz clic en > Eliminar.
API REST
Elimina la configuración del repositorio de Git:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X DELETE
Sustituye NAMESPACE_ID por el ID del espacio de nombres.
Siguientes pasos
- Consulta más información sobre cómo usar un repositorio de GitHub para gestionar las canalizaciones.