DynamoDB
Local Development
# Source: https://dynobase.dev/run-dynamodb-locally/
# Create a file called docker-compose.yml and paste following code:
# docker-compose.yml
version: "3.5"
services:
dynamo:
container_name: local-dynamodb
image: amazon/dynamodb-local
networks:
- local-dynamodb
ports:
- "8000:8000"
volumes:
- dynamodata:/home/dynamodblocal
working_dir: /home/dynamodblocal
command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ."
networks:
local-dynamodb:
name: local-dynamodb
volumes:
dynamodata: {}
# Run docker-compose up -d. You can skip -d flag if you don't want to run in in the "detached" mode.
docker-compose up -d
// Deserialize dynamodb obj -> python and python dict --> dynamodb obj
// source: https://towardsaws.com/making-use-of-boto3-out-of-the-box-dynamodb-serializers-1dffbc7deafe
from boto3.dynamodb.types import TypeDeserializer, TypeSerializer
def dynamo_obj_to_python_obj(dynamo_obj: dict) -> dict:
deserializer = TypeDeserializer()
return {
k: deserializer.deserialize(v)
for k, v in dynamo_obj.items()
}
def python_obj_to_dynamo_obj(python_obj: dict) -> dict:
serializer = TypeSerializer()
return {
k: serializer.serialize(v)
for k, v in python_obj.items()
}
Useful links
Last updated
Was this helpful?