【问题标题】:PyCharm Python Lambda Event Bridge missing AWSEventPyCharm Python Lambda 事件桥缺少 AWSEvent
【发布时间】:2021-03-20 15:01:38
【问题描述】:

我正在尝试基于 AWS 事件桥架构在 pycharm 中设置一个基本的 AWS Lambda。然而,在生成框架代码并尝试运行 Lambda 后,它抱怨导入失败:

from schema.payload_report_event import AWSEvent
{"errorType":"Runtime.ImportModuleError","errorMessage":"Unable to import module 'hello_world/app': cannot import name 'AWSEvent' from 'schema.payload_report_event' (/var/task/schema/payload_report_event/__init__.py)"}
# Deserialize event into strongly typed object
aws_event: AWSEvent = Marshaller.unmarshall(event, AWSEvent)
detail: PayrollReportRequest = aws_event.detail

# Execute business logic

# Make updates to event payload, if desired
aws_event.detail_type = "HelloWorldFunction updated event of " + aws_event.detail_type

# Return event for further processing
return Marshaller.marshall(aws_event)

关于如何解决此问题的任何建议。该类肯定不会在文件目录中生成。

【问题讨论】:

  • AWSEvent 不是可安装模块,但包含在 AWS SAM EventBridge 示例(您找到)中。 sam init下载的所有模板的副本可以在$HOME/.aws-sam/找到,也可以在https://github.com/aws/aws-sam-cli-app-templates查看存储库。

标签: python aws-lambda pycharm aws-sam aws-event-bridge


【解决方案1】:

设法通过基于不同的 SAM 模板生成新项目来找到解决方法:

而不是从头开始(对于事件架构)选项。在这种情况下,将生成 aws_event.py 文件,并且可以对其进行修改以设置适当的 Detail 类型。这似乎确实是工具中某处的错误,但会检查问题跟踪器并尝试提交到相关项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    相关资源
    最近更新 更多