AWS Lambda环境中的自定义软件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS Lambda环境中的自定义软件相关的知识,希望对你有一定的参考价值。

我想在AWS Lambda中运行Python包装器。 Python包装器需要通过命令行调用外部程序。我使用Python子进程包来调用外部程序。调用的程序是embulk - 一个用于批量传输的java应用程序。 (http://www.embulk.org/docs/

在我的本地Mac上,我安装了embulk,Python包装器成功调用embulk将Amazon S3数据移动到我们的云数据仓库(在TreasureData上)。为了使这个Python包装器能够在Lambda上运行,我需要在AWS Lambda环境中安装embulk。有可能吗?或者我是否需要购买EC2实例才能使其正常工作?

答案

要使Java在Lambda环境中运行,需要使用Lambda代码打包整个JDK。您必须确保它与他们使用的AWS'x86 Linux发行版完全匹配。

更好的方法是完全用Java实现代码。创建自己的Java Lambda类,调用Embulk现有的主类。

如果您对Java不熟悉,可以编写少量Java来实现Lambda Handler,然后调用Jython脚本(Python-in-Java),然后调用Embulk的主要方法。

作为Python开发人员,如果您已经使用面向对象的Python,那么您应该发现Java相对容易理解。

以上是关于AWS Lambda环境中的自定义软件的主要内容,如果未能解决你的问题,请参考以下文章

aws 如何从生产环境中的 lambda 函数访问 ECS 服务

如何在 AWS Lambda 中使用 Python 自定义包

在 AWS Lambda 函数中获取插槽的问题

schedult 上的 aws 自定义事件以触发 lambda 使用 Terraform

DynamoDB 流 和 AWS Lambda 触发器

AWS API Gateway 默认响应和触发 AWS Lambda