AWSラムダを持つアプリケーション用にサーバレスバックエンドを作成しようとしています。このエラーは、API Gatewayプロキシの統合でテストするときに発生しますが、ラムダコンソールでテストしたときに正常に機能します。ここで形式の間違ったラムダプロキシ応答:文字列インデックスは整数でなければなりません
は誤りである:ここでは
{
"errorMessage":"string indices must be integers",
"errorType":"TypeError",
"stackTrace":[
[
"/var/task/auth_login.py",
17,
"lambda_handler",
"response = get_user(payload)"
],
[
"/var/task/shifty_utils/__init__.py",
22,
"get_user",
"table = dynamo.Table(user['company'] + '_users')"
]
]
}
は、それが発生した場所のコンテキストである:
def lambda_handler(event, context):
payload = event['body']
response = get_user(payload)
def get_user(user):
try:
table = dynamo.Table(user['company'] + '_users')
response = table.get_item(
Key={
'userId': user['userId'],
'position': user['position']
}
)
except ClientError as e:
print(e.response['Error']['Message'])
return {'message': e.response['Error']['Message']}
else:
return response
は対照的に、基本的には、プロキシの統合は、JSONフォーマットされた文字列としてイベントオブジェクトの読み込みしているように見えます私はそれのために私のコードを調整すれば何が起こるのですか:ここでは何が起こるのでしょうか:
{
"errorMessage":"the JSON object must be str, bytes or bytearray, not 'dict'",
"errorType":"TypeError",
"stackTrace":[
[
"/var/task/auth_login.py",
15,
"lambda_handler",
"payload = json.loads(event)"
],
[
"/var/lang/lib/python3.6/json/__init__.py",
348,
"loads",
"'not {!r}'.format(s.__class__.__name__))"
]
]
}
私は勝てません。どんな助けもありがとうございます。