无法将 python-geoip 与 AWS Lambda 一起使用
Posted
技术标签:
【中文标题】无法将 python-geoip 与 AWS Lambda 一起使用【英文标题】:Cannot use python-geoip with AWS Lambda 【发布时间】:2018-07-09 21:44:43 【问题描述】:Python-Geoip 是一个允许离线免费使用 MaxMind 国家数据库的小包。它在本地运行良好,但我无法在 AWS Lambda 中运行。
我使用requests
、geoip
和geoip-geolite2
创建了一个部署包,但收到以下错误消息:
"errorMessage": "无法导入模块'uploadXmlLog'"
如果我注释掉 requests
我会收到错误消息:
"errorMessage": "Cannot use packaged database \"geolite2\" because package \"_geoip_geolite2\" is not available. 它由 PyPI package \"python-geoip-geolite2\"" 提供
使用 requests
而不使用 geoip
可以正常工作。
我该如何解决这个问题?
Deployment package contents
【问题讨论】:
【参考方案1】:我的错,对不起。一些内部文件夹的内容未包含在部署包中。需要使用 'zip -r ...' 创建开发包。 顺便说一句,由于 geoip db 部署包增加到 ~18 Mb 并且 AWS 不允许您在线编辑 python 文件。但工作正常。
【讨论】:
以上是关于无法将 python-geoip 与 AWS Lambda 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Terraform AWS:无法将先前创建的 root_block_device 与使用 aws_launch_configuration 启动的 AWS EC2 实例重用
无法将 s3 与来自 aws lambda 的 ec2 文件夹同步
无法将 AWS-Postgres 服务器与带有 heroku 托管的 Spring Boot 应用程序连接起来