Skip to content

Commit 99b126e

Browse files
authored
Merge branch 'awslabs:main' into readme-878
2 parents 7547c2e + f8cc32d commit 99b126e

File tree

49 files changed

+188
-218
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+188
-218
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
*Issue #, if available:*
1+
📬 *Issue #, if available:*
22

3-
*Description of changes:*
3+
✍️ *Description of changes:*
44

5-
By submitting this pull request
5+
🔏 *By submitting this pull request*
66

7-
- [ ] I confirm that my contribution is made under the terms of the Apache 2.0 license.
7+
- [ ] I confirm that I've ran `cargo +nightly fmt`.
8+
- [ ] I confirm that I've ran `cargo clippy --fix`.
89
- [ ] I confirm that I've made a best effort attempt to update all relevant documentation.
10+
- [ ] I confirm that my contribution is made under the terms of the Apache 2.0 license.

.github/workflows/format.yml

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,53 +3,29 @@ name: Formatting and Linting
33
on: [push, pull_request]
44

55
jobs:
6-
check:
6+
fmt:
7+
name: Cargo fmt
78
runs-on: ubuntu-latest
89
steps:
910
- uses: actions/checkout@v3
10-
- uses: dtolnay/rust-toolchain@stable
11+
- uses: dtolnay/rust-toolchain@nightly
12+
with:
13+
components: rustfmt
1114
- uses: Swatinem/rust-cache@v2
12-
1315
- name: Run fmt check
1416
id: cargoFmt
1517
shell: bash
16-
run: cargo fmt --all -- --check
17-
- name: Notify fmt check
18-
if: failure() && steps.cargoFmt.outcome == 'failure'
19-
uses: actions/github-script@v6
20-
with:
21-
script: |
22-
const message = `👋 It looks like your code is not formatted like we expect.
23-
24-
Please run \`cargo fmt\` and push the code again.`;
25-
26-
await github.rest.issues.createComment({
27-
issue_number: context.issue.number,
28-
owner: context.repo.owner,
29-
repo: context.repo.repo,
30-
body: message,
31-
});
32-
core.setFailed('It looks like there are formatting errors');
33-
18+
run: cargo +nightly fmt --all -- --check
19+
clippy:
20+
name: Cargo clippy
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v3
24+
- uses: dtolnay/rust-toolchain@stable
25+
- uses: Swatinem/rust-cache@v2
3426
- name: Run clippy check
3527
id: cargoClippy
3628
shell: bash
3729
run: cargo clippy --workspace --all-features -- -D warnings
38-
- name: Notify fmt check
39-
if: failure() && steps.cargoClippy.outcome == 'failure'
40-
uses: actions/github-script@v6
41-
with:
42-
script: |
43-
const message = `👋 It looks like your code has some linting issues.
44-
45-
Please run \`cargo clippy --fix\` and push the code again.`;
46-
47-
await github.rest.issues.createComment({
48-
issue_number: context.issue.number,
49-
owner: context.repo.owner,
50-
repo: context.repo.repo,
51-
body: message,
52-
});
53-
core.setFailed('It looks like there are linting errors');
5430

5531

.rustfmt.toml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
edition = "2021"
2-
# imports_granularity is unstable
3-
# # https://github.com/rust-lang/rustfmt/blob/master/Configurations.md#merge_imports
4-
# imports_granularity = "Crate"
2+
53
# https://github.com/rust-lang/rustfmt/blob/master/Configurations.md#max_width
64
max_width = 120
5+
6+
#https://github.com/rust-lang/rustfmt/blob/master/Configurations.md#reorder_imports
7+
reorder_imports = true
8+
9+
#https://github.com/rust-lang/rustfmt/blob/master/Configurations.md#unstable_features
10+
unstable_features = true
11+
12+
# imports_granularity is unstable
13+
# https://github.com/rust-lang/rustfmt/blob/master/Configurations.md#merge_imports
14+
imports_granularity = "Crate"

examples/opentelemetry-tracing/Cargo.toml

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,15 @@ version = "0.1.0"
44
edition = "2021"
55

