2015-10-02 36 views
3

在AWS拉姆达人们可以创建一个Node.js的功能,并触发它通过各种活动,例如邮件,等等。AWS拉姆达象Haskell的执行功能

我不知道这是如何工作的“引擎盖下”以及如何将这样的东西放在Haskell中。上传的功能基本上是单功能库,不具有任何功能。

意味着在CLI或通过API,你可以调用你的任何函数的名称(和所需的输入),你会得到由函数签名定义的输出 - 或者,当然也可以是错误。

在Haskell中可以这样做吗?

澄清:我想要做的是例如在Haskell平台或我的数据中心中的任何其他执行上下文中加载许多不同的单一函数Haskell库,并通过CLI执行/通过名称执行/调用它们或API与AWS Lambda与node.js函数一起使用的方式相同。

+0

你在找什么?可能是https://hackage.haskell.org/package/aws-lambda – josejuan

+0

我在寻找一些指导如何在Haskell中执行任意函数,而不需要实际的主函数。 Haskell aws-lambda包是AWS API的包装器,因此您可以在haskell函数内执行/触发lambda函数。 –

+0

我认为你必须澄清你想要做什么(使用Haskell语言编写一些AWS Lambda函数是不可能的),严格来说,任何程序都需要'main'函数来工作(尽管该函数会运行到某个服务器上)。您是否希望使用Haskell编写AWS Lambda函数?然后看看亚马逊Linux ... – josejuan

回答

1

如果你想重现相同的功能(功能与服务)存在很多你可以使用的技术(soap,rpc,rest,...)。如果你不知道它,我建议你阅读。

我最喜欢的是SOAP,但不受欢迎,Haskell支持有限soap(请参阅related question)。 SOAP(与其他人一样)提供你想要的。

但是你必须具体化你真正的问题,选择最好的技术。

如果您正在寻找发布自己的哈斯克尔代码Cloud Haskell可能是一个很好的起点。

如果您需要更多像“网络服务器”,然后看看到sodiumelm,...在JavaScript风格或servant(生成客户端代码,以一些语言)。

无论如何,即使AWS Lambda需要支持每种语言,您也不应期望为RPC找到一种无处不在的技术(如HTTP)。

1

你可能要检查出“无服务器Haskell的”框架:http://qmu.li

您不仅可以与它lambda函数运行单个Haskell函数,但你也可以描述在Haskell你的整个AWS基础设施。 (与在CloudFormation json/yaml模板中进行对比),将其全部构建在本地并轻松部署到AWS。