![](/img/trans.png)
[英]Python - put_item() S3, Lambda, DynamoDB -- An error occurred (ValidationException)
[英]Using python for put_item in dynamodb table with Lambda function
編寫我的第一個 Lambda 函數以使用 Python 放置項目
我遇到的問題 - 沒有從注冊表單(前端托管在啟用了 static 網絡主機的 S3 存儲桶上)獲取 DynamoDB 表的輸入
數據將通過此功能發送到 AWS 上托管的 API
const BASE_URL = `API-URL`;
function handleForm() {
const name = document.querySelector('#name').value;
const email = document.querySelector('#email').value;
const phone = document.querySelector('#phone').value;
const data = {
name,
email,
phone
}
console.log(data);
saveDataToAWS(data);
}
async function saveDataToAWS(data) {
const result = await axios.post(BASE_URL, data);
return result.data;
}
我不確定我是否以正確的方式使用 AXIOS 但讓我們繼續
我現在使用的 Lambda 函數幾乎是這樣的:
import json
import boto3
dynamodb=boto3.resource('dynamodb')
table=dynamodb.Table('register')
def lambda_handler(event, context):
table.put_item(
Item={
'name'=event['name'],
'email'=event['email'],
'phone'=event['phone']
}
)
respone={
'mes':'Good input !'
}
return {
'statusCode': 200,
'body': respone
}
我幾乎 99% 都是在 AWS 中編寫代碼的新手,所以我確信我做錯了大部分真的在尋求你的幫助!
'event' 屬性有一個 'body' 參數,它將包含您示例中的數據:
data = json.loads(event["body"])
table.put_item(
Item={
'name':data['name'],
'email':data['email'],
'phone':data['phone']
}
)
請記住還要檢查 CloudWatch Logs,因為它會告訴您是否首先調用了 Lambda,以及它是否失敗。
可以在此處找到有關event
屬性結構的更多信息: https://aws-lambda-for-python-developers.readthedocs.io/en/latest/02_event_and_context/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.