首页 > 解决方案 > AWS:Lambda 函数应该用哪种语言编写,以便 lambda 可以访问/调用 .so 文件(linux 中的动态库)

问题描述

我们现在使用用 Java 编写的 AWS Lambda 函数来访问 Jar 文件;但现在我们有新的以下要求

我们有共享库(.so 文件)。我们喜欢通过 Lambda 函数和 API 网关公开这个 .so 文件的功能。

Lambda 函数应该编写哪种语言,以便 lambda 可以最有效地访问/调用 .so 文件功能

标签: javaaws-lambdajava-native-interface

解决方案


您可以继续使用 Java。共享对象不过是编译库(通常用 C++/ 或 C 语言开发)。该库可以通过 JNI 接口从您现有的 Java 代码中调用。常见的场景是 android 应用程序/SDK (Java) 使用/调用共享对象(由第三方开发或提供)

例子:

static {
    try {
        System.load("/path_to_sso/my.so");
    } catch (UnsatisfiedLinkError unsatisfiedlink) {
        //handle it
    }
}

参考这个链接:

如何加载 Java 本机/共享库 (.so)


推荐阅读