Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Working lambda function with s3 code doesn't work with plugin

未关闭
#120 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
aws, ruby
领域
backend, cloud

调研方向

从 /var/task/helpers/s3_helper.rb 中的 S3 require 以及经过 handlers/base_handlers/pg_handler.rb 和 handlers/void_charge.rb 的 require 链开始。使用 Ruby 3.2.2 和 serverless.yml 中的插件配置重现部署,然后追踪插件启用时 aws-sigv4 不可用的原因。当加载 S3 的函数能够通过 Datadog wrapper 成功调用,并且不访问 S3 的函数仍能正常工作时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

bug

Expected Behavior

running lambda can add datadog wrapper with no issues

Actual Behavior

once I add the plugin, without adding instrumenting code, running lambdas that involve loading content from s3 fails with below error

"errorMessage": "cannot load such file -- aws-sigv4",
  "errorType": "Init<LoadError>"

Functions that do not load s3 files runs with no error.
The s3 code

      s3_object = s3.get_object({bucket: ENV['S3_BUCKET_NAME'], key: '*****'})
      file_contents = s3_object[:body].read
      application_file = YAML.load(file_contents)

Steps to Reproduce the Problem

  1. Add below to serverless.yml
+  - serverless-plugin-datadog 
 custom:
+  datadog:
+    site: datadoghq.com
+    apiKeySecretArn: ********
  1. deploy and invoke function

Specifications

  • Serverless Framework version: 3.22.0
  • Datadog Serverless Plugin version: 5.89.0
  • Lambda function runtime (Python 3.7, Node 10, etc.): Ruby 3.2.2

Stacktrace

{
"errorMessage": "cannot load such file -- aws-sigv4",
"errorType": "Init<LoadError>",
"stackTrace": [
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:141:in `require'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:141:in `rescue in require'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:135:in `require'",
  "/var/runtime/ruby/3.2.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core.rb:6:in `<top (required)>'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'",
  "/var/runtime/ruby/3.2.0/gems/aws-sdk-kms-1.99.0/lib/aws-sdk-kms.rb:11:in `<top (required)>'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'",
  "/var/runtime/ruby/3.2.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3.rb:11:in `<top (required)>'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:141:in `require'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:141:in `rescue in require'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:135:in `require'",
  "/var/task/helpers/s3_helper.rb:1:in `<top (required)>'",
  "/var/task/handlers/base_handlers/pg_handler.rb:11:in `require_relative'",
  "/var/task/handlers/base_handlers/pg_handler.rb:11:in `<top (required)>'",
  "/var/task/handlers/void_charge.rb:1:in `require_relative'",
  "/var/task/handlers/void_charge.rb:1:in `<top (required)>'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'",
  "<internal:/var/lang/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:136:in `require'"
]
}
主要语言
Ruby
星标
9
派生
9
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

DataDog/datadog-lambda-rb 的其他 Issue

查看 DataDog/datadog-lambda-rb 的全部 Issue

相似的 Issue

更多 Ruby Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。