在 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...