Skip to content

Commit 205b946

Browse files
authored
feat: migrate rust 2024 (#1840)
* feat: bump to cardo edition 2024 * feat: fmt * feat: cleanup lifetimes
1 parent 53d566b commit 205b946

File tree

16 files changed

+100
-49
lines changed

16 files changed

+100
-49
lines changed

Cargo.lock

Lines changed: 62 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common_lib/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "common_lib"
33
version = "0.1.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
serde = "1.0.192"

common_lib/src/dynamodb_manager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ use std::{thread, time::Duration};
33
use async_trait::async_trait;
44
use aws_config::BehaviorVersion;
55
use aws_sdk_dynamodb::{
6+
Client as DynamoDbClient,
67
types::{
78
self, AttributeDefinition, AttributeValue, BillingMode, KeySchemaElement, KeyType,
89
ScalarAttributeType,
910
},
10-
Client as DynamoDbClient,
1111
};
1212

1313
use lambda_runtime::Error;
@@ -189,9 +189,9 @@ mod tests {
189189
use aws_sdk_dynamodb::config::{Credentials, Region};
190190
use aws_sdk_dynamodb::{Client, Config};
191191
use testcontainers::{
192+
GenericImage,
192193
core::{IntoContainerPort, WaitFor},
193194
runners::AsyncRunner,
194-
GenericImage,
195195
};
196196

197197
use std::io::Result;

common_lib/src/lambda_manager.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ use std::{thread, time::Duration};
33

44
use async_trait::async_trait;
55
use aws_config::BehaviorVersion;
6-
use aws_sdk_lambda::types::builders::EnvironmentBuilder;
76
use aws_sdk_lambda::types::SnapStartApplyOn::PublishedVersions;
7+
use aws_sdk_lambda::types::builders::EnvironmentBuilder;
88
use aws_sdk_lambda::{
9+
Client as LambdaClient,
910
types::{
10-
builders::{FunctionCodeBuilder, SnapStartBuilder},
1111
Architecture, ImageConfig, PackageType,
12+
builders::{FunctionCodeBuilder, SnapStartBuilder},
1213
},
13-
Client as LambdaClient,
1414
};
1515

1616
use lambda_runtime::Error;

common_lib/src/retry_manager.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ impl RetryManager {
3636
break result;
3737
}
3838
nb_attempt += 1;
39-
let delay = rand::thread_rng().gen_range(self.delay_min..self.delay_max);
39+
let delay = rand::rng().random_range(self.delay_min..self.delay_max);
4040
info!("delay: {:?}", delay);
4141
tokio::time::sleep(delay).await;
4242
}

common_lib/src/runtime.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,10 @@ mod tests {
306306
None,
307307
false,
308308
);
309-
assert_eq!(test_runtime.json(), "{\"architecture\":\"arm64\",\"displayName\":\"nodejs20\",\"handler\":\"index.handler\",\"image\":{\"baseImage\":\"test_image\"},\"isSnapstart\":false,\"layer\":null,\"memorySize\":128,\"path\":\"nodejs20\",\"runtime\":\"nodejs20.x\"}");
309+
assert_eq!(
310+
test_runtime.json(),
311+
"{\"architecture\":\"arm64\",\"displayName\":\"nodejs20\",\"handler\":\"index.handler\",\"image\":{\"baseImage\":\"test_image\"},\"isSnapstart\":false,\"layer\":null,\"memorySize\":128,\"path\":\"nodejs20\",\"runtime\":\"nodejs20.x\"}"
312+
);
310313
}
311314

312315
#[test]

function-deployer-rs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "function-deployer-rs"
33
version = "0.1.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
aws_lambda_events = "0.16.0"

function-deployer-rs/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use common_lib::runtime::Runtime;
88
use common_lib::{lambda_manager::FunctionManager, retry_manager::RetryManager};
99

1010
use common_lib::lambda_manager::LambdaManager;
11-
use lambda_runtime::{service_fn, Error, LambdaEvent};
11+
use lambda_runtime::{Error, LambdaEvent, service_fn};
1212
use tracing::info;
1313

1414
#[tokio::main]
@@ -56,9 +56,9 @@ async fn main() -> Result<(), Error> {
5656
Ok(())
5757
}
5858

