簡體   English   中英

將 python 用於 dynamodb 表中的 put_item 與 Lambda function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM