微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用适用于AWS Lambda的无服务器框架加载Python依赖项:错误:STDOUT

如何解决无法使用适用于AWS Lambda的无服务器框架加载Python依赖项:错误:STDOUT

这应该是很直截了当的(我认为)。在过去的几个月中,我一直在使用Serverless Framework,没有太大问题,并且能够加载诸如pandas和numpy之类的软件包,但是最近尝试加载emailsklearn并收到以下消息当我尝试部署堆栈时。

 Error --------------------------------------------------

  Error: STDOUT:

  STDERR: Python was not found but can be installed from the Microsoft Store: https://go.microsoft.com/fwlink?linkID=2082640
      at C:\Users\schuy\node_modules\serverless-python-requirements\lib\pip.js:325:13
      at Array.forEach (<anonymous>)
      at installrequirements (C:\Users\schuy\node_modules\serverless-python-requirements\lib\pip.js:312:28)
      at installrequirementsIfNeeded (C:\Users\schuy\node_modules\serverless-python-requirements\lib\pip.js:556:3)
      at ServerlesspythonRequirements.installAllRequirements (C:\Users\schuy\node_modules\serverless-python-requirements\lib\pip.js:635:29)
      at ServerlesspythonRequirements.tryCatcher (C:\Users\schuy\node_modules\bluebird\js\release\util.js:16:23)
      at Promise._settlePromiseFromHandler (C:\Users\schuy\node_modules\bluebird\js\release\promise.js:547:31)
      at Promise._settlePromise (C:\Users\schuy\node_modules\bluebird\js\release\promise.js:604:18)
      at Promise._settlePromise0 (C:\Users\schuy\node_modules\bluebird\js\release\promise.js:649:10)
      at Promise._settlePromises (C:\Users\schuy\node_modules\bluebird\js\release\promise.js:729:18)
      at _drainQueueStep (C:\Users\schuy\node_modules\bluebird\js\release\async.js:93:12)
      at _drainQueue (C:\Users\schuy\node_modules\bluebird\js\release\async.js:86:9)
      at Async._drainQueues (C:\Users\schuy\node_modules\bluebird\js\release\async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (C:\Users\schuy\node_modules\bluebird\js\release\async.js:15:14)
      at processImmediate (internal/timers.js:456:21)
      at process.topLevelDomainCallback (domain.js:137:15)

我尝试仅使用numpypandasdatetime来部署堆栈,并且没有问题/错误,但是添加emailsklearn会创建此堆栈错误消息。

关于如何解决此问题的任何想法,我可以使用无服务器框架将那些软件包加载到我的Lambda函数中吗?

修改 根据要求Yaml文件。尽管这可以与我以前工作过的其他依赖项/程序包一起工作

service: new-process-5

# You can pin your service to only deploy with a specific Serverless version
# Check out our docs for more details
# frameworkVersion: "=X.X.X"

resources:
  Resources:
    aaaaincomingcsv:
      Type: 'AWS::S3::Bucket'
      Properties: {}
    aaaaprocessedsalestotal:
      Type: 'AWS::S3::Bucket'
      Properties: 
        BucketName: aaaa-processed-salestotalv5
    aaaaprocessedwinloss:
      Type: 'AWS::S3::Bucket'
      Properties: 
        BucketName: aaaa-processed-winlossgroupedv5
    aaaaemployeesstargetotal:
      Type: 'AWS::S3::Bucket'
      Properties: 
        BucketName: aaaa-employees-stagetotalv5
    aaaaemployeesalespivot:
      Type: 'AWS::S3::Bucket'
      Properties: 
        BucketName: aaaa-employees-salespivotv5



provider:
  name: aws
  runtime: python3.8
  region: us-east-1
  profile: serverless-admin
  timeout: 500
  memorySize: 128
  iamRoleStatements:
   - Effect: "Allow"
     Action:
       - "s3:*"
     Resource: "*"


functions:
  csv-processor:
    handler: handler.featureengineering
    events:
      - s3:
          bucket: aaaaincomingcsvv5
          event: s3:ObjectCreated:*
          rules:
            - suffix: .csv

custom:
  pythonRequirements:
  dockerizePip: true


plugins:
  - serverless-python-requirements

其他修改

我已根据自定义和python要求纠正了缩进的问题,但仍然收到错误消息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。