This section will create a function to add document information stored in the DynamoDB table.
Open AWS Lambda console
Click Create function
Enter function name: upload_document
import json
import boto3
import os
from datetime import datetime, timezone
dynamodb = boto3.resource('dynamodb')
def lambda_handler(event, context):
table_name = os.environ['TABLE_NAME']
now = datetime.now(tz=timezone.utc)
dt_string = now.strftime("%d/%m/%Y %H:%M:%S")
#doc_data = json.loads(event["body"])
doc_data = event["body"]
path = "protected/{}/{}".format(doc_data['identityId'], doc_data['file'])
doc_data.update({"path": path, "modified": dt_string})
table = dynamodb.Table(table_name)
table.put_item(Item = doc_data)
# TODO implement
return {
'statusCode': 200,
'body': 'successfully upload!',
'headers': {
'Content-Type': 'application/json',
"Access-Control-Allow-Headers": "Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method,X-Access-Token, XKey, Authorization",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,PUT,POST,DELETE,OPTIONS"
}
}
The above code executes to get the environment variable TABLE_NAME and event data. Then add each item to the DynamoDB table.
TABLE_NAME
as key,
{
"Effect": "Allow",
"Action": "dynamoDB:PutItem",
"Resource": "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/Documents"
}
Replace REGION
and ACCOUNT_ID
with the region you create the table and your account id.