Alexa Skill能否绑定多个Lambda函数及相关配置方法咨询
Alexa Skill多Lambda绑定问题解答
基础绑定规则
Alexa Skill原生支持绑定多个Lambda函数,最常见的场景是多区域部署:你可以在开发者后台为不同的技能发布区域(如北美、欧洲、亚太等)分别绑定对应区域的Lambda ARN,用来降低不同地区用户的访问延迟,这个配置操作完全在开发者侧完成,不需要用户参与。
终端用户自定义关联Lambda的实现方案
目前Alexa平台没有开放给终端用户直接修改技能绑定Lambda的入口,要实现用户自主指定关联Lambda的需求,需要你自行开发中转逻辑,具体实现路径如下:
- 部署一个统一的入口Lambda,将技能的所有请求端点都指向这个入口函数
- 为技能增加账号绑定能力,引导用户在你自己的用户端(网页/APP等)完成账号绑定后,上传自己要关联的目标Lambda的唯一标识(如自定义配置ID、Lambda ARN等),将
Alexa用户ID-目标Lambda配置的映射关系存储在你的自有数据库中 - 入口Lambda收到用户请求后,首先提取请求中的Alexa用户ID,查询数据库匹配到对应的目标Lambda,再通过AWS SDK的
Lambda.invoke()方法将完整的技能请求转发到目标Lambda处理,拿到返回结果后再按Alexa要求的格式返回给平台即可
注意事项
- 提前给入口Lambda的IAM执行角色配置
lambda:InvokeFunction权限,否则会出现转发调用失败的问题 - 注意控制请求处理总时长,Alexa平台对技能请求的超时阈值是8秒,要确保转发+业务处理的总耗时不超过该值
- 如果目标Lambda是用户私有资源,需要提前做好权限校验,避免出现越权调用的安全风险
内容的提问来源于stack exchange,提问作者Plc Worker
相关产品推荐
相关产品推荐

