@@ -308,7 +308,10 @@ def __init__(self, start_time, event, context):
308308 request_context .get ('apiId' )
309309 )
310310
311- self .resource ['operation' ] = event ['httpMethod' ]
311+ self .resource ['operation' ] = event .get (
312+ 'httpMethod' ,
313+ request_context .get ('http' , {}).get ('method' , 'GET' )
314+ )
312315
313316 query_params = event .get (
314317 'queryStringParameters' ,
@@ -323,10 +326,18 @@ def __init__(self, start_time, event, context):
323326 'stage' : request_context .get ('stage' , 'N/A' ),
324327 'query_string_parameters' : query_params ,
325328 'path_parameters' : path_params ,
326- 'path' : event .get ('resource' , 'N/A' ),
329+ 'path' : event .get (
330+ 'resource' ,
331+ request_context .get ('http' , {}).get ('path' , 'N/A' )
332+ ),
327333 }
328334
329- add_data_if_needed (self .resource ['metadata' ], 'body' , event ['body' ])
335+ if 'body' in event :
336+ add_data_if_needed (
337+ self .resource ['metadata' ],
338+ 'body' ,
339+ event ['body' ]
340+ )
330341 add_data_if_needed (
331342 self .resource ['metadata' ],
332343 'headers' ,
@@ -534,7 +545,7 @@ def factory(start_time, event, context):
534545 trigger_service = event ['Records' ][0 ][event_source ].split (':' )[- 1 ]
535546 elif 'requestContext' in event and 'elb' in event ['requestContext' ]:
536547 trigger_service = ElasticLoadBalancerLambdaTrigger .RESOURCE_TYPE
537- elif 'httpMethod' in event :
548+ elif 'httpMethod' in event or 'routeKey' in event :
538549 trigger_service = ProxyAPIGatewayLambdaTrigger .RESOURCE_TYPE
539550 elif 'context' in event and 'http-method' in event ['context' ]:
540551 trigger_service = NoProxyAPIGatewayLambdaTrigger .RESOURCE_TYPE
0 commit comments