59-
async fn process_event<'a>(
59+
async fn process_event(
6060
event: LambdaEvent<SqsEventObj<Runtime>>,
61-
lambda_manager: &LambdaManager<'a>,
61+
lambda_manager: &LambdaManager<'_>,
6262
cloudwatch_manager: &CloudWatchManager,
6363
invoker_sqs_manager: &InvokerSQSManager,
6464
) -> Result<Response, Error> {

function-invoker-rs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "function-invoker-rs"
33
version = "0.1.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
aws_lambda_events = "0.16.0"

function-invoker-rs/src/main.rs

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
use std::thread;
2-
use std::time::Duration;
3-
41
use aws_lambda_events::event::sqs::SqsEventObj;
5-
62
use common_lib::lambda_manager::{FunctionManager, LambdaManager};
7-
83
use common_lib::reponse::Response;
94
use common_lib::retry_manager::RetryManager;
105
use common_lib::runtime::Runtime;
11-
12-
use lambda_runtime::{service_fn, Error, LambdaEvent};
6+
use lambda_runtime::{Error, LambdaEvent, service_fn};
7+
use std::thread;
8+
use std::time::Duration;
139
use tracing::info;
1410

1511
#[tokio::main]
@@ -28,18 +24,19 @@ async fn main() -> Result<(), Error> {
2824
let account_id = std::env::var("ACCOUNT_ID").expect("ACCOUNT_ID not set");
2925
let region = std::env::var("AWS_REGION").expect("AWS_REGION not set");
3026
let lambda_manager = LambdaManager::new(None, &account_id, &region, &role_arn).await;
31-
let lambda_manager_ref = &lambda_manager;
32-
let handler_func_closure = |event: LambdaEvent<SqsEventObj<Runtime>>| async move {
33-
process_event(event, lambda_manager_ref).await
34-
};
3527

36-
lambda_runtime::run(service_fn(handler_func_closure)).await?;
28+
lambda_runtime::run(service_fn(|event: LambdaEvent<SqsEventObj<Runtime>>| {
29+
let lambda_manager_ref = &lambda_manager; // Reference instead of move
30+
async move { process_event(event, lambda_manager_ref).await }
31+
}))
32+
.await?;
33+
3734
Ok(())
3835
}
3936

40-
async fn process_event<'a>(
37+
async fn process_event(
4138
event: LambdaEvent<SqsEventObj<Runtime>>,
42-
lambda_manager: &LambdaManager<'a>,
39+
lambda_manager: &LambdaManager<'_>,
4340
) -> Result<Response, Error> {
4441
for record in event.payload.records.iter() {
4542
let retry = RetryManager::new(3, Duration::from_secs(1), Duration::from_secs(30));
@@ -53,10 +50,10 @@ async fn process_event<'a>(
5350
Ok(Response::success())
5451
}
5552

56-
async fn invoke_snapstart<'a>(
53+
async fn invoke_snapstart(
5754
runtime: &Runtime,
5855
retry: &RetryManager,
59-
lambda_manager: &LambdaManager<'a>,
56+
lambda_manager: &LambdaManager<'_>,
6057
) -> Result<(), Error> {
6158
let arns = lambda_manager.list_versions_by_function(runtime).await?;
6259
for i in 0..10 {
@@ -81,10 +78,10 @@ async fn invoke_snapstart<'a>(
8178
Ok(())
8279
}
8380

84-
async fn invoke<'a>(
81+
async fn invoke(
8582
runtime: &Runtime,
8683
retry: &RetryManager,
87-
lambda_manager: &LambdaManager<'a>,
84+
lambda_manager: &LambdaManager<'_>,
8885
) -> Result<(), Error> {
8986
for i in 0..10 {
9087
info!("run #: {}", i);
@@ -96,7 +93,7 @@ async fn invoke<'a>(
9693
})
9794
.await?;
9895
info!("function updated to ensure cold start");
99-
thread::sleep(Duration::from_secs(15));
96+
thread::sleep(Duration::from_secs(5));
10097
retry
10198
.retry_async(|| async {
10299
lambda_manager

function-report-log-processor-rs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "function-report-log-processor-rs"
33
version = "0.1.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
aws_lambda_events = "0.16.0"

function-report-log-processor-rs/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use common_lib::{
66
reponse::Response,
77
report_log::{ReportLog, ReportLogData},
88
};
9-
use lambda_runtime::{service_fn, Error, LambdaEvent};
9+
use lambda_runtime::{Error, LambdaEvent, service_fn};
1010
use tracing::info;
1111

1212
#[tokio::main]

function-trigger-deployer-rs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "function-trigger-deployer-rs"
33
version = "0.1.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
lambda_runtime = "0.13.0"

function-trigger-deployer-rs/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use lambda_runtime::{service_fn, Error, LambdaEvent};
1+
use lambda_runtime::{Error, LambdaEvent, service_fn};
22
use serde_json::Value;
33
use tracing::log::info;
44

s3-uploader/runtimes/rust_on_provided_al2/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "lambda-perf"
33
version = "1.0.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
lambda_runtime = "0.12.0"

s3-uploader/runtimes/rust_on_provided_al2023/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "lambda-perf"
33
version = "1.0.0"
4-
edition = "2021"
4+
edition = "2024"
55

66
[dependencies]
77
lambda_runtime = "0.12.0"

0 commit comments

Comments
 (0)