AWS Lambda: функция Ruby не может загрузить гем - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть функция 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'"
  ]
}

Предположительно, я делаю что-то действительно очевидноенеправильно упаковывать драгоценные камни перед загрузкой функции;но я не могу понять что.У кого-нибудь есть идеи?

...