Trong phần này chúng ta sẽ tạo function để thêm thông tin tài liệu được lưu trong DynamoDB table.
Mở bảng điều khiển AWS Lambda
Ấn nút Create function
Nhập tên function: 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"
}
}
Đoạn code trên thực hiện lấy biến môi trường TABLE_NAME và dữ liệu của event. Sau đó thêm từng item vào DynamoDB table.
TABLE_NAME
làm key,
{
"Effect": "Allow",
"Action": "dynamoDB:PutItem",
"Resource": "arn:aws:dynamodb:REGION:ACCOUNT_ID:table/Documents"
}
Thay REGION
và ACCOUNT_ID
bằng vùng mà bạn tạo bảng và account id của bạn.