Получение данных из DynamoDB

Я хочу получить данные из таблицы Dynamo-Db, используя первичный ключ, используя python. Имя моей таблицы — «CustomerDetails», а первичный ключ — «Email-id». Я активирую эту функцию Lambda из шлюза API.

      import boto3
      from boto3.dynamodb.conditions import Key, Attr
      dynamodb = boto3.resource('dynamodb')
      table = dynamodb.Table('CustomerDetails')
      def lambda_handler(event, context):
           response = table.get_item(key={'Email-id':event})
           #response = table.query(KeyConditionExpression=Key('Email-id').eq(event))

Код выше не работает. что я здесь делаю неправильно?


person vickey99    schedule 31.01.2019    source источник
comment
Удалил мой ответ, потому что, как заметил Марк Б, я смотрел на dynamodbClient вместо dynamodb.Table При этом, не могли бы вы предоставить ответ на вызов table.get_item()?   -  person Deiv    schedule 31.01.2019


Ответы (1)


Вы должны изменить get_item(key= на get_item(Key=, и я думаю, вы могли бы указать правильное место для получения email_id из события.

Вот пример:

import boto3
from boto3.dynamodb.conditions import Key

def lambda_handler(event, context):
      dynamodb = boto3.resource('dynamodb')
      table = dynamodb.Table('CustomerDetails')
      email_id = event['xxx']['xxxx'] # where your email id is in the event dict

      response = table.get_item(Key={'Email-id': email_id}).get('Item')

      ...
person Lucio Veloso Guimarães    schedule 31.01.2019