很抱歉这个问题的标题。很难用其他方式来表达。我已经使用他们的新开发工具(Skill Flow Builder)构建了一个Alexa技能。此工具具有部署技能并创建运行该技能所需的Lambda函数的功能。这个Lambda函数使用DynamoDB来存储有关变量的信息,以及表示您在技能中的当前位置的场景名称。
我已经编辑了这项技能,并对其进行了彻底的测试,但现在我已经删除了所有旧场景,并用具有新名称的新场景来替换它们。
现在,当我部署并尝试运行该技能时,它抛出了一个错误,因为它试图找到一个不再存在的场景的名称。它之所以这样做,是因为它想在此时恢复技能。旧的场景名称存储在DB中。
下面是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)"]}这是一个被称为“不有趣”的场景,它再也找不到了。
问题是,我如何重置技能,使其在最后一点不再使用DB恢复技能?
发布于 2019-10-09 17:41:06
当然,答案是当您的技能发生重大变化时,启动一个新的DynamoDB表:在我的例子中,场景名称完全更改。
在skill Flow Builder abcConfig.json文件中,使用您的技能的所有其他设置编辑default对象中的dynamo-db-session-table-name字符串。给它一个新的名称,然后重新部署。它将构建一个新的表。
https://stackoverflow.com/questions/58293105
复制相似问题