Uso de los sistemas de control de versiones de Git en AWS Glue - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de los sistemas de control de versiones de Git en AWS Glue

nota

Los cuadernos actualmente no son compatibles con el control de versiones en AWS Glue Studio. Sin embargo, el control de versiones es compatible con los scripts de trabajo y trabajos de ETL visuales en AWS Glue.

Si tiene repositorios remotos y quiere administrar los trabajos de AWS Glue mediante sus repositorios, puede usar AWS Glue Studio o AWS CLI para sincronizar los cambios en los repositorios y trabajos en AWS Glue. Cuando sincroniza los cambios de esta manera, llevará el trabajo desde AWS Glue Studio al repositorio o lo extraerá del repositorio a AWS Glue Studio.

Con la integración de Git en AWS Glue Studio, puede:

  • Se integra con los sistemas de control de versiones de Git como AWS CodeCommit, GitHub, GitLab y Bitbucket

  • Edite trabajos de AWS Glue en AWS Glue Studio si usa trabajos visuales o trabajos de script y los sincroniza con un repositorio

  • Parametrice los orígenes y objetivos en los trabajos

  • Extraiga trabajos de un repositorio y edítelos en AWS Glue Studio

  • Pruebe los trabajos extrayéndolos de las sucursales o enviándolos a estas mediante los flujos de trabajo de varias sucursales en AWS Glue Studio

  • Descargue archivos de un repositorio y suba trabajos a AWS Glue Studio para la creación de trabajo entre cuentas

  • Utilice la herramienta de automatización de su elección (por ejemplo, Jenkins, AWS CodeDeploy, etc.)

En este video, se muestra cómo puede integrar AWS Glue con Git y crear una canalización de código continua y colaborativa.

Permisos de IAM

Asegúrese de que el trabajo tenga uno de los siguientes permisos de IAM. Para más información sobre cómo configurar los permisos de IAM, consulte Configurar permisos de IAM para AWS Glue Studio.

  • AWSGlueServiceRole

  • AWSGlueConsoleFullAccess

Como mínimo, se necesitan las siguientes acciones para la integración de Git:

  • glue:UpdateJobFromSourceControl: para poder actualizar AWS Glue con un trabajo presente en un sistema de control de versiones

  • glue:UpdateSourceControlFromJob: para poder actualizar el sistema de control de versiones con un trabajo almacenado en AWS Glue

  • s3:GetObject: para poder recuperar el script del trabajo mientras se pasa al sistema de control de versiones

  • s3:PutObject: para poder actualizar el script al extraer un trabajo desde un sistema de control de código de origen

Requisitos previos

Para enviar los trabajos a un repositorio de control de código fuente, necesitará:

  • un repositorio que ya haya sido creado por su administrador

  • una rama del repositorio

  • un token de acceso personal (en el caso de Bitbucket, se trata del token de acceso al repositorio)

  • nombre de usuario del propietario del repositorio

  • establecer permisos en el repositorio para que AWS Glue Studio pueda leer y escribir en el repositorio

    • GitLab: configure el alcance del token en api, read_repository y write_repository

    • Bitbucket: establezca los permisos para:

      • Pertenencia al espacio de trabajo: leer y escribir

      • Proyectos: escribir, administrador, leer

      • Repositorios: leer, escribir, administrador, eliminar

nota

Cuando se utiliza AWS CodeCommit, no se necesita el token de acceso personal ni el propietario del repositorio. Consulte Introducción a Git y AWS CodeCommit.

Uso de trabajos del repositorio de control de código de origen en AWS Glue Studio

Para extraer un trabajo del repositorio de control de código de origen que no se encuentra en AWS Glue Studio y que usa ese trabajo en AWS Glue Studio, los requisitos previos dependerán del tipo de trabajo.

