2016-09-21 64 views
2

我有一个问题让我的Python lambda函数工作。我得到了一个无效的键,用于在调用技能时创建的事件数组。我得到的错误是:Alexa lambda_handler没有创建事件会话

{ 
    "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']) 

回答

5

的问题是我已经配置了在lambda函数仪表盘的错误的测试。当我将其更改为Alexa Start Session时,事件对象已创建。 :)

+0

固定为我,谢谢:) – S200

1

我们刚刚启动了一个项目bstpy,将Python lambda作为http服务公开。您可能会发现它对测试有用。你可以用卷曲或邮递员将json有效载荷扔到它上面。如果与其他Bespoken Tools一起尝试,你可以有一个非常好的开发环境