我在使用python lambda函数时遇到问题。我得到一个无效的键,用于在调用技能时应该创建的事件数组。我得到的错误是:
{
"stackTrace": [
[
"/var/task/lambda_function.py",
163,
"lambda_handler",
"app_id = event['session']['application']['applicationId']"
]
],
"errorType": "KeyError",
"errorMessage": "'session'"
}
这是我的代码
def lambda_handler(event, context):
"""Lambda function entrypoint."""
# print("event.session.application.applicationId={}".format(
# event['session']['application']['applicationId']))
# Prevent unwanted access to this Lambda function.
app_id = event['session']['application']['applicationId']
if app_id != "amzn1.ask.skill.yyyyyyyy-xxx":
raise ValueError("Invalid Application ID: {}".format(app_id))
request = event['request']
if event['session']['new']:
on_session_started(
{'requestId': request['requestId']}, event['session'])
func_map = {
"LaunchRequest": on_launch,
"IntentRequest": on_intent,
"SessionEndedRequest": on_session_ended,
}
return func_map[request['type']](event['request'], event['session'])
答案 0 :(得分:5)
问题是我在Lambda Function仪表板中配置了错误的测试。当我将其更改为Alexa Start Session时,会创建事件对象。 :)
答案 1 :(得分:1)
我们刚刚启动了一个项目bstpy,将Python lambda公开为http服务。您可能会发现它对测试很有用。您可以使用curl或postman将json有效负载投入其中。如果您使用其他Bespoken Tools进行尝试,则可以拥有非常好的开发环境