我有一个lambda函数
import json
import boto3
def lambda_handler(event, context):
print("event:::")
print(event)
connection_id = event['requestContext']['connectionId']
username = event['queryStringParameters']['username']
dynamodb = boto3.resource('dynamodb')
table1 = dynamodb.Table('table')
table1.put_item(
Item={
'connection_id': connection_id,
'username': username
# 'message': message
}
)
return {
'statusCode': 200
}
当我测试时它会抛出这个
Test Event Name
dd
Response
{
"errorMessage": "'requestContext'",
"errorType": "KeyError",
"requestId": "3105164b-79ac-4881-9c61-259ac437c34c",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 8, in lambda_handler\n connection_id = event['requestContext']['connectionId']\n"
]
}
Function Logs
START RequestId: 3105164b-79ac-4881-9c61-259ac437c34c Version: $LATEST
event:::
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
[ERROR] KeyError: 'requestContext'
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 8, in lambda_handler
connection_id = event['requestContext']['connectionId']END RequestId: 3105164b-79ac-4881-9c61-259ac437c34c
REPORT RequestId: 3105164b-79ac-4881-9c61-259ac437c34c Duration: 1.23 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 51 MB
Request ID
3105164b-79ac-4881-9c61-259ac437c34c
我的函数在移除键时可以工作,但是对于键,它会抛出上面的错误--如果python代码是正确的,为什么会发生这种情况?
..............................................................................
发布于 2022-01-20 10:08:34
您的测试执行需要输入值。您可以在错误中看到测试使用了默认的输入{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
。您必须将测试输入更改为包含正确格式的connection_id
和queryStringParameters
的JSON字符串。
您似乎将Lambda与API网关结合使用。网关通常创建event
输入。您还可以在API网关中创建一个测试,您可以在其中指定查询参数。
https://stackoverflow.com/questions/70784253
复制相似问题