我有一个Ruby Lambda函数,依赖于外部(即非AWS)的RubyGem。我有一个Gemfile、一个Gemfile.lock和一个vendor/bundle目录。从本地角度来看,一切都很正常。
我尝试使用bundle install --path vendor/bundle和bundle install --deployment来安装gems,并在压缩文件时特别包括vendor目录:zip -r function.zip myfunction.rb vendor 尽管如此,在Lambda控制台测试函数时,它会因为找不到库而失败,例如:
我尝试使用bundle install --path vendor/bundle和bundle install --deployment来安装gems,并在压缩文件时特别包括vendor目录:zip -r function.zip myfunction.rb vendor 尽管如此,在Lambda控制台测试函数时,它会因为找不到库而失败,例如:
{
"errorMessage": "cannot load such file -- mysql2",
"errorType": "Init<LoadError>",
"stackTrace": [
"/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
"/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
"/var/task/hello_ruby_record.rb:3:in `<top (required)>'",
"/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
"/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'"
]
}
我在上传函数之前打包宝石很可能做错了什么显而易见的事情;但我想不出是什么。有人有什么想法吗?
2.5
,因此正在另一个 Ruby 版本下打包。 - engineersmnky