У меня есть функция Ruby Lambda, которая зависит от внешнего (т.е. не AWS) RubyGem.У меня есть каталог Gemfile
, Gemfile.lock
и vendor/bundle
.С локальной точки зрения все выглядит хорошо.
Я пытался использовать bundle install --path vendor/bundle
и bundle install --deployment
для установки гемов, и я специально включаю каталог 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'"
]
}
Предположительно, я делаю что-то действительно очевидноенеправильно упаковывать драгоценные камни перед загрузкой функции;но я не могу понять что.У кого-нибудь есть идеи?