首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Alexa python lambda_handler未创建事件会话

Alexa python lambda_handler未创建事件会话
EN

Stack Overflow用户
提问于 2018-05-10 23:57:51
回答 1查看 430关注 0票数 0

当我在AWS中为我的alexa技能测试lambda函数时,我得到了下面的错误,似乎事件没有被创建……

代码语言:javascript
复制
Response:
{
  "stackTrace": [
    [
      "/var/task/lambda_function.py",
      248,
      "lambda_handler",
      "if event['session']['new']:"
    ]
  ],
  "errorType": "KeyError",
  "errorMessage": "'session'"
}

Request ID:
"0cbd2940-546a-11e8-a94b-fd8aec55358d"

Function Logs:
START RequestId: 0cbd2940-546a-11e8-a94b-fd8aec55358d Version: $LATEST
'session': KeyError
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 248, in lambda_handler
    if event['session']['new']:
KeyError: 'session'

这里有lambda函数的代码

代码语言:javascript
复制
def lambda_handler(event, context):
    """  App entry point  """

    #print(event)

    if event['session']['new']:
        on_session_started()

    if event['request']['type'] == "LaunchRequest":
        return on_launch(event['request'])
    elif event['request']['type'] == "IntentRequest":
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == "SessionEndedRequest":
        return on_session_ended()

以下是会话部分的json输入

代码语言:javascript
复制
"session": {
		"new": true,
		"sessionId": "amzn1.echo-api.session.894e0116-055a-4307-8574-7059a24e8219",
		"application": {
			"applicationId": "amzn1.ask.skill.d01d3328-ce02-4357-9605-bb12d5cafce2"
		},
		"user": {
			"userId": "amzn1.ask.account.AH7BOSFTFR54XGKQ3MYAK2LHCRK4CV5PUIS65HQWC4OY5B6NIBWJJSUJH73PBDZAG3KTPFI4QS7TYCZPRETM267GW3PVBJFSYXBAGTCH5YYKA2MUFAN43PFB4CNQD6M7QX5DWLC5AEGBDRR3SIH7SHJOFBAR3QWCOIYZLZ3D4Q7Z3SPCGVLRF3CCMQAOGUEAAGJMIHWVT6ADKCQ"
		}
	},

请帮帮忙,谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-07-20 04:13:36

代码语言:javascript
复制
****Try this way****

def lambda_handler(event, context):
    """ 
    """
    # print("event.session.application.applicationId=" +
          # event['session']['application']['applicationId'])

    if ('session' in event):
        print("event.session.application.applicationId=" +
              event['session']['application']['applicationId'])
        if event['session']['new']:
            on_session_started({'requestId': event['request']['requestId']},
                           event['session'])
    if ('request' in event):                       
        if event['request']['type'] == "LaunchRequest":
            return on_launch(event['request'], event['session'])
        elif event['request']['type'] == "IntentRequest":
            return on_intent(event['request'], event['session'])
        elif event['request']['type'] == "SessionEndedRequest":
            return on_session_ended(event['request'], event['session'])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50276920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档