Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verarbeitung von HTTP-Ereignissen mit Rust
Anmerkung
Der Rust-Laufzeit-Client
Amazon API Gateway APIs, Application Load Balancer und Lambda-Funktions-URLs können HTTP-Ereignisse an Lambda senden. Sie können den aws_lambda_events
Beispiel – API Gateway Proxy-Anfrage bearbeiten
Beachten Sie Folgendes:
-
use aws_lambda_events::apigw::{ApiGatewayProxyRequest, ApiGatewayProxyResponse}
: Der aws_lambda_eventsCrate enthält viele Lambda-Ereignisse. Um die Kompilierungszeit zu verkürzen, verwenden Sie Feature-Flags, um die benötigten Ereignisse zu aktivieren. Beispiel: aws_lambda_events = { version = "0.8.3", default-features = false, features = ["apigw"] }
. -
use http::HeaderMap
: Für diesen Import müssen Sie den HTTPCrate zu Ihren Abhängigkeiten hinzufügen.
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 }
Der Rust-Laufzeit-Client für Lambda
Anmerkung
Der lambda_httplambda_runtime
nicht separat importieren.
Beispiel – Bearbeitung von HTTP-Anforderungen
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 }
Ein weiteres Beispiel für die Verwendung von lambda_http
finden Sie im Codebeispiel von http-axum
Beispiel für HTTP-Lambda-Ereignisse für Rust
-
Lambda-HTTP-Ereignisse
: Eine Rust-Funktion, die HTTP-Ereignisse verarbeitet. -
Lambda-HTTP-Ereignisse mit CORS-Headern
: Eine Rust-Funktion, die Tower verwendet, um CORS-Header zu injizieren. -
Lambda-HTTP-Ereignisse mit gemeinsam genutzten Ressourcen
: Eine Rust-Funktion, die gemeinsam genutzte Ressourcen verwendet, die initialisiert werden, bevor der Funktionshandler erstellt wird.