首页 > 解决方案 > 每当文件进入 S3 时,踢胶 Crawler

问题描述

每当文件落在 S3 存储桶中时,我都有以下代码来启动胶水爬虫。我添加了触发器并使用 S3 put 对象给出了存储桶位置。但是,lambda 不会在文件落地后立即自动启动爬虫。但是,如果我在 lambda 函数上单击测试,它会启动 Glue Crawler。请让我这里有什么问题。

    import json
import boto3

print('Loading function')

glue = boto3.client(service_name='glue', region_name='us-east-1',endpoint_url='https://glue.us-east-1.amazonaws.com')

def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))

    try:
       glue.start_crawler(Name='test')
    except Exception as e:
        print(e)
        print('Error starting crawler')
        raise e

标签: pythonamazon-s3aws-lambdaaws-glue

解决方案


在 AWS Lambda -> 添加触发器 -> 在触发器配置中选择 S3 -> 选择存储桶名称等。

添加触发器后,当文件上传到bucket时,会触发lambda。


推荐阅读