Initialise a Serverless project in the same directory as your Stack-enabled
package.
Install serverless-haskell plugin (Warning: not uploaded to NPM registry
yet, install manually by cloning this repository and specifying its
serverless-plugin directory to npm install).
Add the following to serverless.yml:
provider:
name: aws
runtime: nodejs6.10
functions:
myfunc:
handler: mypackage.myfunc
# Here, mypackage is the Haskell package name and myfunc is the executable
# name as defined in the Cabal file
plugins:
- serverless-haskell
Write your main function:
import qualified Data.Aeson as Aeson
import AWSLambda
main = lambdaMain handler
handler :: Aeson.Value -> IO [Int]
handler evt = do
putStrLn "This should go to logs"
print evt
pure [1, 2, 3]
Use sls deploy to deploy the executable to AWS Lambda. Note: sls deploy function is not supported.