Alexa Skill验证失败求助:skill.json文件位置及部署疑问
解决方案
一、skill.json 验证失败排查
- 直接用Alexa开发者控制台JSON编辑器的内置验证工具:进入技能的「Build」标签,切换到「JSON Editor」,点击右上角的验证按钮,查看具体报错信息——重点检查多语言区域代码是否规范(加拿大英语
en-CA、印度en-IN、英国en-GB、澳大利亚en-AU,葡萄牙语注意区分pt-BR或pt-PT),以及每个locale下的必填字段(如name、description)是否完整。 - 对比历史可用版本:用VS Code的内置diff工具对比修改前后的skill.json,重点排查是否误删关键字段(比如
manifest.apis.custom.endpoint里的Lambda ARN),或新增了不符合Alexa schema的字段。 - 检查多语言交互模型一致性:确认每个locale对应的
interactionModel结构完整,自定义槽位、意图配置在各语言版本中没有遗漏或格式错误。
二、Lambda 代码上传与第三方库处理
- 无需上传代码到Alexa开发者平台代码区:你的技能用Lambda作为后端,开发者平台的代码区仅针对Alexa托管技能,只需确保Alexa技能的endpoint配置指向正确的Lambda ARN即可。
- 第三方库上传要完整:用VS Code上传Lambda时,必须将整个依赖目录(Node.js是
node_modules,Python是依赖包所在目录)一起打包上传;更高效的方式是用Lambda层托管依赖:将第三方库打包成zip上传为Lambda层,再在Lambda函数中关联该层,避免每次上传代码都携带依赖包。 - 先验证Lambda功能正常:在Lambda控制台的「测试」标签,模拟Alexa的请求JSON(比如LaunchRequest)测试函数,确认能返回合规的响应,排除代码本身的逻辑错误。
三、skill.json 修改无效的解决步骤
- 强制刷新控制台缓存:按
Ctrl+Shift+R(Windows)或Cmd+Shift+R(Mac)强制刷新Alexa开发者控制台页面,避免浏览器缓存导致修改内容不显示。 - 确认修改后完成保存与构建:修改skill.json后,务必点击右上角的「Save Model」,再点击「Build Model」,等待构建完成后再进行验证——构建失败时控制台会给出具体错误提示,按提示修复即可。
- 检查Lambda权限配置:若Lambda与Alexa技能分属不同AWS账号,需在Lambda的「配置」→「权限」→「基于资源的策略」中,添加Alexa服务主体
alexa-appkit.amazon.com,并授予lambda:InvokeFunction权限。
内容的提问来源于stack exchange,提问作者Fabio Tortorella
相关产品推荐
相关产品推荐

