Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Ruby Layers not properly packaged

Open
#177 3 comments 5 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
aws, ruby

Research direction

Reproduce the issue with the SAMBuildLayer example, its Gemfile, and sam build, then inspect .aws-sam/build for the resulting layer layout. Compare the bundled gems with the documented ruby/gems/2.7.0 and ruby/lib paths; done means a sample function can find the Gem without the Makefile workaround.

Written by the indexing model from the issue text.

Description

area/workflow/ruby_bundler maintainer/need-response

Description:

When using SAM to build a Ruby layer, packaging of Gems is incorrect. Gems are bundled in ruby /lib/vendor/bundle/ruby/2.7.0 using the default bundler workflow, these Gems are not picked up by the runtime.

Per documentation, GEM_PATH (ruby/gems/2.7.0) should be used. Shared / custom code is packaged properly to RUBYLIB (ruby/lib).

Steps to reproduce the issue:

  1. Create new SAM application.
  2. Add Layer to template:
SAMBuildLayer:
    Type: AWS::Serverless::LayerVersion
    Properties:
      ContentUri: SAMBuild
      CompatibleRuntimes:
        - ruby2.7
    Metadata:
      BuildMethod: ruby2.7
  1. Add directory SAMBuild containing a Gemfile with valid contents.
  2. Run sam build command.
  3. Review results and/or test with a sample function.

Observed result:

Result of build (.aws-sam/build) contains SAMBuildLayer/ruby/lib/vendor/bundle/ruby/2.7.0/gems with bundled Gems. When attempting to run sample function, Gem is not found.

Expected result:

Gem should be packaged in ruby/gems/2.7.0 and available to function when executed. I was able to build using a Makefile:

MakeBuildLayer:
  Type: AWS::Serverless::LayerVersion
  Properties:
    ContentUri: MakeBuild
    CompatibleRuntimes:
      - ruby2.7
  Metadata:
    BuildMethod: makefile

And Makefile in MakeBuild directory:

build-MakeBuildLayer:
  bundle install --path=$(ARTIFACTS_DIR)
  rm -rf $(ARTIFACTS_DIR)/ruby/2.7.0/cache && rm -rf $(ARTIFACTS_DIR)/ruby/2.7.0/bin
  mkdir $(ARTIFACTS_DIR)/ruby/gems
  mv $(ARTIFACTS_DIR)/ruby/2.7.0 $(ARTIFACTS_DIR)/ruby/gems

Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

SAM CLI, version 0.52.0

Dominant language
Python
Stars
381
Forks
164
Avg merge
1d 1h
Merged PRs (30d)
2

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from aws/aws-lambda-builders

All issues in aws/aws-lambda-builders

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.