{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} module Main where import AWS.Lambda.RuntimeClient import AWS.Lambda.SNSEvent import Control.Monad import Control.Monad.IO.Class import Control.Monad.Logger import Data.Text (pack) main :: IO () main = runStderrLoggingT $ do client <- runtimeClient forever $ echo client echo :: (MonadLogger m, MonadIO m) => RuntimeClient SNSEvent SNSEvent m -> m () echo RuntimeClient{..} = do Event{..} <- getNextEvent case eventBody of Right e -> postResponse eventID e Left e -> postError eventID $ Error "Unexpected Error" $ pack e