此问题标题的歉意。很难用其他方式来表达。我已经使用他们的新开发工具(Skill Flow Builder)建立了Alexa技能。该工具具有一项功能,可以部署该技能并创建运行它所需的Lambda函数。该Lambda函数使用DynamoDB存储有关变量的信息,以及代表您在技能学习中的当前位置的场景名称。
我已经编辑了这项技能,并且已经对其进行了彻底的测试,但是现在我删除了所有旧场景,并用具有新名称的新场景替换了它们。
现在,当我部署并尝试运行该技能时,它会抛出错误,因为它正在尝试查找不再存在的场景的名称。之所以这样做,是因为它想在那时恢复技能。旧场景名称存储在数据库中。
以下是Lambda函数引发的错误消息:
{"errorMessage":"Cannot find the scene not interesting.","errorType":"Error","stackTrace":["StoryAccessor.getSceneByID (/var/task/node_modules/@alexa-games/sfb-f/dist/storyEntities/StoryAccessor.js:28:19)","ACEDriver.processScene (/var/task/node_modules/@alexa-games/sfb-f/dist/driver.js:435:47)","ACEDriver.resumeStory (/var/task/node_modules/@alexa-games/sfb-f/dist/driver.js:188:41)","<anonymous>","process._tickDomainCallback (internal/process/next_tick.js:228:7)"]}
被称为“无趣”的场景不再可以找到。
问题是,我该如何重置技能,以使其不使用数据库在最后一点恢复技能?
答案 0 :(得分:0)
答案当然是,当您对技能进行重大更改时,启动一个新的DynamoDB表:以我为例,场景名称中的完整更改。
在Skill Flow Builder abcConfig.json
文件中,使用您的所有其他设置,编辑dynamo-db-session-table-name
对象中的default
字符串。给它起一个新名字,然后重新部署。它将建立一个新表。