2015-10-02 33 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。