Implemente un trabajo de AWS Glue con una canalización de CodePipeline CI/CD de AWS - Recomendaciones de AWS

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.

Implemente un trabajo de AWS Glue con una canalización de CodePipeline CI/CD de AWS

Creado por Bruno Klein (AWS) y Luis Henrique Massao Yamada (AWS)

Entorno: Producción

Tecnologías: DevOps Big data

Servicios de AWS: AWS Glue CodeCommit; AWS CodePipeline; AWS Lambda

Resumen

Este patrón demuestra cómo puede integrar Amazon Web Services (AWS) CodeCommit y AWS CodePipeline con AWS Glue y utilizar AWS Lambda para lanzar trabajos en cuanto un desarrollador envía sus cambios a un repositorio remoto de AWS. CodeCommit  

Cuando un desarrollador envía un cambio a un repositorio de extracción, transformación y carga (ETL) y envía los cambios a AWS CodeCommit, se invoca una nueva canalización. La canalización inicia una función de Lambda que lanza un trabajo de AWS Glue con estos cambios. El trabajo de AWS Glue lleva a cabo la tarea de ETL.

Esta solución resulta útil en situaciones en las que las empresas, los desarrolladores y los ingenieros de datos desean lanzar sus trabajos tan pronto como se implementan los cambios y se envíen a los repositorios de destino. Facilita poder lograr un mayor nivel de automatización y reproducibilidad y, por lo tanto, evita errores durante el lanzamiento y el ciclo de vida del trabajo.

Requisitos previos y limitaciones

Requisitos previos 

Limitaciones

  • La canalización finaliza en cuanto el trabajo de AWS Glue se inicia correctamente. No espera a que finalice el trabajo.

  • El código que se proporciona en el archivo adjunto está destinado únicamente a fines de demostración.

Arquitectura

Pila de tecnología de destino

  • AWS Glue

  • AWS Lambda

  • AWS CodePipeline

  • AWS CodeCommit

Arquitectura de destino

Uso de Lambda para lanzar un trabajo de Glue en cuanto un desarrollador introduce cambios en un repositorio. CodeCommit

El proceso consta de estos pasos:

  1. El desarrollador o el ingeniero de datos realiza una modificación en el código ETL, confirma y envía el cambio a AWS CodeCommit.

  2. El envío inicia la canalización.

  3. La canalización inicia una función de Lambda, que llama a codecommit:GetFile en el repositorio y carga el archivo en Amazon Simple Storage Service (Amazon S3).

  4. La función de Lambda lanza un nuevo trabajo de AWS Glue con el código ETL.

  5. La función de Lambda finaliza la canalización.

Automatizar y escalar

En el ejemplo adjunto se muestra cómo puede integrar AWS Glue con AWS CodePipeline. Proporciona un ejemplo básico que se puede personalizar o ampliar para el propio uso. Para más información, consulte la sección Epics.

Herramientas

  • AWS CodePipeline: AWS CodePipeline es un servicio de entrega continua totalmente gestionado que le ayuda a automatizar sus procesos de lanzamiento para obtener actualizaciones rápidas y fiables de las aplicaciones y la infraestructura.

  • AWS CodeCommit: AWS CodeCommit es un servicio de control de código fuente totalmente gestionado que aloja repositorios seguros basados en Git.

  • AWS Lambda: AWS Lambda es un servicio informático sin servidor que permite ejecutar código sin aprovisionar ni administrar servidores.

  • AWS Glue: AWS Glue es un servicio de integración de datos sin servidor que facilita la detección, preparación y combinación de datos para análisis, machine learning y desarrollo de aplicaciones.

  • Cliente Git: Git proporciona herramientas de GUI, o puedes usar la línea de comandos o una herramienta de escritorio para comprobar los artefactos necesarios GitHub. 

  • AWS CDK: AWS CDK es un marco de desarrollo de software de código abierto que ayuda a definir los recursos de las aplicaciones en la nube mediante lenguajes de programación conocidos.

Epics

TareaDescripciónHabilidades requeridas

Configure la AWS CLI.

Configure la interfaz de la línea de comandos de AWS (AWS CLI) para señalar y autenticarse con su cuenta de AWS actual. Para obtener instrucciones, consulte la documentación de AWS CLI.

Desarrollador, DevOps ingeniero

Extraiga los archivos de muestra del proyecto.

Extraiga los archivos del adjunto para crear una carpeta que contenga los archivos del proyecto de muestra.

Desarrollador, DevOps ingeniero

Implemente el código de muestra.

Después de extraer los archivos, ejecute los comandos siguientes desde la ubicación de extracción para crear un ejemplo de referencia:

cdk bootstrap cdk deploy git init git remote add origin <code-commit-repository-url> git stage . git commit -m "adds sample code" git push --set-upstream origin main

Una vez emitido el último comando, puede supervisar el estado de la canalización y el trabajo de AWS Glue.

Desarrollador, DevOps ingeniero

Personalice el código.

Personalice el código del archivo etl.py de acuerdo con los requisitos de su empresa. Puede revisar el código ETL, modificar las etapas del proceso o ampliar la solución.

Ingeniero de datos

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip