Skip to content

Commit 86ef6de

Browse files
feat(parser): small changes
1 parent 75e84bd commit 86ef6de

File tree

5 files changed

+22
-18
lines changed

5 files changed

+22
-18
lines changed

aws_lambda_powertools/utilities/parser/envelopes/kafka.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import logging
22
from typing import Any, Dict, List, Optional, Type, Union
33

4-
from ..models import KafkaEventModel
4+
from ..models import KafkaMskEventModel
55
from ..types import Model
66
from .base import BaseEnvelope
77

@@ -32,8 +32,8 @@ def parse(self, data: Optional[Union[Dict[str, Any], Any]], model: Type[Model])
3232
List
3333
List of records parsed with model provided
3434
"""
35-
logger.debug(f"Parsing incoming data with Kafka event model {KafkaEventModel}")
36-
parsed_envelope: KafkaEventModel = KafkaEventModel.parse_obj(data)
35+
logger.debug(f"Parsing incoming data with Kafka event model {KafkaMskEventModel}")
36+
parsed_envelope: KafkaMskEventModel = KafkaMskEventModel.parse_obj(data)
3737
logger.debug(f"Parsing Kafka event records in `value` with {model}")
3838
ret_list = []
3939
for records in parsed_envelope.records.values():

aws_lambda_powertools/utilities/parser/models/__init__.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from .cloudwatch import CloudWatchLogsData, CloudWatchLogsDecode, CloudWatchLogsLogEvent, CloudWatchLogsModel
1818
from .dynamodb import DynamoDBStreamChangedRecordModel, DynamoDBStreamModel, DynamoDBStreamRecordModel
1919
from .event_bridge import EventBridgeModel
20-
from .kafka import KafkaBaseEventModel, KafkaEventModel, KafkaRecordModel, MskEventModel
20+
from .kafka import KafkaBaseEventModel, KafkaMskEventModel, KafkaRecordModel, KafkaSelfManagedEventModel
2121
from .kinesis import KinesisDataStreamModel, KinesisDataStreamRecord, KinesisDataStreamRecordPayload
2222
from .lambda_function_url import LambdaFunctionUrlModel
2323
from .s3 import S3Model, S3RecordModel
@@ -99,8 +99,8 @@
9999
"APIGatewayEventRequestContext",
100100
"APIGatewayEventAuthorizer",
101101
"APIGatewayEventIdentity",
102-
"KafkaEventModel",
102+
"KafkaSelfManagedEventModel",
103103
"KafkaRecordModel",
104-
"MskEventModel",
104+
"KafkaMskEventModel",
105105
"KafkaBaseEventModel",
106106
]

aws_lambda_powertools/utilities/parser/models/kafka.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def split_servers(cls, value):
4444
return None if not value else value.split(SERVERS_DELIMITER)
4545

4646

47-
class KafkaEventModel(KafkaBaseEventModel):
47+
class KafkaSelfManagedEventModel(KafkaBaseEventModel):
4848
"""Self-managed Apache Kafka event trigger
4949
Documentation:
5050
--------------
@@ -54,7 +54,7 @@ class KafkaEventModel(KafkaBaseEventModel):
5454
eventSource: Literal["aws:SelfManagedKafka"]
5555

5656

57-
class MskEventModel(KafkaBaseEventModel):
57+
class KafkaMskEventModel(KafkaBaseEventModel):
5858
"""Fully-managed AWS Apache Kafka event trigger
5959
Documentation:
6060
--------------

docs/utilities/parser.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,8 @@ Parser comes with the following built-in models:
168168
| **APIGatewayProxyEventModel** | Lambda Event Source payload for Amazon API Gateway |
169169
| **APIGatewayProxyEventV2Model** | Lambda Event Source payload for Amazon API Gateway v2 payload |
170170
| **LambdaFunctionUrlModel** | Lambda Event Source payload for Lambda Function URL payload |
171-
| **KafkaModel** | Lambda Event Source payload for self managed Kafka payload |
172-
| **MskEventModel** | Lambda Event Source payload for AWS MSK payload |
171+
| **KafkaSelfManagedEventModel** | Lambda Event Source payload for self managed Kafka payload |
172+
| **KafkaMskEventModel** | Lambda Event Source payload for AWS MSK payload |
173173

174174
### extending built-in models
175175

tests/functional/parser/test_kafka.py

+12-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
from typing import List
22

33
from aws_lambda_powertools.utilities.parser import envelopes, event_parser
4-
from aws_lambda_powertools.utilities.parser.models import KafkaEventModel, KafkaRecordModel, MskEventModel
4+
from aws_lambda_powertools.utilities.parser.models import (
5+
KafkaMskEventModel,
6+
KafkaRecordModel,
7+
KafkaSelfManagedEventModel,
8+
)
59
from aws_lambda_powertools.utilities.typing import LambdaContext
610
from tests.functional.parser.schemas import MyLambdaKafkaBusiness
711
from tests.functional.utils import load_event
@@ -13,19 +17,19 @@ def handle_lambda_kafka_with_envelope(event: List[MyLambdaKafkaBusiness], _: Lam
1317
assert len(event) == 1
1418

1519

16-
@event_parser(model=KafkaEventModel)
17-
def handle_kafka_event(event: KafkaEventModel, _: LambdaContext):
20+
@event_parser(model=KafkaSelfManagedEventModel)
21+
def handle_kafka_event(event: KafkaSelfManagedEventModel, _: LambdaContext):
1822
return event
1923

2024

2125
def test_kafka_event_with_envelope():
22-
event = load_event("kafkaEventSelfManaged.json")
26+
event = load_event("kafkaEventMsk.json")
2327
handle_lambda_kafka_with_envelope(event, LambdaContext())
2428

2529

2630
def test_self_managed_kafka_event():
2731
json_event = load_event("kafkaEventSelfManaged.json")
28-
event: KafkaEventModel = handle_kafka_event(json_event, LambdaContext())
32+
event: KafkaSelfManagedEventModel = handle_kafka_event(json_event, LambdaContext())
2933
assert event.eventSource == "aws:SelfManagedKafka"
3034
bootstrap_servers = [
3135
"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092",
@@ -49,14 +53,14 @@ def test_self_managed_kafka_event():
4953
assert record.headers[0]["headerKey"] == b"headerValue"
5054

5155

52-
@event_parser(model=MskEventModel)
53-
def handle_msk_event(event: MskEventModel, _: LambdaContext):
56+
@event_parser(model=KafkaMskEventModel)
57+
def handle_msk_event(event: KafkaMskEventModel, _: LambdaContext):
5458
return event
5559

5660

5761
def test_kafka_msk_event():
5862
json_event = load_event("kafkaEventMsk.json")
59-
event: MskEventModel = handle_msk_event(json_event, LambdaContext())
63+
event: KafkaMskEventModel = handle_msk_event(json_event, LambdaContext())
6064
assert event.eventSource == "aws:kafka"
6165
bootstrap_servers = [
6266
"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092",

0 commit comments

Comments
 (0)