尝试让Lambda连接RDS数据库,但无法加载mysql2 gem。尝试了“pristine”指令,但未解决问题。已将mysql2 gem构建到供应商目录中,并使用“bundle install --deployment”完成操作。可能是由于mysql2使用的编译扩展造成的问题。但不确定如何在AWS Lambda上解决这个问题。您有什么想法吗?以下是日志输出:
这是我的lambda_function.rb文件的顶部:
START RequestId: 62f35c49-039f-11e9-be04-1fd1111df42b Version: $LATEST
Ignoring mysql2-0.5.2 because its extensions are not built. Try: gem pristine mysql2 --version 0.5.2
Init error when loading handler lambda_function.lambda_handler
{
"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/lambda_function.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'"
]
}
END RequestId: 62f35c49-039f-11e9-be04-1fd1111df42b
REPORT RequestId: 62f35c49-039f-11e9-be04-1fd1111df42b Duration: 1439.17 ms Billed Duration: 1500 ms Memory Size: 128 MB Max Memory Used: 17 MB
Unknown application error occurred
Init<LoadError>
这是我的Gemfile:
source 'https://rubygems.org'
gem 'mysql2', '~> 0.5.2'
gem 'sequel', '~> 5.15.0'
Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
mysql2 (0.5.2)
sequel (5.15.0)
PLATFORMS
ruby
DEPENDENCIES
mysql2 (~> 0.5.2)
sequel (~> 5.15.0)
BUNDLED WITH
1.17.2
这是我的lambda_function.rb文件的顶部:
require 'json'
require 'logger'
require 'mysql2'
require 'sequel'