Module: Datadog::Lambda::AppSec::EventNormalizer
- Defined in:
- lib/datadog/lambda/appsec/event_normalizer.rb
Overview
Normalizes API Gateway v1/v2 event payloads into a standard key set.
NOTE: The REST API (v1) event does NOT have a version field.
Only the HTTP API events have "version": "1.0" or "version": "2.0".
Class Method Summary collapse
Class Method Details
.normalize(event) ⇒ Object
15 16 17 |
# File 'lib/datadog/lambda/appsec/event_normalizer.rb', line 15 def normalize(event) event.key?('httpMethod') ? normalize_v1(event) : normalize_v2(event) end |
.normalize_v1(event) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/datadog/lambda/appsec/event_normalizer.rb', line 19 def normalize_v1(event) data = { 'method' => event['httpMethod'], 'path' => event['path'], 'headers' => event['headers'], 'query' => event['multiValueQueryStringParameters'] || event['queryStringParameters'], 'source_ip' => event.dig('requestContext', 'identity', 'sourceIp'), 'body' => event['body'], 'base64_encoded' => event['isBase64Encoded'], 'path_params' => event['pathParameters'] } data.compact! data end |
.normalize_v2(event) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/datadog/lambda/appsec/event_normalizer.rb', line 34 def normalize_v2(event) data = { 'method' => event.dig('requestContext', 'http', 'method'), 'path' => event['rawPath'], 'headers' => event['headers'], 'cookies' => event['cookies'], 'query' => event['queryStringParameters'], 'query_string' => event['rawQueryString'], 'source_ip' => event.dig('requestContext', 'http', 'sourceIp'), 'body' => event['body'], 'base64_encoded' => event['isBase64Encoded'], 'path_params' => event['pathParameters'] } data.compact! data end |