有2种应用:在烧瓶上和在刮板上。他们每个人都通过zappa泛滥成一个单独的lambda。应用程序界面具有3个端点,每个端点都是通过SQS tiggerit scrap lambda进行的。触发器本身可以正常工作,但是有3个问题:
1)是否有可能以某种方式消除lambda在刮板上的性能限制? (我发现有机会将限制增加到仅15分钟,在这段时间内,scrapy没有时间收集所有物品)
2)是否可以通过SQS在不使用API网关的情况下刷新此sqm lambda,以及是否可以通过zappa泛洪应用程序,以便不创建api网关。还是我需要手动填写剪贴簿留言?
3)如果没有API网关就无法触发lambda,那么如何返回正确的响应?
现在我具有以下功能:
def lambda_event(event, context):
try:
data = json.loads(event['body'])
scrapy_settings = get_project_settings()
scrapy_settings['ITEM_PIPELINES'] = {
'sunbiz_spiders.pipelines.DynamodbPipeline': 300,
}
scrapy_settings['DOWNLOAD_DELAY'] = 0.5
process = CrawlerProcess(settings=scrapy_settings)
if data['spider_name'] == 'SearchByPersonSpider':
spider = SearchByPersonSpider
elif data['spider_name'] == 'GetDetailSpider':
spider = GetDetailSpider
else:
spider = SearchByNameSpider
process.crawl(spider, search_params=data['spider_name'])
process.start()
except Exception:
pass
return {
'statusCode': 200,
'body': json.dumps('All done.'),
}
Конфигzappa:
{
"production": {
"app_function": "main.lambda_event",
"aws_region": "us-east-1",
"profile_name": "default",
"project_name": "sunbiz-search-s",
"runtime": "python3.6",
"s3_bucket": "zappa-envjkpiz6"
}
}
当系统提示时,我得到列表索引超出werkzeug / test.py第1146行