This library provides CDK constructs for AWS Lambda functions written in Ruby.
import*ascdkfrom'@aws-cdk/core';import*aslambdafrom'@aws-cdk/aws-lambda';import*aslambdaRubyfrom'cdk-lambda-ruby';exportclassExampleStackextendscdk.Stack{publicconstructor(scope: cdk.Construct,id: string,props?: cdk.StackProps){super(scope,id,props);newlambdaRuby.RubyFunction(this,'MyFunction',{runtime: lambda.Runtime.RUBY_2_7,sourceDirectory: 'function',handler: 'main.handler',bundlerConfig: {// optionalwithout: 'development:test',// optional, default: 'development:test'build: {// optional'some-gem': '--some-build-option',},},});}}RubyFunction deploys the sourceDirectory as a Lambda function written in Ruby. runtime is expected to be a Ruby-family Lambda Runtime (i.e., RUBY_2_5 or RUBY_2_7 at the moment).
If a file named "Gemfile" exists directly inside sourceDirectory, the dependency gems are bundled using Bundler. Bundling is performed inside a Docker container using the Lambda builder images privided by AWS. The bundlerConfig prop may have the without field to specify a colon-separated list of gem groups to skip installation.
RubyFunction also accepts common FunctionOptions.
The library caches downloaded gems, compiled extensions, and installation trees under "cdk.out/.cache" to optimize synthesis speed. Try delete these files if something unexpected happens.