1
私はPython 3.6を使って簡単なラムダ関数を作成しようとしています。Pythonラムダ関数がKeyErrorを返します
リクエストクエリ文字列のparams内のuserId(DynamoDBの中の私の主キー)を取得し、アイテムがDBに存在する場合には200を返す必要がある機能は、ここで私はテストをやっている私のラムダ関数
import boto3
import os
from boto3.dynamodb.conditions import Key, Attr
def lambda_handler(event, context):
userId = event["userId"]
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(os.environ['Customers'])
items = table.query(
KeyConditionExpression=Key('userId').eq(userId)
)
return items["Items"]
ですラムダ・インタフェースは、それが動作し、ポストマンからしようとか、API Gatewayを使用したときに正しいユーザーはしかし、それは次のようなエラーに
{
"errorMessage": "'userId'",
"errorType": "KeyError",
"stackTrace": [
[
"/var/task/index.py",
7,
"lambda_handler",
"userId = event["userId"]"
]
]
}
- を返す返す私はここで何をしないのですか?
- 「イベント」を理解するのに苦労していますが、ドキュメントにはPython という辞書がありますが、PostmanまたはAPI Gatewayから呼び出されたときに、その結果を実際に出力して実際には をデバッグできますか?
'event'マッピングに''userId''という名前のキーがないようです。 'print'ing' event'を試して、そこに何かがあるかどうか確認してください。 –
[Chalice](https://github.com/aws/chalice)を試しましたか?これは、これを設定する頭痛の多くを保存します。 – kichik
json.dumpsをインポートしてからjson.dumps(イベント)を印刷する – jarmod