MATLAB Runtime 可以在 AWS Lambda 上执行吗?

Posted

技术标签:

【中文标题】MATLAB Runtime 可以在 AWS Lambda 上执行吗?【英文标题】:Can the MATLAB Runtime execute on AWS Lambda? 【发布时间】:2017-04-04 18:30:19 【问题描述】:

我有一个项目 API,需要一些 MATLAB 代码才能运行。

目前,MATLAB 代码使用 MATLAB 编译器进行编译,并在 EC2 上使用 MATLAB Runtime 和 Python 运行。

我正在尝试从 EC2 迁移到 AWS Lambda。这需要我以某种方式将 MATLAB 编译的可执行文件打包到 Lambda 包中。

在我看来,有两种选择:

    不知何故让 MATLAB 编译器编译一个静态可执行文件 将 MATLAB 运行时打包并与我的 Lamda 函数一起使用(运行时当前位于大约 1GB 的空间中,因此这似乎不可行)

有没有人有在 AWS Lambda 上使用 MATLAB 或类似的东西的经验?我有其他选择吗?

【问题讨论】:

成功了吗? @Matt 不幸的是没有。我们必须使用 EC2 来支持运行时。 @Gbps 你能告诉我你在这个用例中遇到了什么问题吗? @Gbps 好的 - 我正在运行它。如果你想这样做,请跟踪我。 【参考方案1】:

我没有以这种方式运行 AWS lambda 函数的经验,但您应该没有问题。

有关于如何做到这一点的 AWS 文档。也许从这里开始:https://aws.amazon.com/blogs/compute/running-executables-in-aws-lambda/

我过去曾使用当时标准 Lambda 堆栈中不可用的版本的 Node.js 可执行文件完成此操作。

基本步骤是:

    设置运行 Amazon Linux 的 EC2 实例 在该实例上编译您的二进制文件。 配置您的捆绑包(您需要查看有关如何执行此操作的更多文档) 压缩包 上传到您的 Lambda 函数(cli 或通过控制台)

您没有理由不能使用 matlab 可执行文件完成此操作,除非捆绑包的总大小。如果捆绑包太大,您可能会遇到限制和冷启动问题。

希望这会有所帮助。

【讨论】:

EC2 不是 AWS Lambda @Matt 解释可能不是很清楚。 EC2 用于捆绑。因此,您可以从源代码构建,创建一个可以在 lambda 上运行的包......并将其用作 lambda 实例的基础。我认为自从写下这个问题以来,AWS 还发布了更多工具来支持使用替代二进制文件和库。

以上是关于MATLAB Runtime 可以在 AWS Lambda 上执行吗?的主要内容,如果未能解决你的问题,请参考以下文章

Matlab Compiler Runtime安装文件找不到Java Runtime Environment

使用 MATLAB Compiler Runtime (MCR) 运行 Matlab 可执行文件

AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”

使用java.lang.Runtime.getRuntime无法在matlab中调用多个python脚本实例

尝试运行 Matlab-Compiler-Runtime 应用程序时,Windows 7 中出现 SxS 错误

AWS java sdk 1.10.2 中不存在包 com.amazonaws.services.lambda.runtime