Ошибка ключа от лямбды при запросе DynamoDB - PullRequest
0 голосов
/ 14 марта 2020

Я использую следующую функцию Lamdba для запроса к Dynamo DB:

import json
import boto3 

from boto3.dynamodb.conditions import Key, Attr

#always start with the lambda_handler
def lambda_handler(event, context):
    lessonVar = event["lessonVar"]
    courseVar = event["courseVar"]
    # make the connection to dynamodb
    dynamodb = boto3.resource("dynamodb") 
    # select the table
    table = dynamodb.Table("test")
    response = table.get_item(Key={
        "coursename" : "courseVar",
        "lesson": lessonVar
    })
    return response['Item']

вот мои данные таблицы:

Primary partition key:  coursename (String)
Primary sort key:   lesson (Number)

Я получаю ошибку ключа в строке 8 следующим образом :

{
  "errorMessage": "'lessonVar'",
  "errorType": "KeyError",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 8, in lambda_handler\n    lessonVar = event[\"lessonVar\"]\n"
  ]
}

Я использую следующие критерии теста:

{
  "coursename": "introto",
  "lesson": 1
}

Кто-нибудь видит что-то, что я пропустил? Мне нужен еще один набор глаз, потому что я в растерянности.

1 Ответ

0 голосов
/ 15 марта 2020

В сообщении об ошибке сообщается, что lessonVar не является допустимым ключом поиска на event. Ваши тестовые данные не содержат свойства с именем lessonVar. Ваш код должен выглядеть примерно так:

lessonVar = event["lesson"]
courseVar = event["coursename"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...