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
Una cuenta de AWS activa
Git
instalado en el equipo local Kit de desarrollo en la nube de Amazon (Amazon CDK) instalado en el equipo local
Python
instalado en el equipo local El código de la sección Attachments
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](images/pattern-img/99a67388-5939-4267-8324-b6ca8bfa7962/images/917c9041-b94d-4e95-a3c4-9a1115ead228.png)
El proceso consta de estos pasos:
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.
El envío inicia la canalización.
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).La función de Lambda lanza un nuevo trabajo de AWS Glue con el código ETL.
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
Tarea | Descripción | Habilidades 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:
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
Getting started with the AWS CDK (Introducción a los AWS CDK)
Adding jobs in AWS Glue (Cómo agregar trabajos a AWS Glue)
Invoque una función de AWS Lambda en una canalización en CodePipeline
AWS Glue programming (Programación con AWS Glue)
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip