#lambda #负载均衡器 #应用程序 #actix-web #请求 #响应 #运行

actix_lambda

将您的 actix-web 应用程序作为 lambda 应用程序运行,该应用程序将响应对应用程序负载均衡器的请求

3 个不稳定版本

0.2.0 2020年1月1日
0.1.1 2019年4月20日
0.1.0 2019年4月20日

#15 in #负载均衡器

22 个月的下载量

AGPL-3.0-only

22KB
385

actix_lambda

Build Status Crates.io MSRV: 1.39.0

AWS Lambda 下运行/测试 Actix 服务器的辅助库

目前,它仅包括一个简单的辅助函数 run,该函数将整个应用程序作为 lambda 函数运行,以及 lambda_test,它将单个 应用程序负载均衡器 事件输入到 Lambda 应用程序中。

用法

use actix_web::{http::Method, HttpRequest, HttpResponse, web};

fn root_handler(request: HttpRequest) -> HttpResponse {
    return HttpResponse::Ok().body("Hello world");
}

fn config(cfg: &mut web::ServiceConfig) {
     cfg.route("/", web::get().to(root_handler));
     // More route handlers
}

fn main() {
    actix_lambda::run(config);
}

#[test]
fn lambda_test() {
    actix_lambda::test::lambda_test(main);
}

除了 Rust 代码外,还有一些使用 CloudFormationTroposphere 的 Python 代码,以支持使用此工具构建堆栈。要部署此应用程序,请按照以下步骤操作:

  1. 拥有一个 CLI 配置的 AWS 账户
  2. rustuptarget add x86_64-unknown-linux-musl
  3. brew install filosottile/musl-cross/musl-cross (或执行 Linux 相似的步骤 以获取 Musl 跨编译器)
  4. mkdir.cargo&&echo'[target.x86_64-unknown-linux-musl]\nlinker= "x86_64-linux-musl-gcc"' > .cargo/config
  5. cargobuild --release --targetx86_64-unknown-linux-musl
  6. cd <从此处复制辅助程序目录的副本>
  7. pip install-r requirements.txt
  8. python cf.py<path to your app'sroot>
    • 这将根据您的应用程序创建一个名为CloudFormation的堆栈,并对ALB的目标组和监听器进行一些自定义配置,以解决上游的bug

现在您应该可以从脚本输出的URL运行您的应用程序。

待办事项

依赖关系

~45MB
~1M SLoC