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?: HttpApiOptions
) => Handler<LambdaHandler.Event, LambdaHandler.Result>
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
httpApiHandler
Construct an EffectHandler
from an HttpApi
instance.
Signature
export declare const httpApiHandler: (
options?: Pick<HttpApiOptions, "middleware">
) => EffectHandler<
LambdaHandler.Event,
HttpApi.Api | HttpApiBuilder.Router | HttpRouter.HttpRouter.DefaultServices | HttpApiBuilder.Middleware,
Cause.UnknownException,
LambdaHandler.Result
>
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, LambdaContext } from "@effect-aws/lambda"
import { Effect } from "effect"
const effectHandler = (event: unknown, context: LambdaContext) => {
return Effect.logInfo("Hello, world!")
}
export const handler = LambdaHandler.make(effectHandler)
Example
import { LambdaHandler, LambdaContext } from "@effect-aws/lambda"
import { Effect, Logger } from "effect"
const effectHandler = (event: unknown, context: LambdaContext) => {
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
makeWebHandler
Construct an WebHandler
from an HttpApi
instance.
Signature
export declare const makeWebHandler: (
options?: Pick<HttpApiOptions, "middleware">
) => Effect.Effect<
WebHandler,
never,
| HttpApiBuilder.Router
| HttpApi.Api
| HttpRouter.HttpRouter.DefaultServices
| HttpApiBuilder.Middleware
| LambdaHandler.Event
| LambdaContext
>
Added in v1.4.0
stream
Makes a streamify lambda handler from the given StreamHandler 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 stream: {
<T, R, E1, E2>(options: StreamHandlerWithLayer<T, R, E1, E2>): Handler<T, void>
<T, E>(handler: StreamHandler<T, never, E>): Handler<T, void>
}
Example
import { LambdaHandler, LambdaContext } from "@effect-aws/lambda"
import { Stream } from "effect"
const streamHandler = (event: unknown, context: LambdaContext) => {
return Stream.make("1", "2", "3")
}
export const handler = LambdaHandler.stream(streamHandler)
Example
import { LambdaHandler, LambdaContext } from "@effect-aws/lambda"
import { Stream, Logger } from "effect"
const streamHandler = (event: unknown, context: LambdaContext) => {
return Stream.make("1", "2", "3")
}
const LambdaLayer = Logger.replace(Logger.defaultLogger, Logger.logfmtLogger)
export const handler = LambdaHandler.stream({
handler: streamHandler,
layer: LambdaLayer
})
Added in v1.5.0
context
context
Signature
export declare const context: () => Effect.Effect<LambdaContext>
Added in v1.4.0
event
Signature
export declare const event: <T extends LambdaHandler.Event>() => Effect.Effect<T>
Added in v1.4.0
utils
LambdaHandler (namespace)
Added in v1.4.0
Event (type alias)
Signature
export type Event =
| ALBEvent
| APIGatewayProxyEvent
| APIGatewayProxyEventV2
| EventBridgeEvent<string, unknown>
| DynamoDBStreamEvent
| KinesisStreamEvent
| S3Event
| SelfManagedKafkaEvent
| SNSEvent
| SQSEvent
| CloudFrontRequestEvent
Added in v1.4.0
Result (type alias)
Signature
export type Result = ALBResult | APIGatewayProxyResult | APIGatewayProxyResultV2 | void
Added in v1.4.0