66
[dependencies]
7-
# Library dependencies
8-
lambda_runtime = { path = "../../lambda-runtime" }
9-
pin-project = "1"
7+
lambda_runtime = { path = "../../lambda-runtime", features = ["opentelemetry"] }
108
opentelemetry-semantic-conventions = "0.14"
9+
opentelemetry = "0.22"
10+
opentelemetry_sdk = { version = "0.22", features = ["rt-tokio"] }
11+
opentelemetry-stdout = { version = "0.3", features = ["trace"] }
12+
pin-project = "1"
13+
serde_json = "1.0"
14+
tokio = "1"
1115
tower = "0.4"
1216
tracing = "0.1"
13-
14-
# Binary dependencies
15-
opentelemetry = { version = "0.22", optional = true }
16-
opentelemetry_sdk = { version = "0.22", features = ["rt-tokio"], optional = true }
17-
opentelemetry-stdout = { version = "0.3", features = ["trace"], optional = true }
18-
serde_json = { version = "1.0", optional = true }
19-
tokio = { version = "1", optional = true }
20-
tracing-opentelemetry = { version = "0.23", optional = true }
21-
tracing-subscriber = { version = "0.3", optional = true }
22-
23-
[features]
24-
build-binary = [
25-
"opentelemetry",
26-
"opentelemetry_sdk",
27-
"opentelemetry-stdout",
28-
"serde_json",
29-
"tokio",
30-
"tracing-opentelemetry",
31-
"tracing-subscriber",
32-
]
33-
34-
[[bin]]
35-
name = "opentelemetry-tracing"
36-
required-features = ["build-binary"]
17+
tracing-opentelemetry = "0.23"
18+
tracing-subscriber = "0.3"

examples/opentelemetry-tracing/src/main.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
use lambda_runtime::{LambdaEvent, Runtime};
1+
use lambda_runtime::{layers::OpenTelemetryLayer as OtelLayer, LambdaEvent, Runtime};
22
use opentelemetry::trace::TracerProvider;
33
use opentelemetry_sdk::{runtime, trace};
4-
use opentelemetry_tracing::OpenTelemetryLayer;
54
use tower::{service_fn, BoxError};
65
use tracing_subscriber::prelude::*;
76

