#aws-lambda #lambda #aws #api

mu_runtime

适用于 Rust 的 AWS Lambda 替代运行时

1 个不稳定版本

0.2.0 2021 年 5 月 11 日

#1222HTTP 服务器


用于 mu_alb

Apache-2.0 许可

32KB
585 行 (代码行)

μ-rs

一个极简的 AWS Lambda 运行时。它基于官方的 lambda_runtime 编写,旨在与可信赖的 aws_lambda_event crate 一起使用。

为什么还需要另一个运行时?

官方 AWS Lambda 运行时非常出色,制作精良,过去几年中已被多位开发者进行了实战测试。然而,众所周知,它的发展速度较慢 - Pull Request 和问题报告可能要等几个月才能得到适当的关注。0.3.0 版本的发布也引入了 默认 API 的额外复杂性,使其更加冗长,对开发者不太友好。

μ-rs 的主要目标是提供一个易于使用的 API,供 AWS 服务器端开发者使用,并利用 Rust 强大的生态系统中的企业级语义。

免责声明:这个 crate 已由其作者尽力开发。虽然目前很有用,但仍在开发初期。

致谢

虽然最初这个库依赖于(官方的)lambda_runtime crate,但自 0.2.0 版本以来,它已经不再是这样了。当前的代码库深受官方代码库的启发,但代码库已经大大简化。尽管如此,这两个 crate 之间仍然可以看到相似之处。如果这个库被证明是有用的,它可以回溯到上游仓库。

使用方法

设置依赖项。

[dependencies]
mu="0.2.0"

开始监听 Lambda 函数的事件。

// Sample lambda function that listen for SQS events.
use aws_lambda_events::event::sqs::SqsEvent;
use mu;

#[tokio::main]
async fn main() -> mu::RuntimeResult {
  mu::listen_events(|sqs_events, ctx| {
    handle_sqs_messages(sqs_events)
  }).await
}

async fn handle_sqs_messages(sqs_events: SqsEvent) -> Result<(), mu::Error> {
  println!("Received {} events", sqs_events.records.len());
  Ok(())
}

文档

报告错误/功能请求

我们欢迎您使用 GitHub 问题跟踪器来报告错误或建议功能。

在提交问题之前,请检查现有的开放问题或最近关闭的问题,以确保其他人尚未报告该问题。请尽量提供尽可能多的信息。以下信息非常有用

  • 可复现的测试用例或一系列步骤
  • 正在使用的代码版本
  • 与错误相关的任何修改
  • 环境或部署中的任何异常情况

通过拉取请求进行贡献

通过拉取请求的贡献非常受欢迎。在向我们发送拉取请求之前,请确保以下事项:

  1. 您正在使用最新源码的 master 分支。
  2. 您已检查现有已开放的拉取请求以及最近合并的请求,以确保问题不是别人已经解决的。
  3. 您已创建一个issue来讨论任何重要的工作 - 我们不愿意看到您的时间被浪费。

为了向我们发送拉取请求,请:

  1. 对仓库进行Fork。
  2. 修改源码;请专注于您要贡献的具体更改。如果您还重新格式化了所有代码,我们将难以关注您的更改。
  3. 确保本地测试通过。
  4. 使用清晰的提交信息将更改提交到您的Fork。
  5. 通过拉取请求界面发送给我们,回答任何默认问题。
  6. 注意在拉取请求中报告的任何自动化CI失败,并参与对话。

GitHub提供了关于Fork仓库创建拉取请求的额外文档。

寻找可以工作的贡献

查看现有issue是找到可以贡献内容的好方法。由于我们的项目默认使用GitHub issue标签(增强/错误/重复/帮助所需/无效/问题/不会修复),查看任何'帮助所需' issue是一个很好的开始。

许可

本产品根据Apache License 2条款发布。

依赖关系

~5–17MB
~186K SLoC