Menggunakan objek konteks Lambda untuk mengambil informasi fungsi Rust - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan objek konteks Lambda untuk mengambil informasi fungsi Rust

catatan

Klien runtime Rust adalah paket eksperimental. Hal ini dapat berubah dan dimaksudkan hanya untuk tujuan evaluasi.

Ketika Lambda menjalankan fungsi Anda, ia menambahkan objek konteks ke LambdaEvent yang diterima handler. Objek ini menyediakan properti dengan informasi tentang lingkungan invokasi, fungsi, dan eksekusi.

Properti konteks
  • request_id: ID AWS permintaan yang dihasilkan oleh layanan Lambda.

  • deadline: Batas waktu eksekusi untuk pemanggilan saat ini dalam milidetik.

  • invoked_function_arn: Nama Sumber Daya Amazon (ARN) dari fungsi Lambda yang dipanggil.

  • xray_trace_id: ID AWS X-Ray jejak untuk pemanggilan saat ini.

  • client_content: Objek konteks klien dikirim oleh AWS ponselSDK. Bidang ini kosong kecuali fungsi dipanggil menggunakan AWS ponselSDK.

  • identity: Identitas Amazon Cognito yang memanggil fungsi. Bidang ini kosong kecuali permintaan pemanggilan ke Lambda APIs dibuat menggunakan AWS kredensil yang dikeluarkan oleh kumpulan identitas Amazon Cognito.

  • env_config: Konfigurasi fungsi Lambda dari variabel lingkungan lokal. Properti ini mencakup informasi seperti nama fungsi, alokasi memori, versi, dan aliran log.

Mengakses informasi konteks aktif

Fungsi Lambda memiliki akses ke metadata tentang lingkungan mereka dan permintaan invokasi. LambaEventObjek yang diterima oleh penangan fungsi Anda mencakup context metadata:

use lambda_runtime::{service_fn, LambdaEvent, Error}; use serde_json::{json, Value}; async fn handler(event: LambdaEvent<Value>) -> Result<Value, Error> { let invoked_function_arn = event.context.invoked_function_arn; Ok(json!({ "message": format!("Hello, this is function {invoked_function_arn}!") })) } #[tokio::main] async fn main() -> Result<(), Error> { lambda_runtime::run(service_fn(handler)).await }