@@ -25,7 +24,7 @@ async fn main() -> Result<(), BoxError> {
2524
.init();
2625

2726
// Initialize the Lambda runtime and add OpenTelemetry tracing
28-
let runtime = Runtime::new(service_fn(echo)).layer(OpenTelemetryLayer::new(|| {
27+
let runtime = Runtime::new(service_fn(echo)).layer(OtelLayer::new(|| {
2928
// Make sure that the trace is exported before the Lambda runtime is frozen
3029
tracer_provider.force_flush();
3130
}));

lambda-events/src/custom_serde/codebuild_time.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use chrono::{DateTime, NaiveDateTime, Utc};
2-
use serde::ser::Serializer;
32
use serde::{
43
de::{Deserializer, Error as DeError, Visitor},
4+
ser::Serializer,
55
Deserialize,
66
};
77
use std::fmt;

lambda-events/src/custom_serde/float_unix_epoch.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use serde::{de, ser};
22
use std::fmt;
33

4-
use chrono::offset::TimeZone;
5-
use chrono::{DateTime, LocalResult, Utc};
4+
use chrono::{offset::TimeZone, DateTime, LocalResult, Utc};
65

76
enum SerdeError<V: fmt::Display, D: fmt::Display> {
87
NonExistent { timestamp: V },

lambda-events/src/custom_serde/headers.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
use http::header::HeaderName;
2-
use http::{HeaderMap, HeaderValue};
3-
use serde::de::{self, Deserializer, Error as DeError, MapAccess, Unexpected, Visitor};
4-
use serde::ser::{Error as SerError, SerializeMap, Serializer};
1+
use http::{header::HeaderName, HeaderMap, HeaderValue};
2+
use serde::{
3+
de::{self, Deserializer, Error as DeError, MapAccess, Unexpected, Visitor},
4+
ser::{Error as SerError, SerializeMap, Serializer},
5+
};
56
use std::{borrow::Cow, fmt};
67

78
/// Serialize a http::HeaderMap into a serde str => Vec<str> map

lambda-events/src/custom_serde/http_method.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use http::Method;
2-
use serde::de::{Deserialize, Deserializer, Error as DeError, Unexpected, Visitor};
3-
use serde::ser::Serializer;
2+
use serde::{
3+
de::{Deserialize, Deserializer, Error as DeError, Unexpected, Visitor},
4+
ser::Serializer,
5+
};
46
use std::fmt;
57

68
pub fn serialize<S: Serializer>(method: &Method, ser: S) -> Result<S::Ok, S::Error> {

lambda-events/src/custom_serde/mod.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use base64::Engine;
2-
use serde::de::{Deserialize, Deserializer, Error as DeError};
3-
use serde::ser::Serializer;
2+
use serde::{
3+
de::{Deserialize, Deserializer, Error as DeError},
4+
ser::Serializer,
5+
};
46
use std::collections::HashMap;
57

68
#[cfg(feature = "codebuild")]

lambda-events/src/encodings/http.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
use base64::display::Base64Display;
22
use bytes::Bytes;
33
use http_body::{Body as HttpBody, SizeHint};
4-
use serde::de::{Deserialize, Deserializer, Error as DeError, Visitor};
5-
use serde::ser::{Error as SerError, Serialize, Serializer};
4+
use serde::{
5+
de::{Deserialize, Deserializer, Error as DeError, Visitor},
6+
ser::{Error as SerError, Serialize, Serializer},
7+
};
68
use std::{borrow::Cow, mem::take, ops::Deref, pin::Pin, task::Poll};
79

810
/// Representation of http request and response bodies as supported

lambda-events/src/encodings/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use serde::{Deserialize, Serialize};
2-
use std::{ops::Deref, ops::DerefMut};
2+
use std::ops::{Deref, DerefMut};
33

44
#[cfg(feature = "chrono")]
55
mod time;

lambda-events/src/encodings/time.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use chrono::{DateTime, TimeDelta, TimeZone, Utc};
2-
use serde::ser::Serializer;
32
use serde::{
43
de::{Deserializer, Error as DeError},
4+
ser::Serializer,
55
Deserialize, Serialize,
66
};
77
use std::ops::{Deref, DerefMut};

lambda-events/src/event/alb/mod.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
use crate::custom_serde::{
2-
deserialize_headers, deserialize_nullish_boolean, http_method, serialize_headers, serialize_multi_value_headers,
1+
use crate::{
2+
custom_serde::{
3+
deserialize_headers, deserialize_nullish_boolean, http_method, serialize_headers, serialize_multi_value_headers,
4+
},
5+
encodings::Body,
36
};
4-
use crate::encodings::Body;
57
use http::{HeaderMap, Method};
68
use query_map::QueryMap;
79
use serde::{Deserialize, Serialize};

lambda-events/src/event/apigw/mod.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
use crate::custom_serde::{
2-
deserialize_headers, deserialize_lambda_map, deserialize_nullish_boolean, http_method, serialize_headers,
3-
serialize_multi_value_headers,
1+
use crate::{
2+
custom_serde::{
3+
deserialize_headers, deserialize_lambda_map, deserialize_nullish_boolean, http_method, serialize_headers,
4+
serialize_multi_value_headers,
5+
},
6+
encodings::Body,
7+
iam::IamPolicyStatement,
48
};
5-
use crate::encodings::Body;
6-
use crate::iam::IamPolicyStatement;
79
use http::{HeaderMap, Method};
810
use query_map::QueryMap;
911
use serde::{de::DeserializeOwned, ser::SerializeMap, Deserialize, Deserializer, Serialize, Serializer};

lambda-events/src/event/appsync/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use serde::de::DeserializeOwned;
2-
use serde::{Deserialize, Serialize};
1+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
32
use serde_json::Value;
43
use std::collections::HashMap;
54

lambda-events/src/event/autoscaling/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use chrono::{DateTime, Utc};
2-
use serde::de::DeserializeOwned;
3-
use serde::{Deserialize, Serialize};
2+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
43
use serde_json::Value;
54
use std::collections::HashMap;
65

lambda-events/src/event/cloudformation/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,7 @@ pub enum CloudFormationCustomResourceResponseStatus {
102102
mod test {
103103
use std::collections::HashMap;
104104

105-
use super::CloudFormationCustomResourceRequest::*;
106-
use super::*;
105+
use super::{CloudFormationCustomResourceRequest::*, *};
107106

108107
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
109108
#[serde(rename_all = "PascalCase")]

lambda-events/src/event/cloudformation/provider.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ where
9090
mod test {
9191
use std::collections::HashMap;
9292

93-
use super::CloudFormationCustomResourceRequest::*;
94-
use super::*;
93+
use super::{CloudFormationCustomResourceRequest::*, *};
9594

9695
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9796
#[serde(rename_all = "PascalCase")]

lambda-events/src/event/cloudwatch_events/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use chrono::{DateTime, Utc};
2-
use serde::de::DeserializeOwned;
3-
use serde::{Deserialize, Serialize};
2+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
43
use serde_json::Value;
54

65
pub mod cloudtrail;

lambda-events/src/event/codebuild/mod.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
use crate::custom_serde::{codebuild_time, CodeBuildNumber};
2-
use crate::encodings::{MinuteDuration, SecondDuration};
1+
use crate::{
2+
custom_serde::{codebuild_time, CodeBuildNumber},
3+
encodings::{MinuteDuration, SecondDuration},
4+
};
35
use chrono::{DateTime, Utc};
4-
use serde::de::DeserializeOwned;
5-
use serde::{Deserialize, Serialize};
6+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
67
use serde_json::Value;
78

89
pub type CodeBuildPhaseStatus = String;

lambda-events/src/event/cognito/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use serde::de::DeserializeOwned;
2-
use serde::{Deserialize, Serialize};
1+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
32
use serde_json::Value;
43
use std::collections::HashMap;
54

lambda-events/src/event/dynamodb/mod.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
use crate::custom_serde::deserialize_lambda_dynamodb_item;
2-
use crate::time_window::*;
3-
use crate::{custom_serde::float_unix_epoch, streams::DynamoDbBatchItemFailure};
1+
use crate::{
2+
custom_serde::{deserialize_lambda_dynamodb_item, float_unix_epoch},
3+
streams::DynamoDbBatchItemFailure,
4+
time_window::*,
5+
};
46
use chrono::{DateTime, Utc};
57
use serde::{Deserialize, Serialize};
68
use std::fmt;

lambda-events/src/event/eventbridge/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use chrono::{DateTime, Utc};
2-
use serde::de::DeserializeOwned;
3-
use serde::{Deserialize, Serialize};
2+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
43
use serde_json::Value;
54

65
/// Parse EventBridge events.

lambda-events/src/event/iot/mod.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
use crate::custom_serde::serialize_headers;
2-
use crate::encodings::Base64Data;
3-
use crate::iam::IamPolicyDocument;
1+
use crate::{custom_serde::serialize_headers, encodings::Base64Data, iam::IamPolicyDocument};
42
use http::HeaderMap;
53
use serde::{Deserialize, Serialize};
64

lambda-events/src/event/kinesis/event.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
use crate::encodings::{Base64Data, SecondTimestamp};
2-
use crate::time_window::{TimeWindowEventResponseProperties, TimeWindowProperties};
1+
use crate::{
2+
encodings::{Base64Data, SecondTimestamp},
3+
time_window::{TimeWindowEventResponseProperties, TimeWindowProperties},
4+
};
35
use serde::{Deserialize, Serialize};
46

57
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]

lambda-events/src/event/rabbitmq/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use serde::de::DeserializeOwned;
2-
use serde::{Deserialize, Serialize};
1+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
32
use serde_json::Value;
43
use std::collections::HashMap;
54

lambda-events/src/event/s3/object_lambda.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use http::HeaderMap;
2-
use serde::de::DeserializeOwned;
3-
use serde::{Deserialize, Serialize};
2+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
43
use serde_json::Value;
54
use std::collections::HashMap;
65

lambda-events/src/event/sns/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use chrono::{DateTime, Utc};
2-
use serde::de::DeserializeOwned;
3-
use serde::{Deserialize, Serialize};
2+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
43
use std::collections::HashMap;
54

65
use crate::custom_serde::{deserialize_lambda_map, deserialize_nullish_boolean};

0 commit comments

Comments
 (0)