Administra canalizaciones con la administración del control de código fuente

En esta página, se describe cómo administrar canalizaciones con el control de código fuente en Cloud Data Fusion a través de repositorios de Git.

Acerca de la administración del control de código fuente

Cloud Data Fusion proporciona la capacidad de diseñar visualmente canalizaciones para integraciones de ETL y ELT. Para administrar mejor las canalizaciones entre el desarrollo y la producción, Cloud Data Fusion permite la administración del control de código fuente de las canalizaciones con GitHub y otros sistemas de control de versión.

La administración del 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 versión.
  • Administra tus canalizaciones en un repositorio de Git central.
  • Revisar y auditar los cambios en la canalización
  • Revierte los cambios en la canalización.
  • Colaborar de manera eficaz con el equipo y, al mismo tiempo, garantizar el control central

Antes de comenzar

  • Source Control Management admite la integración con repositorios de GitHub, Bitbucket Server, Bitbucket Cloud y GitLab.
  • No se admite GitHub OAuth.
  • La administración del control de código fuente solo admite canalizaciones por lotes.
  • La administración del 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 las configuraciones de ejecución.
  • El límite de tamaño del repositorio vinculado es de 5 GB.

Roles y permisos requeridos

La administración del control de código fuente en Cloud Data Fusion consta de dos operaciones clave:

  • Configura repositorios de control de código fuente
  • Sincronización de canalizaciones con repositorios de Git a través de operaciones de envío y extracción

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:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

También puedes obtener los permisos necesarios a través de otros roles predefinidos.

Configura un repositorio de Git

Para crear un repositorio de Git en GitHub, sigue las instrucciones que se describen en Cómo 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:

Conecta un repositorio de Git a Cloud Data Fusion

Cloud Data Fusion te permite configurar y conectar tu repositorio de Git en la pestaña Source Control Management de cada espacio de nombres. Para vincular un espacio de nombres con tu repositorio de Git, sigue estos pasos:

Console

  1. En Cloud Data Fusion Studio, haz clic en Menú.
  2. Haz clic en Administrador de espacio de nombres.
  3. En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
  4. Haz clic en Vincular repositorio.
  5. 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. En 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, independientemente de la rama predeterminada en GitHub.
    • Prefijo de ruta (opcional): Ingresa un prefijo para el nombre de tu canalización que se guardará en el repositorio de Git. Por ejemplo, si el nombre de tu canalización es DataFusionQuickStart y especificas el prefijo como namespaceName, la canalización se guardará como namespaceName/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: 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.
  6. Haz clic en Validar. Espera a que se verifique la conexión.

  7. Cuando se complete la configuración, haz clic en Guardar y cerrar para confirmar la configuración.

Conectar un repositorio de Git con Cloud Data Fusion

API de REST

  1. Crea una clave secreta en Cloud Data Fusion que contenga el token de acceso personal.

  2. Ejecuta el comando siguiente:

    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: Es el token de acceso personal de GitHub.
  3. Ejecuta el comando siguiente:

    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 en true si solo deseas validar la configuración y no agregarla.
    • PROVIDER_TYPE: Es el nombre del proveedor de Git, es decir, GITHUB.
    • REPO_URL: Es la URL del repositorio que se vinculará. Usa una URL https, por ejemplo, https://github.com/user/repo.git.
    • DEFAULT_BRANCH: Es la rama que se usa para las operaciones de envío y 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 del repositorio en el que se almacenan los archivos de configuración.
    • AUTH_TYPE: Es el tipo de autenticación. Solo se admite PAT. Consulta Tokens de acceso personal detallados en GitHub.
    • PASSWORD_SECRET_KEY: Es el nombre de la clave secreta que contiene el token de acceso personal para el tipo de autenticación PAT.
    • USER_NAME: Puedes omitir este valor para el tipo de autenticación PAT.

Sincroniza 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 canalizaciones, y sincronizarlas, con el repositorio de Git.

Envía canalizaciones desde Cloud Data Fusion al repositorio de Git

Para sincronizar varias canalizaciones implementadas desde un espacio de nombres a un repositorio de Git, sigue estos pasos:

