Alexa python lambda_handler не создает сессию события - PullRequest
0 голосов
/ 10 мая 2018

Когда я тестирую лямбда-функцию в AWS для моего навыка alexa, я получаю ошибку ниже, похоже, событие не было создано ...

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'

и есть код лямбда-функции

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 части сеанса

"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"
		}
	},

помогите пожалуйста, спасибо

1 Ответ

0 голосов
/ 19 июля 2018
****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'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...