aws-lambda-haskell-runtime-wai: Run wai applications on AWS Lambda

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Please see the README on GitHub at https://github.com/eir-forsakring/aws-lambda-haskell-runtime-wai#readme


[Skip to Readme]

Properties

Versions 1.0.0, 1.0.0, 1.0.1, 1.0.2, 2.0.0, 2.0.1
Change log ChangeLog.md
Dependencies aeson, aws-lambda-haskell-runtime (>=3.0.0), base (>=4.7 && <5), binary, bytestring, case-insensitive, http-types, iproute, network, text, unordered-containers, vault, wai [details]
License BSD-3-Clause
Copyright Eir Försäkring
Author Dobromir Nikolov
Maintainer dnikolovv@hotmail.com
Category AWS
Home page https://github.com/eir-forsakring/aws-lambda-haskell-runtime-wai#readme
Bug tracker https://github.com/eir-forsakring/aws-lambda-haskell-runtime-wai/issues
Source repo head: git clone https://github.com/eir-forsakring/aws-lambda-haskell-runtime-wai
Uploaded by dnikolovv at 2020-06-19T12:28:53Z

Modules

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for aws-lambda-haskell-runtime-wai-1.0.0

[back to package description]

aws-lambda-haskell-runtime-wai Haskell CI

Quick start

  1. Set up your project to use AWS Lambda by following the instructions on the aws-lambda-haskell-runtime website.
  2. Use the waiHandler function from AWS.Lambda.Wai to convert your wai application to a handler. There are two ways to do this.
-- 1. Pass in the initializeApplicationFunction
-- this will call initializeApplication per each call
handler :: WaiHandler ()
handler = waiHandler initializeApplication

-- Wai application initialization logic
initializeApplication :: IO Application
initializeApplication = ...
-- 2. Store the Application inside your custom context and provide a getter function
-- this will initialize the application once per cold start and keep it alive while the lambda is warm
handler :: WaiHandler MyAppConfig
handler = waiHandler' getWaiApp

data MyAppConfig =
  MyAppConfig
    { getWaiApp :: Application }