您可以在 AWS Lambda 中运行 Ruby 代码。Lambda 可为 Ruby 提供运行时,用于运行代码来处理事件。您的代码在包含 适用于 Ruby 的 AWS SDK 的环境中运行,其中包含来自您管理的 AWS Identity and Access Management (IAM) 角色的凭证。要了解有关 Ruby 运行时随附的 SDK 版本的更多信息,请参阅 包含运行时的 SDK 版本。
Lambda 支持以下 Ruby 运行时:
名称 | 标识符 | 操作系统 | 弃用日期 | 阻止函数创建 | 阻止函数更新 |
---|---|---|---|---|---|
Ruby 3.3 |
|
Amazon Linux 2023 |
2027 年 3 月 31 日 |
2027 年 4 月 30 日 |
2027 年 5 月 31 日 |
Ruby 3.2 |
|
Amazon Linux 2 |
2026 年 3 月 31 日 |
2026 年 4 月 30 日 |
2026 年 5 月 31 日 |
创建 Ruby 函数
-
打开 Lambda 控制台
。 -
选择 Create function(创建函数)。
-
配置以下设置:
-
函数名称:输入函数名称。
-
运行时系统:选择 Ruby 3.2。
-
-
选择 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-s3
和 Aws::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
默认情况下,将不会启用 YJIT。要为 Ruby 3.2 函数启用 YJIT,请将 RUBY_YJIT_ENABLE
环境变量设置为 1
。要确认已启用 YJIT,请打印 RubyVM::YJIT.enabled?
方法的结果。
例 :确认已启用 YJIT
puts(RubyVM::YJIT.enabled?())
# => true