【发布时间】:2018-12-05 14:12:49
【问题描述】:
我正在用 Ruby 编写一个 Lambda 函数,它最终会通过 Webhook 在 Slack 中向我发送一些通知。所以我的lambda_function 文件是
require 'json'
require 'webhook'
def lambda_handler(event:, context:)
# TODO implement
{ statusCode: 200, body: JSON.generate('Hello from Lambda!') }
Webhook.post('https://mywebhookurl', {message: 'test'})
end
我的内联代码编辑器中的目录结构如下所示:
Gemfile
Gemfile.lock
lambda_function.rb
vendor/
bundle/
ruby
2.3.0
gems/webhook
2.3.0 浴下还有其他几个文件夹,包括build_info、cache、doc 等。为了将此代码放到 AWS Lambda 上,我正在运行
zip -r myLambda.zip * 将所有内容放入一个 zip 文件并上传到 Lambda。
但是,当我最终在 lambda 上运行基本测试时,我收到以下错误:
{
"errorMessage": "cannot load such file -- webhook",
"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:2: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'"
]
}
不应该再有这个了,因为following tutorial 准确地显示了如何设置我拥有的东西,但它不起作用。有没有人成功地从 AWS Lambda 中的 gemfile 中提取 gem?
【问题讨论】:
-
你捆绑在 2.3.0 下并且在 2.5.0 下运行,这可能是一个很好的起点
标签: ruby amazon-web-services aws-lambda bundler