首页 > 解决方案 > 如何通过 lambda 函数从 dynamodb 中检索值

问题描述

我需要通过 lambda 函数从 dynamodb 中检索值

import boto3
from boto3.dynamodb.conditions import Key, Attr

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(os.environ['DB_TABLE_NAME'])
    postItem = table.query(
        KeyConditionExpression=Key('id').eq(postId)
    )

我收到以下错误:

{
  "errorMessage": "Syntax error in module 'lambda_function'"
}

标签: python

解决方案


您的代码中需要一个 lambda 处理程序,并且还需要导入 os 模块。这可能会让你开始。

import boto3
import os
from boto3.dynamodb.conditions import Key, Attr

def lambda_handler(event, context):

    postId = event["postId"]

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(os.environ['DB_TABLE_NAME'])

    if postId=="*":
        items = table.scan()
    else:
        items = table.query(
            KeyConditionExpression=Key('id').eq(postId)
        )

    return items["Items"]

推荐阅读