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

在 Python Lambda 包中包含 Java

如何解决在 Python Lambda 包中包含 Java

我在 AWS 中有一个 Python lambda 作为依赖项 tabulas,它需要 Java 8+。 有什么办法可以在我的包中包含 Java?我正在使用无服务器框架来打包我的函数和依赖项。

函数返回的错误

{
  "errorMessage": "`java` command is not found from this Python process.Please ensure Java is installed and PATH is set for `java`","errorType": "JavaNotFoundError","stackTrace": [
    "  File \"/var/task/handler.py\",line 18,in parse\n    data = get_data(tmp_file_path)\n","  File \"/var/task/handler.py\",line 31,in get_data\n    convert_into(file_path,file,output_format='csv',pages='all')\n","  File \"/var/task/tabula/io.py\",line 562,in convert_into\n    _run(java_options,kwargs,path)\n",line 91,in _run\n    raise JavaNotFoundError(JAVA_NOT_FOUND_ERROR)\n"
  ]
}

serverless.yml:

service: irpf-parser

frameworkVersion: '2'

provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221

  stage: dev
  region: us-east-1
  iamRoleStatements:
    - Effect: Allow
      Action:
        - s3:Getobject
      Resource:
        - "arn:aws:s3:::teste-medb/*"
  
functions:
  irpf-parser:
    handler: handler.parse
    events:
      - http:
          path: /parse
          method: post

plugins:
  - serverless-offline
  - serverless-python-requirements
custom:
  serverless-offline:
    port: 3000
  pythonRequirements:
    dockerizePip: 'non-linux'

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