使用pyaudio的AWS Lambda函数

波波斯克

我的梦想 :)

我想pyaudio用于将在AWS Lambda上运行的功能。但是,PythonPipBuilder:ResolveDependencies运行时出现错误sam build --use-container

我的设定

我设法将我的项目构建到此。

requirements.txt

pyaudio

app.py

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': 'Hello World'
    }

template.yaml(至少相关部分)

Resources:
  MyFunction:
    Type: AWS::Serverless::Function 
    Properties:
      CodeUri: my_app/
      Handler: app.lambda_handler
      Runtime: python3.6
      Events:
        MyEvent:
          Type: Api 
          Properties:
            Path: /test
            Method: get

我的问题

运行时,sam build --use-container --debug我看到以下输出:

追溯(最近一次通话最近):文件“ /var/lang/lib/python/python3.6/site-packages/aws_lambda_builders/workflows/python_pip/actions.py”,第42行,在执行requirements_path = self.manifest_path,文件“ / var / lang / lib / python3.6 / site-packages / aws_lambda_builders / workflows / python_pip / packager.py“,第137行,位于build_dependencies self._dependency_builder.build_site_packages(requirements_path,artifacts_dir_path,scratch_dir_path)中,文件“ / var / lang / lib /python3.6/site-packages/aws_lambda_builders/workflows/python_pip/packager.py“,第201行,在build_site_packages中引发MissingDependencyError(packages_without_wheels)aws_lambda_builders.workflows.python_pip.packager.MissingDependencyError:{pyaudio == 0.2.11( }

...

在容器内部构建返回的响应{“ jsonrpc”:“ 2.0”,“ id”:1,“错误”:{“代码”:400,“消息”:“ PythonPipBuilder:ResolveDependencies-{pyaudio == 0.2.11(sdist) }“}}

我的理论

我的理论是失败的,因为在运行时使用的Docker容器映像中未安装PortAudio sam build --use-container

如果我跑pip install -r requirements.txt我的本地机器上我安装PortAudio,一切正常。

我的怀疑是我需要以某种方式在AWS Lambda环境中安装PortAudio ...但是如何?层?如果是这样,我从哪里可以得到所需的二进制文件?

TL; DR;

如何在AWS Lambda环境中安装PortAudio?

格雷格

测试您的lambda的快速方法是将软件包(例如pyaudio)安装在包含lambda代码的文件夹中,然后将其全部压缩并上传。查看更多信息https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-dependencies

如果您在安装软件包时遇到任何问题,则可能取决于相关性,您可能需要添加一个或多个层。

一旦您的lambda工作了,您可以将其删除并使用buildspec.yml安装python软件包。AWS将在运行代码pipleine时安装软件包。更多详细信息https://docs.aws.amazon.com/lambda/latest/dg/build-pipeline.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Delphi中使用Lambda函数

来自分类Dev

快速通用使用lambda函数

来自分类Dev

使用Lambda函数签名的函数重载

来自分类Dev

AWS Lambda函数如何使用响应来执行计算

来自分类Dev

如何使用AWS CLI创建AWS Lambda函数?

来自分类Dev

如何(正确)在AWS Lambda函数中使用外部凭证?

来自分类Dev

如何在Lambda函数中使用AWS.CloudFront.Signer

来自分类Dev

使用VPC进行配置时,AWS Lambda函数ConnectionError

来自分类Dev

如何使用SAM在本地运行C ++ AWS Lambda函数?

来自分类Dev

在python中使用lambda函数

来自分类Dev

AWS Lambda函数以使用秘密管理器

来自分类Dev

在AWS Lambda函数中使用Python多处理队列

来自分类Dev

回调到AWS Lambda函数

来自分类Dev

从Lambda函数访问AWS Elasticsearch

来自分类Dev

如何使用aws lambda函数在Python中调用bash脚本?

来自分类Dev

使用lambda的阶乘函数

来自分类Dev

如何重用AWS Lambda函数?

来自分类Dev

在AWS Lambda脚本中使用多个Python函数

来自分类Dev

在lambda函数中使用反向

来自分类Dev

Java 中的 AWS Lambda 函数

来自分类Dev

AWS Lambda 上的 Python 函数

来自分类Dev

在python中使用lambda函数

来自分类Dev

kinect 中使用的 lambda 函数

来自分类Dev

AWS Lambda 函数无法连接?

来自分类Dev

从 aws lambda 函数与 mongodb 通信

来自分类Dev

SDK AWS 和 Lambda 函数

来自分类Dev

使用 lambda 函数创建 aws sagemker 端点

来自分类Dev

如何使用 AWS CLI 创建 Python AWS Lambda 函数?

来自分类Dev

部署多个 AWS Lambda 函数