正确完成Alexa技能开发:基本设置

正确设置alexa技能不仅可以节省大量时间,还可以使您更灵活,更不易出错。 在本文中,我们将完全基于代码设置一项新技能,以便您在本地存储库中拥有从开发人员控制台到lambda函数的所有功能。

我们将设置的示例技能将是琐碎的“ Hello World”技能,因​​为本文仅关注设置而不是技能本身。 本文还将假定您已经了解了进行技能训练所需的基本部分。

Github上查看已完成项目的仓库

1.技能配置:开发人员控制台

开发者控制台用于管理所有技能信息,例如调用名称,技能存储描述的意图。 但是,在开发人员控制台中管理所有这些信息有一些缺点:

  • 该信息未版本化,这意味着您所做的更改无法撤消。 同样,如果您在团队中,您将不知道谁做了更改。
  • 该信息与您的技能代码无关。 尽管两者紧密结合在一起,但不在您的回购中。 对模型进行可能影响代码的更改可能会轻易破坏某些东西,例如意图中的错别字。

为了解决这些问题,我们将使用ask cli 。 ask cli为我们提供了将所有信息存储在json文件中并通过命令进行部署的功能。 因此,我们将所有内容(代码和技能信息)放在一个地方并进行了版本化。 因此,让我们设置项目:

  1. 安装并登录 Ask cli。 还要按此处所述设置您的AWS凭证(您不必做配置文件之类的东西,只需进行快速设置即可)
  2. 通过询问新的--skill-name basic-setup-cat-facts来创建新技能。 这将在我们的本地计算机上创建一个包含所有必需文件的新文件夹。 然后移到创建的文件夹中。

现在有3个文件保存了技能信息和配置:

  • .ask / config:包含技能ID和Lambda ARN。 不应分别发布在您的回购中提交。
  • models / zh-CN.json:包含调用名称,意图和插槽。
  • skill.json:包含技能库的发布信息,例如描述和示例短语。

当我们使用无服务器框架进行代码部署时,我们将不得不稍稍更改配置并重新排序一些文件,以使其使用起来更加方便:

  1. 打开skill.json文件并删除“ apis”对象。 然后转到.ask / config文件,并将“ uri”变量的值更改为arn:CHANGE_LATER。 这将阻止Ask cli部署我们的技能。
  2. 将index.js文件从/ lambda / custom移至/ src文件夹,并将package.json和package-lock.json移至项目根文件夹。 然后删除/ lambda文件夹。

现在,我们可以执行Ask deploy将模型和技能信息推送到开发人员仪表板。

当您使用技能生成器进行更改时,当前的Ask cli不支持更新模型json。 它只能克隆整个项目并覆盖当前项目。 在使用技能构建器进行某些操作后,一种变通方法是将项目克隆到新文件夹中,然后将模型json复制并粘贴到当前项目中。

2.代码:Lambda函数

为了定义和部署我们的技能功能和基础架构,我们将使用无服务器框架。 无服务器是部署和操作无服务器体系结构的市场领导者。 ask cli的直接优势在于,我们不仅可以部署代码,还可以定义AWS基础架构。 例如,这允许添加数据库,s3或稍后我们可能会在我们的技能中使用的其他内容。 因此,让我们开始部署我们的功能:

  1. 无服务器安装
  2. 为该技能创建无服务器配置。 这是在serverless.yml文件中完成的:

3.使用无服务器部署来部署功能

4.部署完成后,您可以显示ARN(aws上的唯一技能限定词)以及无服务器信息--verbose。 复制ARN并将其替换为.ask / config文件中的arn:CHANGE_LATER值。 这会将开发人员仪表板上的技能配置与您的lambda函数相关联

5.通过请求部署更新技能配置

技能设置现已完成。 您现在可以去技能商店并激活自己的技能。

3.结论

通过此设置,我们现在能够更改技能配置,lambda函数并使用一个命令来部署更新。 同样,所有内容均已版本化,并位于一个项目文件夹中。

此外,我们可以做一些改进,并将ask cli和lessserver软件包作为dev依赖项保存到我们的package.json中。 因此,所有工具都随项目一起提供。 我们还将所有使用的命令放在其中。 这样,我们只需要记住一些简单的命令即可。 如果要详细查看所有内容,请签出存储库:

feedm3 /学习alexa技能的基本设置

快乐的技能发展:)

From: https://hackernoon.com/alexa-skill-development-done-right-basic-setup-4448d65e46ba

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值