Я пишу лямбда-функцию в Ruby, которая в конечном итоге отправит мне некоторые уведомления в Slack через Webhook.Итак, что у меня есть для 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-файл и загрузить вЛямбда.
Однако, когда я наконец запускаю базовый тест для лямбды, я получаю следующую ошибку:
{
"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'"
]
}
Больше не должно быть этого, поскольку следующий урок показывает, как именно настроить то, что у меня есть, но не работает.У кого-нибудь есть успех в извлечении драгоценных камней из их гемфайла в AWS Lambda?