Para un trabajo visual:

  • necesita una carpeta y un archivo JSON de la definición del trabajo que coincida con el nombre del trabajo

    Por ejemplo, consulte la definición de trabajo a continuación. La rama del repositorio debe contener una ruta my-visual-job/my-visual-job.json donde tanto la carpeta como el archivo JSON coincidan con el nombre del trabajo

    { "name" : "my-visual-job", "description" : "", "role" : "arn:aws:iam::aws_account_id:role/Rolename", "command" : { "name" : "glueetl", "scriptLocation" : "s3://foldername/scripts/my-visual-job.py", "pythonVersion" : "3" }, "codeGenConfigurationNodes" : "{\"node-nodeID\":{\"S3CsvSource\":{\"AdditionalOptions\":{\"EnableSamplePath\":false,\"SamplePath\":\"s3://notebook-test-input/netflix_titles.csv\"},\"Escaper\":\"\",\"Exclusions\":[],\"Name\":\"Amazon S3\",\"OptimizePerformance\":false,\"OutputSchemas\":[{\"Columns\":[{\"Name\":\"show_id\",\"Type\":\"string\"},{\"Name\":\"type\",\"Type\":\"string\"},{\"Name\":\"title\",\"Type\":\"choice\"},{\"Name\":\"director\",\"Type\":\"string\"},{\"Name\":\"cast\",\"Type\":\"string\"},{\"Name\":\"country\",\"Type\":\"string\"},{\"Name\":\"date_added\",\"Type\":\"string\"},{\"Name\":\"release_year\",\"Type\":\"bigint\"},{\"Name\":\"rating\",\"Type\":\"string\"},{\"Name\":\"duration\",\"Type\":\"string\"},{\"Name\":\"listed_in\",\"Type\":\"string\"},{\"Name\":\"description\",\"Type\":\"string\"}]}],\"Paths\":[\"s3://dalamgir-notebook-test-input/netflix_titles.csv\"],\"QuoteChar\":\"quote\",\"Recurse\":true,\"Separator\":\"comma\",\"WithHeader\":true}}}" }

Para un trabajo de script:

  • necesita una carpeta, un archivo JSON de la definición del trabajo y el script

  • la carpeta y el archivo JSON deben coincidir con el nombre del trabajo. El nombre del script debe coincidir con el valor de scriptLocation en la definición del trabajo junto con la extensión del archivo

    Por ejemplo, en la definición de trabajo que aparece a continuación, la rama del repositorio debe contener una ruta my-script-job/my-script-job.json y my-script-job/my-script-job.py. El nombre del script debe coincidir con el nombre que aparece en el valor scriptLocation, incluida la extensión del script

    { "name" : "my-script-job", "description" : "", "role" : "arn:aws:iam::aws_account_id:role/Rolename", "command" : { "name" : "glueetl", "scriptLocation" : "s3://foldername/scripts/my-script-job.py", "pythonVersion" : "3" } }

Limitaciones

  • En la actualidad, AWS Glue no es compatible con las extracciones ni los envíos a GitLab-Groups.

Conectar repositorios de control de versiones con AWS Glue

Puede introducir los detalles de su repositorio de control de versiones y administrarlos en la pestaña Control de versiones en el editor de trabajo de AWS Glue Studio. Para integrarlo con su repositorio de Git, debe conectarse al repositorio cada vez que inicie sesión en AWS Glue Studio.

