Skip to content

Latest commit

 

History

History
59 lines (46 loc) · 1.2 KB

README.md

File metadata and controls

59 lines (46 loc) · 1.2 KB

LambdaBase

Base library to create Elixir AWS Lambda

Installation

The package can be installed by adding lambda_base to your list of dependencies in mix.exs:

def application do
  [
    mod: {LambdaBase.Application, []}
  ]
end

def deps do
  [
    {:lambda_base, "~> 1.3.4"}
  ]
end

Basic Usage

  1. Create Lambda module. Implement handle(event, context) function.
defmodule UpCase do
  use LambdaBase
  @impl LambdaBase
  def init(context) do
    # call back one time
    {:ok, context}
  end
  @impl LambdaBase
  def handle(event, context) do
    {:ok, event |> Json.encode |> String.upcase}
  end
end
  1. Create zip file for AWS Lambda.
$ docker run -d -it --rm --name elx erintheblack/elixir-lambda-builder:al2_1.10.4
$ docker cp mix.exs elx:/tmp
$ docker cp lib elx:/tmp
$ docker exec elx /bin/bash -c "mix deps.get; MIX_ENV=prod mix lambda.release"
$ docker cp elx:/tmp/${app_name}-${version}.zip .
$ docker stop elx
  1. Upload zip file and set configuration.
  • Set Module Name to handler.
  • Set Log level to environment -> LOG_LEVEL
    • debug, info, warn, error

The docs can be found at https://hexdocs.pm/lambda_base.