【问题标题】:Alexa lambda_handler not creating event sessionAlexa lambda_handler 未创建事件会话
【发布时间】:2017-01-29 16:46:45
【问题描述】:

我在让我的 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'])

【问题讨论】:

    标签: python aws-lambda alexa alexa-skills-kit


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我们刚刚启动了一个项目bstpy,将 Python lambda 公开为 http 服务。您可能会发现它对测试很有用。您可以使用 curl 或 postman 向其抛出 json 有效负载。如果您尝试与其他Bespoken Tools 一起使用,您可以获得非常好的开发环境

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-06
        • 2018-03-05
        • 2016-02-14
        • 2023-02-04
        • 1970-01-01
        • 1970-01-01
        • 2018-06-28
        相关资源
        最近更新 更多