Para conectar un sistema de control de versiones de Git:

  1. En AWS Glue Studio, comience un nuevo trabajo y elija la pestaña Control de versiones.

    La captura de pantalla muestra un trabajo con la pestaña Control de versiones seleccionada.
  2. En el Sistema de control de versiones, elija el servicio Git entre las opciones disponibles mediante un clic en el menú desplegable.

    • AWS CodeCommit

    • GitHub

    • GitLab

    • Bitbucket

  3. En función del sistema de control de versiones Git que elija, tendrá que completar diferentes campos.

    Para AWS CodeCommit:

    Complete la configuración del repositorio seleccionando el repositorio y la rama para su trabajo:

    • Repositorio: si ha configurado repositorios en AWS CodeCommit, seleccione el repositorio en el menú desplegable. Los repositorios se rellenarán automáticamente en la lista

    • Rama: seleccione la rama en el menú desplegable

    • Carpeta: opcional: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacía, se crea automáticamente una carpeta. El nombre de la carpeta es el nombre del trabajo de forma predeterminada.

    Para GitHub:

    Complete la configuración de GitHub con los campos:

    • Token de acceso: este es el token que proporciona el repositorio de GitHub. Para más información sobre los tokens de acceso personal, consulte Documentos de GitHub

    • Propietario del repositorio: es el propietario del repositorio de GitHub.

    Complete la configuración del repositorio con la selección de este y la rama de GitHub.

    • Repositorio: si ha configurado repositorios en GitHub, seleccione el repositorio en el menú desplegable. Los repositorios se rellenarán automáticamente en la lista

    • Rama: seleccione la rama en el menú desplegable

    • Carpeta: opcional: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacía, se crea automáticamente una carpeta. El nombre de la carpeta es el nombre del trabajo de forma predeterminada.

    Para GitLab:

    nota

    En la actualidad, AWS Glue no es compatible con las extracciones ni los envíos a GitLab-Groups.

    • Token de acceso: este es el token que proporciona el repositorio de GitLab. Para más información sobre los tokens de acceso personal, consulte Tokens de acceso personal de GitLab

    • Propietario del repositorio: es el propietario del repositorio de GitLab.

    Complete la configuración del repositorio con la selección de este y la rama de GitLab.

    • Repositorio: si ha configurado repositorios en GitLab, seleccione el repositorio en el menú desplegable. Los repositorios se rellenarán automáticamente en la lista

    • Rama: seleccione la rama en el menú desplegable

    • Carpeta: opcional: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacía, se crea automáticamente una carpeta. El nombre de la carpeta es el nombre del trabajo de forma predeterminada.

    Para Bitbucket:

    • Contraseña de la aplicación: Bitbucket no utiliza tokens de acceso a repositorios, sino contraseñas de aplicaciones. Para obtener más información sobre las contraseñas de aplicaciones, consulte Contraseñas de aplicaciones.

    • Propietario del repositorio: es el propietario del repositorio de Bitbucket. En Bitbucket, el propietario es el creador del repositorio.

    Seleccione el espacio de trabajo, el repositorio, la rama y la carpeta desde Bitbucket para completar la configuración del repositorio.

    • Espacio de trabajo: si tiene espacios de trabajo configurados en Bitbucket, seleccione el espacio de trabajo en el menú desplegable. Los espacios de trabajo se rellenan automáticamente

    • Repositorio: si ha configurado repositorios en Bitbucket, seleccione el repositorio en el menú desplegable. Los repositorios se rellenan automáticamente

    • Rama: seleccione la rama en el menú desplegable. Las ramas se rellenan automáticamente

    • Carpeta: opcional: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacío, se creará automáticamente una carpeta con el nombre del trabajo.

  4. Seleccione Guardar en la parte superior del trabajo de AWS Glue Studio

Envío de trabajos de AWS Glue al repositorio de origen

Una vez que haya introducido los detalles de su sistema de control de versiones, puede editar los trabajos en AWS Glue Studio y empujar los trabajos a su repositorio de origen. Si no está familiarizado con los conceptos de Git, como empujar y tirar, consulta este tutorial sobre Introducción a Git y AWS CodeCommit.

Para enviar su trabajo a un repositorio, debe introducir los detalles de su sistema de control de versiones y guardar el trabajo.

  1. En el trabajo AWS Glue Studio, elija Acciones. Esto abrirá opciones de menú adicionales.

    La captura de pantalla muestra un trabajo con el menú Acciones abierto. La opción Enviar al repositorio está visible.
  2. Elija Insertar en el repositorio.

    Esta acción guardará el trabajo. Cuando se pasa al repositorio, AWS Glue Studio empuja el último cambio guardado. Si el mismo usuario u otro usuario modificó el trabajo en el repositorio y no está sincronizado con el trabajo en AWS Glue Studio, el trabajo del repositorio se sobrescribe con el trabajo guardado en AWS Glue Studio cuando se empuja el trabajo desde AWS Glue Studio.

  3. Elija Confirmar para completar la acción. Esto crea una nueva confirmación en el repositorio. Si está utilizando AWS CodeCommit, un mensaje de confirmación mostrará un enlace a la última confirmación en AWS CodeCommit.

Sacar trabajos de AWS Glue del repositorio de origen

Una vez que haya introducido los detalles de su repositorio de Git en la pestaña Control de versiones, también puede extraer trabajos de su repositorio y editarlos en AWS Glue Studio.

  1. En el trabajo de AWS Glue Studio, elija Acciones. Esto abrirá opciones de menú adicionales.

    La captura de pantalla muestra un trabajo con el menú Acciones abierto. La opción Enviar al repositorio está visible.
  2. Elija Extraer del repositorio.

  3. Seleccione Confirmar. Esto toma la confirmación más reciente del repositorio y actualiza el trabajo en AWS Glue Studio.

  4. Edite su trabajo en AWS Glue Studio. Si realiza cambios, puede sincronizar su trabajo con el repositorio al elegir Insertar en el repositorio desde el menú desplegable Acciones.