@@ -105,7 +105,7 @@ async fn inject_spans(
105
105
span_generator : Arc < Mutex < Processor > > ,
106
106
aws_runtime_addr : Uri ,
107
107
) -> Result < Response < Body > , Error > {
108
- let ( req_parts, body ) = req. into_parts ( ) ;
108
+ let ( req_parts, req_body ) = req. into_parts ( ) ;
109
109
110
110
let mut new_parts = aws_runtime_addr. into_parts ( ) ;
111
111
new_parts. path_and_query = Some ( req_parts. uri . path_and_query ( ) . unwrap ( ) . clone ( ) ) ;
@@ -115,12 +115,12 @@ async fn inject_spans(
115
115
req_parts. uri, new_uri, req_parts. method
116
116
) ;
117
117
118
- let payload = hyper:: body:: to_bytes ( body ) . await ?;
118
+ let req_payload = hyper:: body:: to_bytes ( req_body ) . await ?;
119
119
120
120
let req = Request :: builder ( )
121
- . method ( req_parts. method )
121
+ . method ( req_parts. method . clone ( ) )
122
122
. uri ( new_uri)
123
- . body ( Body :: from ( payload . clone ( ) ) )
123
+ . body ( Body :: from ( req_payload . clone ( ) ) )
124
124
. map_err ( |e| {
125
125
error ! ( "Error building request: {}" , e) ;
126
126
e
@@ -129,43 +129,43 @@ async fn inject_spans(
129
129
130
130
let mut response = client. request ( req) . await ?;
131
131
132
+ let ( resp_part, resp_body) = response. into_parts ( ) ;
133
+ let resp_payload = hyper:: body:: to_bytes ( resp_body) . await ?;
134
+ let resp_body = deserialize_json ( Ok ( resp_payload. clone ( ) ) ) . unwrap ( ) ;
135
+
132
136
if req_parts. uri . path ( ) == "/2018-06-01/runtime/invocation/next"
133
137
&& req_parts. method == hyper:: Method :: GET
134
138
{
135
139
debug ! ( "Intercepted invocation request" ) ;
136
- let ( resp_part, resp_body) = response. into_parts ( ) ;
137
- let resp_payload = hyper:: body:: to_bytes ( resp_body) . await ?;
138
- let body = deserialize_json ( Ok ( resp_payload. clone ( ) ) ) . unwrap ( ) ;
139
140
140
- let vec = serde_json:: to_vec ( & body ) ;
141
+ let vec = serde_json:: to_vec ( & resp_body ) ;
141
142
if vec. is_ok ( ) {
142
143
span_generator
143
144
. lock ( )
144
145
. await
145
146
. on_invocation_start ( vec. unwrap ( ) ) ;
146
147
}
147
- let mut response2 = Response :: builder ( )
148
- . status ( resp_part. status )
149
- . version ( resp_part. version )
150
- . body ( Body :: from ( resp_payload) )
151
- . unwrap ( ) ;
152
-
153
- * response2. headers_mut ( ) = resp_part. headers ;
154
- response = response2;
155
148
} else if req_parts
156
149
. uri
157
150
. path ( )
158
151
. starts_with ( "/2018-06-01/runtime/invocation/" )
159
152
&& req_parts. uri . path ( ) . ends_with ( "/response" )
160
153
&& req_parts. method == hyper:: Method :: POST
161
154
{
162
- debug ! ( "Intercepted invocation response" ) ;
155
+ debug ! ( "Intercepted invocation response {:?}" , req_payload ) ;
163
156
span_generator
164
157
. lock ( )
165
158
. await
166
159
. on_invocation_end ( random ( ) , random ( ) , random ( ) , None ) ;
167
160
}
161
+ let mut response2 = Response :: builder ( )
162
+ . status ( resp_part. status )
163
+ . version ( resp_part. version )
164
+ . body ( Body :: from ( resp_payload) )
165
+ . unwrap ( ) ;
168
166
167
+ * response2. headers_mut ( ) = resp_part. headers ;
168
+ response = response2;
169
169
Ok ( response)
170
170
}
171
171
0 commit comments