Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Nota
Il client di runtime Rust
Amazon API Gateway APIs, Application Load Balancers e la funzione Lambda URLs possono inviare eventi HTTP a Lambda. Puoi utilizzare la cassa aws_lambda_events
Esempio - Gestione della richiesta proxy di Gateway API
Tieni presente quanto segue:
-
use aws_lambda_events::apigw::{ApiGatewayProxyRequest, ApiGatewayProxyResponse}
: la cassa aws_lambda_eventsinclude molti eventi Lambda. Per ridurre i tempi di compilazione, utilizza i flag delle funzionalità per attivare gli eventi di cui hai bisogno. Esempio: aws_lambda_events = { version = "0.8.3", default-features = false, features = ["apigw"] }
. -
use http::HeaderMap
: questa importazione richiede l'aggiunta della cassa httpalle dipendenze.
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
}
Il client di runtime Rust per Lambda
Nota
La cassa lambda_httplambda_runtime
separatamente.
Esempio - Gestione delle richieste 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
}
Per un altro esempio di utilizzolambda_http
, consultate l'esempio di codice http-axum
Eventi HTTP Lambda di esempio per Rust
-
Eventi HTTP Lambda
: una funzione Rust che gestisce gli eventi HTTP. -
Eventi HTTP Lambda con intestazioni CORS
: una funzione Rust che utilizza Tower per inserire le intestazioni CORS. -
Eventi HTTP Lambda con risorse condivise
: una funzione Rust che utilizza risorse condivise inizializzate prima della creazione del gestore della funzione.