【问题标题】:AWS lambda says it supports python 2.7 and 3.6 but 3.6 isn't in the amazon linux ami's reposAWS lambda 表示它支持 python 2.7 和 3.6,但 3.6 不在 amazon linux ami 的存储库中
【发布时间】:2017-10-14 22:28:34
【问题描述】:

我对此有点困惑。如果我尝试在 aws 控制台中创建一个新的 python lambda,我会看到:

现在我想使用 python 3.6,我还想用 virtualenv 打包一些二进制文件(我必须这样做才能运行加密模块)。

我正在关注这个文档:http://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html

所以我启动了一个新的 amazon linux ami 并尝试安装 python36-devel,就像它在文档中所说的那样,但它不在 repos 中。最新的python3是python35。

所以我的问题是 AWS lambda 从哪里获得 python 3.6 解释器?为了创建使用 3.6 解释器的 virtualenv,我应该从哪里安装它。

##############编辑:

根据文档I was pointed to lambda 在 amzn-ami-hvm-2016.03.3.x86_64-gp2 上运行

我用那个 ami 启动了一个实例,并注意到了同样的事情。只有 python35 在它的 repos 中。那么亚马逊3.6是怎么跑的呢?这是错误的 ami 还是他们以不同的方式安装 3.6 解释器?

【问题讨论】:

  • 使用 2.7 因为支持更好;)

标签: python python-3.x amazon-web-services virtualenv aws-lambda


【解决方案1】:

根据this,所有运行时环境的公共 AMI。是 amzn-ami-hvm-2016.03.3.x86_64-gp2。您应该可以使用它。

还要确保您尝试编译的库已经不可用,例如at this repo。最后,您可能希望check this out 了解有关如何避免 Lambda 部署过程中常见问题的更多提示。

【讨论】:

  • 我在使用他们的模块时遇到了问题(我不想为此使用 Zappa),但我会针对该问题另开一篇文章
  • 您无需使用 Zappa 即可使用这些模块。它应该适用于任何常规 Lambda 部署。几天前我用 Numpy 包测试过,效果很好。
  • 密码学依赖于 openssl 库,看起来他们将其安装在我假设 Zappa 运行的构建脚本中?我得到的错误与没有安装 openssl 的东西有关
  • 不确定,但正如我所说,我使用了没有 Zappa 的 Numpy 编译库。所以我认为你的情况值得一试。
【解决方案2】:

另一种方法是使用旨在匹配 Lambda 功能的 Docker 容器,以允许构建编译时依赖项。

https://hub.docker.com/r/lambci/lambda/tags/

有一个 Python3.6 标记版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    相关资源
    最近更新 更多