Skip to main content Link Search Menu Expand Document (external link)

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