【问题标题】:OpenCV with AWS Lambda使用 AWS Lambda 的 OpenCV
【发布时间】:2016-02-08 01:27:43
【问题描述】:

我编写了一个使用 OpenCV 的 Lambda 函数(Python 2.7)。我需要导入 CV2,但在我的 .zip 中提供库时遇到问题。有人用过 OpenCV 和 Lambda 吗?如何提供 CV2 模块。

【问题讨论】:

  • 我现在也在尝试做同样的事情。我打算尝试使用静态版本的 openCV,但看起来我在尝试在 lambda 上运行它时仍然有一些共享依赖项。你有什么运气吗?
  • 我还没来得及测试这个,看到@RomanzoCriminale 在另一个问题上的类似查询。你有没有用 EC2 尝试过这样的事情? markn.ca/2015/10/python-extension-modules-in-aws-lambda

标签: python amazon-web-services opencv aws-lambda


【解决方案1】:

您必须将 OpenCV 复制到您发送到 AWS Lambda 的 zip 中

此方法有助于使用 OpenCV 进行部署https://github.com/aeddi/aws-lambda-python-opencv/blob/master/build.sh

【讨论】:

    【解决方案2】:

    您需要在 Amazon Linux 环境中构建您的代码。

    请看我的回答: https://stackoverflow.com/a/39649170/996926

    【讨论】:

      【解决方案3】:

      如果您只处理 cv2,我建议将其添加为一个层 - 这样您就可以在所有具有相同运行时的 lambda 函数中访问 opencv。

      我不得不同时打包cv2scipy,其中包的大小是个大问题,最后我得出了以下解决方案。

      Serverless 上使用serverless-python-requirements 包帮助我简化了整个过程并减小了包大小。肯定会建议检查一下。

      This is the guide that I followed

      Serverless python-requirements plugin

      确保将strip 标志保留为false,以避免剥离二进制文件导致“ELF 加载命令地址/偏移未正确对齐”问题,

      这就是我最终的serverless.yml 出来的结果,它给了我想要将 sklearn + cv2 打包为一个层的结果:

      custom:
        pythonRequirements:
          dockerizePip: true
          useDownloadCache: true
          useStaticCache: false
          slim: true
          strip: false
          layer:
            name: ${self:provider.stage}-cv2-sklearn
            description: Python requirements lambda layer
            compatibleRuntimes:
              - python3.8
            allowedAccounts:
              - '*'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-01
        • 2021-09-19
        • 2018-09-22
        • 1970-01-01
        • 2017-12-07
        • 1970-01-01
        • 2017-11-03
        • 1970-01-01
        相关资源
        最近更新 更多