Aws Lambda Ruby Layer
Lambda layers can come from multiple sources.
Aws lambda ruby layer. After the deployment completes the new lambda layer is available to use. Configuration all of the lambda layers in your serverless service can be found in serverless yml under the layers property. 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. 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. If you are using aws as a provider all layers inside the service are aws lambda layers. Lambda provides runtimes for ruby that execute your code to process events. You can run ruby code in aws lambda.
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. Enter your preferred aws region and accept the other defaults. Layer dir required path to layer contents on disk name. To get started clone this repository.
After adding a layer to a function you can use console log to log out the aws sdk version. 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. As it will consume too much connections very quickly. It is generally a bad practice using api directly in the aws lambda.
Exploring aws lambda layers and ruby support. For the stack name enter aws sdk layer. Each time we publish layer it will be versioned. Ruby layers with serverless.
Each runtime then looks for a language specific folder under the opt directory. Lambda has been offering layers since the end of 2018 which allows you to create libraries of shared code. 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.
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. 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.