我想使用 gem httparty
(作为示例)
我添加了一个 Gemfile
source 'https://rubygems.org'
gem 'httparty'
我的 lambda 代码有:
...
require 'httparty'
我用它来调用它
response = Net::HTTParty.get('example.com', '/index.html')
但是最初的require
正在获取
{
"errorMessage": "cannot load such file -- httparty",
"errorType": "Init<LoadError>",
"stackTrace": [
"/var/lang/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'",
"/var/lang/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'",
"/var/task/lambda_function.rb:3:in `<top (required)>'",
"/var/lang/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'",
"/var/lang/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'"
]
}
最佳答案
需要将非 aws gems 捆绑到本地供应商文件夹中,然后压缩要包含的那些依赖项,即
bundle install --path vendor/bundle # <-- Note using path
zip -r function.zip lambda_function.rb vendor/ # <-- vendor/ for the dependencies
aws lambda update-function-code --function-name myFunction \
--zip-file fileb://function.zip --region 'us-east-2' # <= your region
关于ruby - 如何将 aws 中的 Gem 与 Ruby 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58595808/