Traitement des événements HTTP avec Rust
Note
Le client d’exécution Rust
Les API Amazon API Gateway, les Application Load Balancers et les URL de fonction Lambda peuvent envoyer des événements HTTP à Lambda. Vous pouvez utiliser la caisse aws_lambda_events
Exemple – Gestion de la demande de proxy API Gateway
Remarques :
-
use aws_lambda_events::apigw::{ApiGatewayProxyRequest, ApiGatewayProxyResponse}: la caisse aws_lambda_eventsinclut de nombreux événements Lambda. Pour réduire le temps de compilation, utilisez les drapeaux de fonction pour activer les événements dont vous avez besoin. Exemple : : aws_lambda_events = { version = "0.8.3", default-features = false, features = ["apigw"] }. -
use http::HeaderMap: cette importation nécessite d’ajouter la caisse httpà vos dépendances.
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 }
Le client d’exécution Rust pour Lambda
Note
À la base, la caisse lambda_httplambda_runtime séparément.
Exemple – Gestion des requêtes 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 }
Pour un autre exemple d’utilisation de lambda_http, consultez l’exemple de code http-axum
Exemples d’événements HTTP Lambda pour Rust
-
Événements HTTP Lambda
: une fonction Rust qui gère les événements HTTP. -
Événements HTTP Lambda avec en-têtes CORS
: une fonction Rust qui utilise Tower pour injecter des en-têtes CORS. -
Événements HTTP Lambda avec ressources partagées
: une fonction Rust qui utilise des ressources partagées initialisées avant la création du gestionnaire de fonction.