选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Ruby 构建 Lambda 函数

聚焦模式
使用 Ruby 构建 Lambda 函数 - AWS Lambda

您可以在 AWS Lambda 中运行 Ruby 代码。Lambda 可为 Ruby 提供运行时,用于运行代码来处理事件。您的代码在包含 适用于 Ruby 的 AWS SDK 的环境中运行,其中包含来自您管理的 AWS Identity and Access Management (IAM) 角色的凭证。要了解有关 Ruby 运行时随附的 SDK 版本的更多信息,请参阅 包含运行时的 SDK 版本

Lambda 支持以下 Ruby 运行时:

名称 标识符 操作系统 弃用日期 阻止函数创建 阻止函数更新

Ruby 3.3

ruby3.3

Amazon Linux 2023

2027 年 3 月 31 日

2027 年 4 月 30 日

2027 年 5 月 31 日

Ruby 3.2

ruby3.2

Amazon Linux 2

2026 年 3 月 31 日

2026 年 4 月 30 日

2026 年 5 月 31 日

创建 Ruby 函数
  1. 打开 Lambda 控制台

  2. 选择 Create function(创建函数)。

  3. 配置以下设置:

    • 函数名称:输入函数名称。

    • 运行时系统:选择 Ruby 3.2

  4. 选择 Create function (创建函数)

控制台将使用名为 lambda_function.rb 的源文件创建一个 Lambda 函数。您可以在内置代码编辑器中编辑此文件并添加更多文件。在部署部分,选择部署以更新函数的代码。然后,要运行您的代码,请在测试事件部分中选择创建测试事件

lambda_function.rb 文件会导出一个名为 lambda_handler 的函数,此函数将接受事件对象和上下文对象。这是 Lambda 在调用函数时调用的处理函数。Ruby 函数运行时从 Lambda 获取调用事件并将其传递到处理程序。在函数配置中,处理程序值为 lambda_function.lambda_handler

保存函数代码时,Lambda 控制台会创建一个 .zip 文件归档部署包。在控制台外部开发函数代码时(使用 IDE),您需要创建部署程序包将代码上载到 Lambda 函数。

除了调用事件之外,函数运行时还将上下文对象传递给处理程序。上下文对象包含有关调用、函数和执行环境的其他信息。环境变量中提供了更多信息。

您的 Lambda 函数附带了 CloudWatch Logs 日志组。函数运行时会将每次调用的详细信息发送到 CloudWatch Logs。该运行时会中继调用期间函数输出的任何日志。如果您的函数返回错误,则 Lambda 将为错误设置格式,并将其返回给调用方。

包含运行时的 SDK 版本

Ruby 运行时中包含的 AWS SDK 版本取决于运行时版本和您的 AWS 区域。适用于 Ruby 的 AWS SDK 采用模块化设计,并按照 AWS 服务各自独立。要查找您正在使用的运行时中包含的特定服务 Gem 的版本号,请使用以下格式的代码创建 Lambda 函数。用您的代码使用的服务 Gem 的名称替换 aws-sdk-s3Aws::S3

require 'aws-sdk-s3' def lambda_handler(event:, context:) puts "Service gem version: #{Aws::S3::GEM_VERSION}" puts "Core version: #{Aws::CORE_GEM_VERSION}" end

再启用一个 Ruby JIT(YJIT)

Ruby 3.2 运行时系统支持 YJIT,这是一款轻量级的极简 Ruby JIT 编译器。YJIT 提供的性能有显著提升,但消耗的内存也比 Ruby 解释器更多。建议将 YJIT 用于 Ruby on Rails 工作负载。

默认情况下,将不会启用 YJIT。要为 Ruby 3.2 函数启用 YJIT,请将 RUBY_YJIT_ENABLE 环境变量设置为 1。要确认已启用 YJIT,请打印 RubyVM::YJIT.enabled? 方法的结果。

例 :确认已启用 YJIT
puts(RubyVM::YJIT.enabled?()) # => true

下一主题:

处理程序

上一主题:

跟踪
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。