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
API Gateway API Amazon, Application Load Balancers, dan URL fungsi Lambda dapat mengirim peristiwa HTTP ke Lambda. Anda dapat menggunakan peti
contoh— Menangani permintaan proxy API Gateway
Perhatikan hal-hal berikut:
-
use aws_lambda_events::apigw::{ApiGatewayProxyRequest, ApiGatewayProxyResponse}: Peti aws_lambda_events menyertakan banyak peristiwa Lambda. Untuk mengurangi waktu kompilasi, gunakan tanda 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 menambahkan petihttp ke 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_http menggunakan lambda_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
-
Lambda HTTP Events
: Fungsi Rust yang menangani peristiwa HTTP. -
Peristiwa HTTP Lambda 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 pengendali fungsi dibuat.