En esta página, se describe cómo administrar canalizaciones con el control de código fuente en Cloud Data Fusion mediante repositorios de Git
Información acerca de la administración del control de fuente
Cloud Data Fusion ofrece la capacidad de diseñar canalizaciones de forma visual para integraciones de ETL y ELT. Para una mejor administración de las canalizaciones entre desarrollo y producción, Cloud Data Fusion permite administrar el control de origen de las canalizaciones con GitHub y otros sistemas de control de versión.
La administración de control de código fuente en Cloud Data Fusion te permite hacer lo siguiente:
- Integra cada espacio de nombres de Cloud Data Fusion con un sistema de control de versiones.
- Administra tus canalizaciones en un repositorio central de Git.
- Revisa y audita los cambios en la canalización.
- Revierte los cambios de la canalización.
- Colaborar de forma eficaz con el equipo mientras se garantiza un control central.
Antes de comenzar
- La administración de control de fuente admite la integración con GitHub, Bitbucket Server, Bitbucket Cloud, y repositorios de GitLab.
- OAuth de GitHub no es compatible.
- La administración de control de código fuente solo admite canalizaciones por lotes.
- La administración del control de origen solo admite JSON de diseño de canalización para operaciones de envío y extracción. No se admiten los parámetros de configuración de ejecución.
- El límite de tamaño del repositorio vinculado es de 5 GB.
Roles y permisos requeridos
La administración de control de código fuente en Cloud Data Fusion consta de dos operaciones clave:
- Configura los repositorios de control de código fuente
- Sincroniza canalizaciones con repositorios de Git mediante operaciones de push y pull
Para obtener los permisos que necesitas para usar la función de administración de control de código fuente, pídele a tu administrador que te otorgue cualquiera de los siguientes roles predefinidos en tu proyecto:
Configura el repositorio de control de código fuente:
- 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 (
Sincroniza canalizaciones con operaciones de envío o extracción 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 otorgar roles, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios roles predefinidos.
Configura un repositorio de Git
Para crear un repositorio de Git en GitHub, sigue las instrucciones que se describen en Crea 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:
Conecta un repositorio de Git con Cloud Data Fusion
Cloud Data Fusion te permite configurar y conectar tu repositorio de Git en la pestaña Administración de control de código fuente de cada espacio de nombres. Para vincular un espacio de nombres con tu repositorio de Git, sigue estos pasos:
Console
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Administrador de espacios de nombres.
- En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
- Haz clic en Vincular repositorio.
Ingresa los siguientes detalles:
- Proveedor: Elige un proveedor de servicios de Git, como GitHub o GitLab.
- URL del repositorio: Ingresa la URL a la que se puede acceder a tu repositorio. Para GitHub, la URL del repositorio es
https://github.com/HOST/REPO
- Rama predeterminada (opcional): Ingresa la rama inicial de Git. Esta rama puede ser diferente de la rama predeterminada configurada en GitHub. Esta rama se usa para sincronizar canalizaciones, sin importar la rama predeterminada en GitHub.
- Prefijo de ruta (opcional): Ingresa un prefijo para el nombre de la canalización que se guarda en el repositorio de Git. Por ejemplo, si el nombre de tu canalización es
DataFusionQuickStart
y especificas el prefijo comonamespaceName
, la canalización 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 el tipo de autenticación. Este es seleccionados automáticamente.
- Nombre del token: Ingresa un nombre que se pueda asociar con el token.
- Token: Ingresa el token que proporciona el repositorio de GitHub.
- Opcional: Nombre de usuario: Ingresa un nombre de usuario o un propietario para el token.
Haz clic en Validate. Espera a que se verifique la conexión.
Cuando se complete la configuración, haz clic en Guardar y cerrar para confirmar configuración.
API de 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"}'
Reemplaza lo siguiente:
NAMESPACE_ID
: Es el ID del espacio de nombres.PASSWORD_SECRET_KEY
: Es el nombre de la clave secreta que contiene el token de acceso personal.PERSONAL_ACCESS_TOKEN
: Acceso personal token 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"}}}}'
Reemplaza lo siguiente:
NAMESPACE_ID
: Es el ID del espacio de nombres.TEST_ONLY
: Se establece entrue
si solo deseas validar la configuración y no agregarla.PROVIDER_TYPE
: Es el nombre del proveedor de Git, que esGITHUB
.REPO_URL
: Es la URL del repositorio que se vinculará. Usa Una URL dehttps
, por ejemplo,https://github.com/user/repo.git
DEFAULT_BRANCH
: Es la rama que se usa para envíos y las operaciones de extracción. Si se omite, se usa la rama configurada de forma predeterminada en el repositorio, por ejemplo, la rama principal.PATH_TO_DIRECTORY
: Es la ruta de acceso al directorio en el repositorio en el que se almacenan los archivos de configuración.AUTH_TYPE
: Es el tipo de autenticación. Solo se admitePAT
. Consulta Token de acceso personal detallado en GitHub.PASSWORD_SECRET_KEY
: Es 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
.
Sincroniza las canalizaciones de Cloud Data Fusion con un repositorio remoto
Después de configurar un repositorio de Git con un espacio de nombres, puedes enviar y extraer de Google Cloud, y sincronizarlas con el repositorio de Git.
Envía canalizaciones de Cloud Data Fusion al repositorio de Git
Para sincronizar varias canalizaciones implementadas de un espacio de nombres a un repositorio de Git, sigue estos pasos:
Console
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Administrador de espacios de nombres.
- En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
- Busca el repositorio de Git con el que deseas sincronizar los datos. Haz clic en Canalizaciones de sincronización.
- Haz clic en la pestaña Canalizaciones de espacio de nombres.
Busca y selecciona las canalización que deseas enviar al repositorio de Git.
Si la última versión de la canalización se envía a Git o se extrae de allí repositorio, el estado Connected to Git muestra
Connected
. Si el botón de la canalización de datos nunca se envió a GitHub, el estado Conectada a Git muestra un espacio en blanco (-
).Si implementas una versión más reciente de una canalización que ya está sincronizada con el En el repositorio de Git, el estado Connected to Git cambia de
Connected
a en blanco (-
).Haz clic en Push to repository.
Ingresa un Mensaje de confirmación y haz clic en Aceptar.
Se inicia la operación de envío y aparece un mensaje que indica que las canalizaciones seleccionadas se envían al repositorio remoto.
Cuando la operación de envío se completa con éxito, se muestra un mensaje de éxito se muestra indicando la cantidad de canalizaciones que se enviaron al control remoto en un repositorio de confianza.
Si la operación de envío falla, verifica la canalización en GitHub para ver si es el versión más reciente. Para cada operación de envío que falle, se mostrará un mensaje de error. Para ver los detalles del error, expande el mensaje de error.
También puedes enviar canalizaciones individuales a un repositorio de Git desde el estudio de diseño de la canalización:
- En Studio de Cloud Data Fusion, haz clic en Menú.
- Haz clic en Lista.
- Haz clic en la canalización que deseas enviar al repositorio de Git.
- En la página de la canalización, haz clic en Acciones > Enviar al repositorio.
- Ingresa un mensaje de confirmación y haz clic en Aceptar.
API de REST
Envía un conjunto de canalizaciones 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"'
Reemplaza lo siguiente:
NAMESPACE_ID
: Es el ID del espacio de nombres.PIPELINE_NAME_1
,PIPELINE_NAME_2
: los nombres de las canalizaciones que se enviarán.COMMIT_MESSAGE
: Es un mensaje de confirmación para Git. confirmar.
La respuesta contiene el ID de la operación de envío. Por ejemplo:
RESPONSE { "id": OPERATION_ID }
Para consultar el estado de la operación de envío, 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
Reemplaza lo siguiente:
NAMESPACE_ID
: Es el ID del espacio de nombres.OPERATION_ID
: El ID de operación recibido de la operación de envío.
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 la operación de envío se completó, verifica la propiedad
done
en la respuesta. Si la operación falló, revisaerror
. para conocer más detalles.
Extrae canalizaciones del repositorio de Git a Cloud Data Fusion
Para sincronizar varias canalizaciones de un repositorio de Git con tu espacio de nombres, sigue estos pasos: pasos:
Console
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Administrador de espacios de nombres.
- En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
- Busca el repositorio de Git con el que deseas sincronizar y haz clic en Canalizaciones de sincronización.
- Haz clic en la pestaña Canalizaciones de repositorio. Se muestran todas las canalizaciones almacenadas en el repositorio de Git.
- Busca y selecciona las canalizaciones que quieres extraer de Git. en tu 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 las canalizaciones seleccionadas se extraen del repositorio remoto. Cloud Data Fusion busca archivos JSON en la ruta de acceso configurada y los extrae y, luego, los implementa como canalizaciones en Cloud Data Fusion.
Cuando la operación de extracción se completa correctamente, se muestra un mensaje que se muestra indicando la cantidad de canalizaciones que se extrajeron del en un repositorio remoto.
Si la operación de extracción falla, aparecerá un mensaje de error. Para ver del error, expande el mensaje de error.
También puedes extraer canalizaciones individuales de un repositorio de Git a un espacio de nombres desde el estudio de diseño de canalizaciones:
- En Cloud Data Fusion Studio, haz clic en Menú.
- Haz clic en Lista.
- Haz clic en la canalización que deseas extraer del repositorio de Git.
- En la página de la canalización, haz clic en Acciones >. Extraer del repositorio.
API de REST
Extrae un conjunto de canalizaciones 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"]}'
Reemplaza lo siguiente:
NAMESPACE_ID
: Es el ID del espacio de nombres.PIPELINE_NAME_1
,PIPELINE_NAME_2
: Los nombres de las canalizaciones que se extraerán.
La respuesta contiene el ID de la operación de extracción. Por ejemplo:
RESPONSE { "id": OPERATION_ID }
Para consultar 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
Reemplaza lo siguiente:
NAMESPACE_ID
: Es 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 se completó la operación de extracción, verifica la propiedad
done
en la respuesta. Si la operación falló, consulta la propiedaderror
para obtener más detalles.
Borra la configuración del repositorio de Git
Para borrar la configuración del repositorio de Git de un espacio de nombres, sigue estos pasos:
Console
- En Studio de Cloud Data Fusion, haz clic en Menú.
- Haz clic en Administrador de espacios de nombres.
- En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
- Para la configuración del repositorio de Git que quieres borrar, haz clic en > Borrar.
API de REST
Borra 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
Reemplaza NAMESPACE_ID por el ID de espacio de nombres.
¿Qué sigue?
- Obtén más información sobre cómo usar un repositorio de GitHub para administrar canalizaciones.