For ruby we can use both gem path opt ruby gems 2 5 0 and ruby lib opt ruby lib to distribute common dependencies and shared code via gem path and ruby lib respectively.
Aws lambda ruby layer.
Layers are applied in the order that s specified merging any folders with the same name.
After showing how easy it is to write aws lambda functions in ruby we will work on a way to build layers with external dependencies or shared data in this post.
Lambda has been offering layers since the end of 2018 which allows you to create libraries of shared code.
To build a functional lambda layer we will need to package our dependencies and shared code in a zip file with a folder structure as follows.
Enter your preferred aws region and accept the other defaults.
Ruby layers with serverless.
After adding a layer to a function you can use console log to log out the aws sdk version.
As it will consume too much connections very quickly.
For the stack name enter aws sdk layer.
You can run ruby code in aws lambda.
Aws lambda ruby layers is a sample project that explores aws lambda layers and lambda support for ruby both introduced at re invent 2018.
Run this command to see the available layers.
When a lambda function configured with a lambda layer is executed aws downloads any specified layers and extracts them to the opt directory on the function execution environment.
It is generally a bad practice using api directly in the aws lambda.
To get started clone this repository.
Configuration all of the lambda layers in your serverless service can be found in serverless yml under the layers property.
Each runtime then looks for a language specific folder under the opt directory.
Zip r gem layer zip ruby x ruby 2 5 0 cache aws lambda publish layer version layer name ruby gem region us west 1 compatible runtimes ruby2 5 zip file fileb gem layer zip.
Zip them by excluding the cache and publish the gem layers to the aws layer.
Exploring aws lambda layers and ruby support.
If you are using aws as a provider all layers inside the service are aws lambda layers.
Lambda layers can come from multiple sources.
This repo shows how to include ruby native gems.
After the deployment completes the new lambda layer is available to use.
Lambda provides runtimes for ruby that execute your code to process events.
Your code runs in an environment that includes the aws sdk for ruby with credentials from an aws identity and access management iam role that you manage.