AWS Lambda:可以使用Oracle Java SDK吗?

时间:2016-11-22 00:10:23

标签: java oracle amazon-web-services aws-lambda

我想使用Amazon Lambda来运行组件。但是,此组件与某些软件包具有依赖关系,这些软件包似乎仅在Oracle的SDK中可用。

我已经读过AWS Lambda函数在Linux Amazon AMI上运行(基于Open SDK)。实际上,前段时间我试图在EC2实例上运行我的项目并面临同样的问题,所以我切换到标准的Ubuntu 14.04并安装了Oracle Java 8 SDK。

你有什么想法吗?

编辑:我发现的问题是:

[2016-11-21T23:58:02.100] java.lang.NoClassDefFoundError: com/sun/webkit/network/CookieManager
[2016-11-21T23:58:02.100] java.lang.NoClassDefFoundError: com/sun/webkit/network/CookieManager
[2016-11-21T23:58:02.100] at com.machinepublishers.jbrowserdriver.JBrowserDriverServer.main(JBrowserDriverServer.java:74)

我认为该类仅在Oracle的Java SDK中可用。

1 个答案:

答案 0 :(得分:2)

如果您选中Lambda Execution Environment and Available Libraries,那么您将获得

  

如果您在代码中使用任何本机二进制文件,请确保它们是   在这种环境下编译。请注意,只有64位二进制文​​件   AWS Lambda支持。

     

AWS Lambda支持以下运行时版本:

     
      
  1. Node.js - v0.10.36,v4.3.2(推荐)
  2.   
  3. Java - Java 8
  4.   
  5. Python - Python 2.7
  6.   

问:Lambda用于执行我的函数的JVM环境是什么?

  

Ans:Lambda提供了openjdk 1.8的Amazon Linux版本。

问:如何编译AWS Lambda函数Java代码?

  

您可以使用Maven或Gradle等标准工具来编译Lambda   功能。您的构建过程应该模仿您的构建过程   将用于编译依赖于AWS​​ SDK的任何Java代码。 [R的未   您的源文件上的Java编译器工具,并包含AWS SDK   1.9或更高版本,对类路径具有传递依赖性。有关详细信息,请参阅aws documentation

您还可以查看:AWS Lambda: How It Works

UPDATE:

如果您查看github for jbrowserdriver,则会提供先决条件

先决条件

使用JavaFX的Java 8:

  • Ubuntu Xenial 16.04 LTS,Debian 8 Jessie(Backports),Debian 9 拉伸:

    sudo apt-get install openjdk-8-jre openjfx
    
  • Ubuntu Trusty 14.04 LTS:

    sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer libgtk2.0 libxtst6 libxslt1.1 fonts-freefont-ttf libasound2 && sudo update-alternatives --config java
    
  • Mac,Windows,Linux:

    install Oracle Java 8注意:选择JRE或JDK但不选择“Server JRE”,因为它不包含JavaFX

资源链接:

  1. https://aws.amazon.com/lambda/faqs/#functions-java