Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

568
Views
¿Desencadenador basado en eventos de AWS Glue Crawler después de cargar un archivo en un S3 Bucket?

¿Es posible activar un rastreador de AWS Glue en archivos nuevos, que se cargan en un depósito de S3, dado que el rastreador "apunta" a ese depósito? En otras palabras: la carga de un archivo genera un evento que hace que el rastreador de AWS Glue lo analice. Sé que existe un rastreo basado en programación, pero nunca encontré uno basado en eventos.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Como inicio rápido, aquí hay una cuenta detallada de cómo crear un Lambda en Python para hacer esto. Esta es la primera vez que creo un Lambda para YMMV.

  1. Para ahorrar tiempo, seleccione 'Crear función' y luego haga clic en 'Blueprints'. Seleccione la muestra llamada 's3-get-object-python' y haga clic en 'Configurar'
  2. Complete el nombre de Lambda y cree un nuevo Rol a menos que ya tenga uno.
  3. El asistente configurará el disparador S3 al mismo tiempo
  4. Una vez que lo cree, deberá encontrar el Rol que creó y agregar un nuevo permiso a través de una política que contenga:

"Action": "glue:StartCrawler", "Resource": "*"

  1. Cambia el código a algo como:
 from __future__ import print_function import json import boto3 print('Loading function') glue = boto3.client(service_name='glue', region_name='ap-southeast-2', endpoint_url='https://glue.ap-southeast-2.amazonaws.com') def lambda_handler(event, context): #print("Received event: " + json.dumps(event, indent=2)) try: glue.start_crawler(Name='my-glue-crawler') except Exception as e: print(e) print('Error starting crawler') raise e

Finalmente, suponiendo que seleccionó que el disparador debe estar deshabilitado durante el desarrollo, haga clic en el disparador S3 desde el panel del diseñador y asegúrese de que esté habilitado (es posible que deba guardar la lambda después de realizar este cambio)

Eso es todo, pero tenga en cuenta que se lanzará una excepción si el rastreador ya se está ejecutando, por lo que querrá manejar eso si tiene cargas frecuentes o rastreos largos. Consulte: https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-crawling.html#aws-glue-api-crawler-crawling-StartCrawler

Editar:

Esto me ayudó con el manejo de excepciones (de AWS Glue): https://github.com/boto/boto3/issues/1606#issuecomment-401423567

over 4 years ago · Santiago Trujillo Report

0

No, actualmente no existe una forma directa de invocar un rastreador de AWS Glue en respuesta a una carga en un depósito de S3. Las notificaciones de eventos de S3 solo se pueden enviar a:

  • redes sociales
  • SQS
  • lambda

Sin embargo, sería trivial escribir un pequeño fragmento de código Lambda para invocar mediante programación un rastreador de Glue utilizando el SDK del lenguaje correspondiente.

over 4 years ago · Santiago Trujillo Report

0

ingrese la descripción de la imagen aquíAquí hay una guía paso a paso (enlace a continuación) para una arquitectura similar. (Consulte la imagen de arriba para ver la arquitectura)

https://wellarchitechedlabs.com/Cost/Cost_and_Usage_Analysis/300_Automated_CUR_Updates_and_Ingestion/Lab_Guide.html

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!