Using python in AWS Lambda, how do I put/get an item from a DynamoDB table?
In Node.js this would be something like:
dynamodb.getItem({
\"Key\": {\"f
Using latest AWS SDK
import boto3
def lambda_handler(event, context):
# this will create dynamodb resource object and
# here dynamodb is resource name
client = boto3.resource('dynamodb')
# this will search for dynamoDB table
# your table name may be different
table = client.Table("dynamoDB")
print(table.table_status)
table.put_item(Item= {'id': '34','company': 'microsoft'})
If your are using AWS you can use this code sample, only you have to give permissions to this lambda function, you can find details in link
Using Boto3 (Latest AWS SDK for python)
You import it with
import boto3
Then call the client via
dynamodb = boto3.client('dynamodb')
Get item example
dynamodb.get_item(TableName='fruitSalad', Key={'fruitName':{'S':'Banana'}})
Put item example
dynamodb.put_item(TableName='fruitSalad', Item={'fruitName':{'S':'Banana'},'key2':{'N':'value2'}})
'S' indicates a String value, 'N' is a numeric value
For other data types refer http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.put_item
full example:
import boto3
def lambda_handler(event, context):
client = boto3.client('dynamodb')
for record in event['Records']:
# your logic here...
try:
client.update_item(TableName='dynamo_table_name', Key={'hash_key':{'N':'value'}}, AttributeUpdates={"some_key":{"Action":"PUT","Value":{"N":'value'}}})
except Exception, e:
print (e)
please note that you need to decide when to use 'update_item' or 'put_item'.
with 'update_item' you ensure to have only one record with the same hash/range. if the record exists it can update this record, else it will create it
http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.update_item