Console

  1. En Cloud Data Fusion Studio, haz clic en Menú.
  2. Haz clic en Administrador de espacio de nombres.
  3. En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
  4. Busca el repositorio de Git con el que deseas sincronizar y haz clic en Sync pipelines.
  5. Haz clic en la pestaña Canalizaciones de espacio de nombres.
  6. Busca y selecciona las canalizaciones que deseas enviar al repositorio de Git.

    Si la versión más reciente de la canalización se envía al repositorio de Git o se extrae de él, el estado Conectado a Git mostrará Connected. Si la canalización nunca se envió 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 (-).

  7. Haz clic en Enviar al repositorio.

  8. Ingresa 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 se están enviando las canalizaciones seleccionadas al repositorio remoto.

Envía canalizaciones desde Cloud Data Fusion al repositorio de Git.

Cuando la operación de envío se completa correctamente, se muestra un mensaje que indica la cantidad de canalizaciones que se enviaron al repositorio remoto.

Si falla la operación de envío, revisa la canalización en GitHub para ver si es la versión más reciente. Para cada operación de envío fallida, se muestra 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 canalizaciones:

  1. En Cloud Data Fusion Studio, haz clic en Menú.
  2. Haz clic en Lista.
  3. Haz clic en la canalización que deseas enviar al repositorio de Git.
  4. En la página de la canalización, haz clic en Acciones > Enviar al repositorio.
  5. Ingresa un mensaje de confirmación y haz clic en Aceptar.

Envía canalizaciones desde el estudio de diseño de canalizaciones.

API de REST

  1. 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: Nombres de las canalizaciones que se enviarán.
    • COMMIT_MESSAGE: Es el mensaje de confirmación para la confirmación de Git.

    La respuesta contiene el ID de la operación de envío. Por ejemplo:

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Para sondear 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: Es el ID de operación que se recibió 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 se completó la operación de envío, consulta la propiedad done en la respuesta. Si la operación falló, consulta la propiedad error para obtener más detalles.

Cómo extraer canalizaciones de un repositorio de Git a Cloud Data Fusion

Para sincronizar varias canalizaciones desde un repositorio de Git a tu espacio de nombres, sigue estos pasos:

Console

  1. En Cloud Data Fusion Studio, haz clic en Menú.
  2. Haz clic en Administrador de espacio de nombres.
  3. En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
  4. Busca el repositorio de Git con el que deseas sincronizarte y haz clic en Sincronizar canalizaciones.
  5. Haz clic en la pestaña Canalizaciones del repositorio. Se muestran todas las canalizaciones almacenadas en el repositorio de Git.
  6. Busca y selecciona las canalizaciones que deseas extraer del repositorio de Git a tu espacio de nombres de Cloud Data Fusion.
  7. 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 canalizaciones en Cloud Data Fusion.

Extrae canalizaciones del repositorio de Git a Cloud Data Fusion.

Cuando la operación de extracción se completa correctamente, se muestra un mensaje de éxito que indica la cantidad de canalizaciones que se extrajeron del repositorio remoto.

Si la operación de extracción falla, se mostrará un mensaje de error. Para ver los detalles 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:

  1. En Cloud Data Fusion Studio, haz clic en Menú.
  2. Haz clic en Lista.
  3. Haz clic en la canalización que deseas extraer del repositorio de Git.
  4. En la página de la canalización, haz clic en Acciones > Extraer del repositorio.

Extrae canalizaciones del estudio de diseño de canalizaciones.

API de REST

  1. 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: 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
    }
    
  2. 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
    

    Reemplaza lo siguiente:

    • NAMESPACE_ID: Es el ID del espacio de nombres.
    • OPERATION_ID: Es el ID de operación que se recibió 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, consulta la propiedad done en la respuesta. Si la operación falló, consulta la propiedad error 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

  1. En Cloud Data Fusion Studio, haz clic en Menú.
  2. Haz clic en Administrador de espacio de nombres.
  3. En la página Administrador de espacio de nombres, haz clic en la pestaña Administración de control de código fuente.
  4. En la configuración del repositorio de Git que deseas 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 del espacio de nombres.

¿Qué sigue?