| Crates.io | actix_lambda |
| lib.rs | actix_lambda |
| version | 0.2.0 |
| created_at | 2019-04-20 12:45:53.334025+00 |
| updated_at | 2020-01-01 13:49:56.310308+00 |
| description | Runs your actix-web app as a lambda app that will respond to Application Load Balancer requests |
| homepage | https://github.com/palfrey/actix_lambda |
| repository | https://github.com/palfrey/actix_lambda |
| max_upload_size | |
| id | 129092 |
| size | 57,990 |
Helper libraries for running/testing Actix servers under AWS Lambda
Currently, it just consists of a simple helper function run that will run the entire app as a lambda function, and lambda_test which will feed in a single Application Load Balancer event into the Lambda app.
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);
}
In addition to the Rust code, there's also some Python work with CloudFormation and Troposphere to enable building stacks with this. To deploy this do the following:
rustup target add x86_64-unknown-linux-muslbrew install filosottile/musl-cross/musl-cross (or do Linux-equivalent steps to get a Musl cross-compiler)mkdir .cargo && echo '[target.x86_64-unknown-linux-musl]\nlinker = "x86_64-linux-musl-gcc"' > .cargo/configcargo build --release --target x86_64-unknown-linux-musl
pip install -r requirements.txtpython cf.py <path to your app's root>
You should now be able to run your app from the URL that the script spat out.