Compatibility overview
Added in v1.4.0
Table of contents
constructors
fromLayer
Makes a managed runtime from a layer asynchronously, designed for AWS Lambda. All finalizers will be executed on process termination or interruption.
Signature
export declare const fromLayer: <R, E>(
layer: Layer<R, E>,
options?: { readonly memoMap?: MemoMap }
) => ManagedRuntime<R, E>
Example
import { fromLayer } from "@effect-aws/lambda"
import { Context } from "aws-lambda"
import { Effect, Logger } from "effect"
const LambdaLayer = Logger.replace(Logger.defaultLogger, Logger.logfmtLogger)
const lambdaRuntime = fromLayer(LambdaLayer)
export const handler = async (event: unknown, context: Context) => {
return Effect.logInfo("Hello, world!").pipe(lambdaRuntime.runPromise)
}
Added in v1.0.0
makeLambda
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 makeLambda: {
<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<R, E2>): Handler<T, A>
}
Example
import { makeLambda } 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 = makeLambda(effectHandler)
Example
import { makeLambda } 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 = makeLambda({
handler: effectHandler,
layer: LambdaLayer
})
Added in v1.0.0