gpt4 book ai didi

ruby - AWS Lambda 无法找到 Ruby 依赖项

转载 作者:数据小太阳 更新时间:2023-10-29 08:42:40 27 4
gpt4 key购买 nike

我正在学习 announcing-ruby-support-for-aws-lambda 中的教程我无法让 Lambda 找到 Ruby 依赖项。

我已将教程的代码复制/粘贴到其中。到目前为止没有什么特别的。

require 'aws-record'

class DemoTable
include Aws::Record
set_table_name ENV[‘DDB_TABLE’]
string_attr :id, hash_key: true
string_attr :body
end

def put_item(event:,context:)
body = event["body"]
item = DemoTable.new(id: SecureRandom.uuid, body: body)
item.save! # raise an exception if save fails
item.to_h
end

我有一个包含 aws-record 的 Gemfile,并且我已经运行了 bundle installbundle install --deployment

如果我在 Lambda 控制台中,查看功能代码部分,我可以看到该项目具有供应商目录并且存在 aws-record gem。

我使用 sam CLI 打包和部署代码,似乎一切正常。

但是当我创建并运行测试时,我收到以下错误。

{
"errorMessage": "cannot load such file -- aws-record",
"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:1: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'"
]
}

在应用程序的这个阶段,一切似乎都很简单,所以我对我缺少的东西感到困惑。有人对如何解决此问题有任何建议吗?

最佳答案

问题是 Ruby 版本之间的不匹配。我比 AWS Lambda 的版本 (2.5.0) 落后了几个版本。一旦我将我的本地版本更新为 Labmda 使用的版本,加载错误就消失了。

此问题与 AWS Lambda: Ruby function failing to load gem 重复和 How can I get my AWS Lambda to access gems stored in vendor/bundle?但此时,两者都没有接受答案,所以我将此张贴在这里,以供将来遇到类似情况的开发人员使用。

关于ruby - AWS Lambda 无法找到 Ruby 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53714177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com