Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memproses peristiwa HTTP dengan Rust
catatan
Klien runtime Rust
API Amazon API Gateway, Application Load Balancers, dan URL fungsi Lambda dapat mengirim peristiwa HTTP ke Lambda. Anda dapat menggunakan peti aws_lambda_events dari crates.io untuk memproses peristiwa
contoh — Menangani permintaan proxy API Gateway
Perhatikan hal berikut:
-
use aws_lambda_events::apigw::{ApiGatewayProxyRequest, ApiGatewayProxyResponse}
: Peti aws_lambda_events mencakup banyak acaraLambda. Untuk mengurangi waktu kompilasi, gunakan flag fitur untuk mengaktifkan acara yang Anda butuhkan. Contoh: aws_lambda_events = { version = "0.8.3", default-features = false, features = ["apigw"] }
. -
use http::HeaderMap
: Impor ini mengharuskan Anda untuk menambahkan peti httpke dependensi Anda.
use aws_lambda_events::apigw::{ApiGatewayProxyRequest, ApiGatewayProxyResponse}; use http::HeaderMap; use lambda_runtime::{service_fn, Error, LambdaEvent}; async fn handler( _event: LambdaEvent<ApiGatewayProxyRequest>, ) -> Result<ApiGatewayProxyResponse, Error> { let mut headers = HeaderMap::new(); headers.insert("content-type", "text/html".parse().unwrap()); let resp = ApiGatewayProxyResponse { status_code: 200, multi_value_headers: headers.clone(), is_base64_encoded: false, body: Some("Hello AWS Lambda HTTP request".into()), headers, }; Ok(resp) } #[tokio::main] async fn main() -> Result<(), Error> { lambda_runtime::run(service_fn(handler)).await }
Klien runtime Rust untuk Lambda
catatan
Peti lambda_httplambda_runtime
secara terpisah.
contoh — Menangani permintaan HTTP
use lambda_http::{service_fn, Error, IntoResponse, Request, RequestExt, Response}; async fn handler(event: Request) -> Result<impl IntoResponse, Error> { let resp = Response::builder() .status(200) .header("content-type", "text/html") .body("Hello AWS Lambda HTTP request") .map_err(Box::new)?; Ok(resp) } #[tokio::main] async fn main() -> Result<(), Error> { lambda_http::run(service_fn(handler)).await }
Untuk contoh lain tentang cara menggunakanlambda_http
, lihat contoh kode http-axum
Contoh acara HTTP Lambda untuk Rust
-
Peristiwa HTTP Lambda
: Fungsi Rust yang menangani peristiwa HTTP. -
Peristiwa Lambda HTTP dengan header CORS
: Fungsi Rust yang menggunakan Tower untuk menyuntikkan header CORS. -
Peristiwa HTTP Lambda dengan sumber daya bersama
: Fungsi Rust yang menggunakan sumber daya bersama yang diinisialisasi sebelum penangan fungsi dibuat.