package lambda-runtime

  1. Overview
  2. Docs
A custom runtime for AWS Lambda written in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

lambda-runtime-0.1.0.tbz
sha256=58863594a2f94993208c749b77eb769cf5340b8d87bb9e5e994035ba331867ff
sha512=53c9e2c256f092c09e6ce7926b1bbcbdc93efcb727d5a755557d2eb7ab1c7b0ad0a3b8e708b01a70a6eda5ef6fa9714b40f79e172bc5d17aa2c434d8ecb9a9ca

README.md.html

OCaml Runtime for AWS Lambda

This package provides a custom runtime for AWS Lambda.

Example function

See the examples folder.

Deploying

Note: Based on the instructions in this blog post and the Rust custom runtime repository

For a custom runtime, AWS Lambda looks for an executable called bootstrap in the deployment package zip. Rename the generated basic executable to bootstrap and add it to a zip archive.

The Dockerfile (in conjunction with the build.sh script) in this repo does just that. It builds a static binary called bootstrap and drops it in the target directory.

$ ./build.sh && zip -j ocaml.zip bootstrap

Now that we have a deployment package (ocaml.zip), we can use the AWS CLI to create a new Lambda function. Make sure to replace the execution role with an existing role in your account!

$ aws lambda create-function --function-name OCamlTest \
  --handler doesnt.matter \
  --zip-file file://./ocaml.zip \
  --runtime provided \
  --role arn:aws:iam::XXXXXXXXXXXXX:role/your_lambda_execution_role \
  --tracing-config Mode=Active

You can now test the function using the AWS CLI or the AWS Lambda console

$ aws lambda invoke --function-name OCamlTest \
  --payload '{"firstName": "world"}' \
  output.json
$ cat output.json  # Prints: {"message":"Hello, world!"}

Copyright & License

Copyright © 2018 António Nuno Monteiro

Distributed under the 3-clause BSD License (see LICENSE).

OCaml

Innovation. Community. Security.