はじめに
DynamoDBをboto3で操作するとき、
登録・更新・削除の処理を書くことが多く、そのメモを残します。
ソースコード
登録
put.py
def put_item(param):
try:
table = dynamo.Table(config.TABLE)
response = table.put_item(
Item=param
)
except Exception as e:
logger.exception(e)
raise
更新
update.py
def update_item(param):
table = dynamo.Table(config.TABLE)
try:
update_params = {
'Key': {
'primary_key': primary_key,
'secodary_key': secodary_key
},
'UpdateExpression' : "SET #st = :d",
'ExpressionAttributeNames': {
"#st" : "update_column"
},
'ExpressionAttributeValues': {
":d": param
}
}
response = table.update_item(**update_params)
except Exception as e:
logger.exception(e)
raise
attribute 削除
delete_attribute.py
def delete_attribute(param):
table = dynamo.Table(config.TABLE)
try:
table.update_item(
Key= {
'primary_key': primary_key,
'secodary_key': secodary_key
},
UpdateExpression='remove foo' # foo というキーのデータを削除する
)
except Exception as e:
logger.exception(e)
raise
削除
delete.py
def delete_item(id):
table = dynamo.Table(config.TABLE)
try:
table.delete_item(Key={'year': year, 'title': title})
except Exception as e:
logger.exception(e)
raise