Skip to content

A layer for AWS Lambda that allows your functions to use OpenSSL binaries

License

Notifications You must be signed in to change notification settings

vrtdev/openssl-lambda-layer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenSSL binaries for AWS Lambda

A layer for AWS Lambda that allows your functions to use openssl binaries.

This repository contains the code needed to create an AWS Lambda Layer that adds the OpenSSL binary and related files to a Lambda container.

This is useful because Lambda Runtimes based on Amazon Linux 2 and newer do not include this binary.

How to build

To build the zip, just run

cd src
./build.sh

Then, log in to AWS Console, navigate to Lambda, and find the Layers subsection in the sidebar.

There you can create a new layer, fill in the required details, and upload the zip you just created. After finishing this process, the new layer is available to be used in you lambda functions!

Using a Lambda Layer

You can add this layer to any Lambda function you want. PATH already includes /opt/bin in Lambda, which is where it will be mounted.

In some Runtimes, you may still need to alter the LD_LIBRARY_PATH environment variable, prepending /opt/lib64 to override the .so files already present in the image.

In AWS Lambda console, find your function, then scroll down to Layers and choose "Add a layer", then select your layer.

Provide layer ARN

Then click Add, save your lambda and test it out!

Referenced layers

Simple example on Node.js

const { execSync } = require('child_process')

exports.handler = async(event) => {
  execSync(' openssl genrsa -out testCert.key 2048', { encoding: 'utf8', stdio: 'inherit' })
}

Simple example on Python

import os
import subprocess

def handler(event, context):
    subprocess.run("openssl genrsa 2048", env={'PATH': os.environ['PATH']})

About

A layer for AWS Lambda that allows your functions to use OpenSSL binaries

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 84.2%
  • Dockerfile 5.9%
  • JavaScript 5.4%
  • Python 4.5%