带有Zappa和SQS事件的“ ValueError:未知事件源”触发lambda

时间:2018-11-21 00:36:34

标签: python flask aws-lambda amazon-sqs python-zappa

我正在尝试为无服务器python的flask应用程序设置SQS事件的触发器。一旦我尝试使用 Zappa 进行部署,它将给我以下消息:

Oh no! An error occurred! :(

==============

Traceback (most recent call last):
  ...
  File "...\venv\lib\site-packages\zappa\core.py", line 2613, in unschedule_events
    self.boto_session
  File "...\venv\lib\site-packages\zappa\utilities.py", line 317, in remove_event_source
    event_source_obj, ctx, funk = get_event_source(event_source, lambda_arn, target_function, boto_session, dry=False)
  File "...\venv\lib\site-packages\zappa\utilities.py", line 256, in get_event_source
    raise ValueError('Unknown event source: {0}'.format(arn))
ValueError: Unknown event source: arn:aws:sqs:MY_QUEUE

==============

这是我的 zappa_settings.json

中的相关信息
"dev_events": {
"debug": true,
"log_level": "DEBUG",
"app_function": "application.app",
"aws_region": ...,
"profile_name": "default",
"project_name": ..,
"runtime": "python3.6",
"s3_bucket": ...,
"timeout_seconds": 30,
"keep_warm": false,
"keep_warm_expression": "rate(5 minutes)",
"memory_size": 256,
"manage_roles": true,
"use_precompiled_packages": true,
"environment_variables": {
  ...
},
"aws_environment_variables ": {
  ...
},
"events": [
  {
    "function": "application.process_simulation_paths_queue",
    "event_source": {
      "arn": "arn:aws:sqs:MY_QUEUE",
      "batch_size": 10,
      "enabled": true
    }
  }
],
"exclude": [
  ...
]
}

我已经用正确的名称创建了SQS队列并复制了其ARN,然后按照issue和此PR中记录的格式配置了 zappa_settings.json

1 个答案:

答案 0 :(得分:0)

您至少需要Zappa的0.47.0版本才能将SQS用作事件源:

https://github.com/Miserlou/Zappa/blob/master/CHANGELOG.md#0470