python - 每当文件进入 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
解决方案
在 AWS Lambda -> 添加触发器 -> 在触发器配置中选择 S3 -> 选择存储桶名称等。
添加触发器后,当文件上传到bucket时,会触发lambda。
推荐阅读
- c# - 需要帮助检查文件是否存在?
- json.net - Azure Functions (Durable) - 类型是接口或抽象类,无法实例化
- ios - Alamofire Swift 5:传递参数时抛出错误
- php - 在 laravel 中创建考勤报告
- node.js - 如果在返回多个承诺时放在底部,Firestore 将不会写入文档
- c++ - C ++:从其他类访问结构的私有成员向量
- ruby-on-rails - Rails DelayedJob run_at 时区差异
- micro-frontend - 从 single-spa 框架(用于微前端应用程序的框架)调用 start 方法后,我可以懒惰地注册微前端吗?
- python - 用于自动在线工具查询的脚本
- c# - 为什么推荐的 dispose 模式会在层次结构的每个级别添加一个已处理字段?