ruby - 如何将 aws 中的 Gem 与 Ruby 结合使用?

标签 ruby amazon-web-services

我想使用 gem httparty (作为示例)

我添加了一个 Gemfile

source 'https://rubygems.org'

gem 'httparty'

enter image description here

我的 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/

相关文章:

amazon-web-services - elasticsearch只显示1个使用logstash进行数据迁移的docs.count

ruby - 从列表中生成从 n 到 m 的数字

ruby - 您需要在 Mac 上手动更新 Ruby 吗?

ruby - 在本地扩展 Faker gem 未初始化常量 Faker::xxx

python - 从Amazon S3读取仅具有特定名称的文件

android - 使用传输管理器的 Amazon s3 上传似乎永远不会停止等待

ruby - 不幸的是,小型随机字符串生成器有时会失败。请帮我修复它

ruby - 应该在系统范围内还是在用户级别安装 rbenv?

python - 在 AWS Lambda 中连接 AWS RDS (psql)

node.js - async/await 破坏了我为 AWS Lambda 构建的 Webpack;如何迁移到 Node 8.10?