1个不稳定版本
0.2.0 | 2021年5月11日 |
---|
#1371 在 HTTP服务器
51KB
919 行
μ-rs
一个简约的AWS Lambda运行时。它是基于官方的 lambda_runtime
编写的,旨在与可信赖的 aws_lambda_event
Crate一起使用。
为什么还需要另一个运行时?
官方的AWS Lambda运行时非常棒,经过精心制作,并在过去几年中由几位开发者进行了实战测试。然而,众所周知,它的发展速度较慢 - PR和票据被搁置数月后才得到适当的关注。备受期待的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问题跟踪器来报告错误或建议功能。
在提交问题之前,请检查现有的开放问题或最近关闭的问题,以确保其他人尚未报告该问题。请尽量提供尽可能多的信息。以下信息非常有用
- 可复现的测试用例或一系列步骤
- 我们代码的版本
- 您对错误相关修改
- 关于您环境或部署的任何异常情况
通过Pull Requests贡献
我们非常欢迎通过pull request进行贡献。在发送pull request之前,请确保
- 您正在针对master分支的最新源代码进行工作。
- 您检查现有的开放和最近合并的pull requests,以确保其他人尚未解决这个问题。
- 您打开一个问题以讨论任何重要的工作 - 我们不希望您的时间被浪费。
要向我们发送拉取请求,请
- 分支仓库。
- 修改源代码;请专注于您所贡献的具体更改。如果您还重整所有代码,我们将很难关注您的更改。
- 确保本地测试通过。
- 使用清晰的提交信息将更改提交到您的分支。
- 向我们发送拉取请求,回答拉取请求界面中的任何默认问题。
- 注意拉取请求中报告的任何自动化CI失败,并参与对话。
寻找可贡献的工作
查看现有问题是寻找可贡献内容的好方法。由于我们的项目默认使用GitHub问题标签(增强/错误/重复/帮助所需/无效/问题/不会修复),查看任何“帮助所需”问题是一个很好的起点。
许可
本发布受Apache License 2条款约束。
依赖项
~7–17MB
~210K SLoC