Skip to content

Commit 10f8833

Browse files
committed
fix: remove dict mutation for primary key causing regression
1 parent f6e61c1 commit 10f8833

File tree

1 file changed

+16
-1
lines changed
  • aws_lambda_powertools/utilities/idempotency/persistence

1 file changed

+16
-1
lines changed

aws_lambda_powertools/utilities/idempotency/persistence/dynamodb.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,21 @@ def __init__(
104104
super(DynamoDBPersistenceLayer, self).__init__()
105105

106106
def _get_key(self, idempotency_key: str) -> dict:
107+
"""Build primary key attribute simple or composite based on params.
108+
109+
When sort_key_attr is set, we must return a composite key with static_pk_value,
110+
otherwise we use the idempotency key given.
111+
112+
Parameters
113+
----------
114+
idempotency_key : str
115+
idempotency key to use for simple primary key
116+
117+
Returns
118+
-------
119+
dict
120+
simple or composite key for DynamoDB primary key
121+
"""
107122
if self.sort_key_attr:
108123
return {self.key_attr: {"S": self.static_pk_value}, self.sort_key_attr: {"S": idempotency_key}}
109124
return {self.key_attr: {"S": idempotency_key}}
@@ -145,8 +160,8 @@ def _get_record(self, idempotency_key) -> DataRecord:
145160

146161
def _put_record(self, data_record: DataRecord) -> None:
147162
item = {
163+
# get simple or composite primary key
148164
**self._get_key(data_record.idempotency_key),
149-
self.key_attr: {"S": data_record.idempotency_key},
150165
self.expiry_attr: {"N": str(data_record.expiry_timestamp)},
151166
self.status_attr: {"S": data_record.status},
152167
}

0 commit comments

Comments
 (0)