LambdaHandler overview
Added in v1.4.0
Table of contents
constructors
fromHttpApi
Construct a lambda handler from an HttpApi
instance.
Signature
export declare const fromHttpApi: <LA, LE>(
layer: Layer.Layer<LA | HttpApi.Api | HttpRouter.HttpRouter.DefaultServices, LE>,
options?: {
readonly middleware?: (
httpApp: HttpApp.Default
) => HttpApp.Default<never, HttpApi.Api | HttpApiBuilder.Router | HttpRouter.HttpRouter.DefaultServices>
readonly memoMap?: Layer.MemoMap
}
) => Handler<LambdaEvent, LambdaResult>
Example
import { LambdaHandler } from "@effect-aws/lambda"
import { HttpApi, HttpApiBuilder, HttpServer } from "@effect/platform"
import { Layer } from "effect"
class MyApi extends HttpApi.make("api") {}
const MyApiLive = HttpApiBuilder.api(MyApi)
export const handler = LambdaHandler.fromHttpApi(
Layer.mergeAll(
MyApiLive,
// you could also use NodeHttpServer.layerContext, depending on your
// server's platform
HttpServer.layerContext
)
)
Added in v1.4.0
make
Makes a lambda handler from the given EffectHandler and optional global layer. The global layer is used to provide a runtime which will gracefully handle lambda termination during down-scaling.
Signature
export declare const make: {
<T, R, E1, E2, A>(options: EffectHandlerWithLayer<T, R, E1, E2, A>): Handler<T, A>
<T, E, A>(handler: EffectHandler<T, never, E, A>): Handler<T, A>
<T, R, E1, E2, A>(handler: EffectHandler<T, R, E1, A>, globalLayer: Layer.Layer<R, E2>): Handler<T, A>
}
Example
import { LambdaHandler } from "@effect-aws/lambda"
import { Context } from "aws-lambda"
import { Effect } from "effect"
const effectHandler = (event: unknown, context: Context) => {
return Effect.logInfo("Hello, world!")
}
export const handler = LambdaHandler.make(effectHandler)
Example
import { LambdaHandler } from "@effect-aws/lambda"
import { Context } from "aws-lambda"
import { Effect, Logger } from "effect"
const effectHandler = (event: unknown, context: Context) => {
return Effect.logInfo("Hello, world!")
}
const LambdaLayer = Logger.replace(Logger.defaultLogger, Logger.logfmtLogger)
export const handler = LambdaHandler.make({
handler: effectHandler,
layer: LambdaLayer
})
Added in v1.0.0