教程:在 AWS CodeStar 中创建 Alexa 技能项目 - AWS CodeStar

2024 年 7 月 31 日,亚马逊 Web Services (AWS) 将停止支持创建和查看 AWS CodeStar 项目。2024 年 7 月 31 日之后,您将无法再访问 AWS CodeStar 控制台或创建新项目。但是,由 AWS CodeStar创建的 AWS 资源(包括您的源存储库、管道和构建)将不受此更改的影响,并将继续运行。 AWS CodeStar 此次停用不会影响连接和 AWS CodeStar 通知。

 

如果您想跟踪工作、开发代码以及构建、测试和部署应用程序,Amazon CodeCatalyst 提供了简化的入门流程和其他功能来管理您的软件项目。详细了解 Amazon 的功能定价 CodeCatalyst。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:在 AWS CodeStar 中创建 Alexa 技能项目

AWS CodeStar 是 AWS 上的一项基于云的开发服务,它为您提供在 AWS 上快速开发、构建和部署应用程序所需的各种工具。借助 AWS CodeStar,您可以在几分钟内建立完整的持续交付工具链,从而以更快的速度开始发布代码。利用 AWS CodeStar 上的 Alexa 技能项目模板,您只需单击几下即可在您的 AWS 账户内创建简单的“Hello World”Alexa 技能。这些模板还创建一个基本部署管道,使您能够开始使用持续集成 (CI) 工作流来进行技能开发。

从 AWS CodeStar 创建 Alexa 技能的主要好处是,您可以从 AWS 中开始进行技能开发并将您的 Amazon 开发人员账户连接到项目,以便直接从 AWS 将技能部署到开发阶段。您还可以获得一个随时可用的部署 (CI) 管道,此管道具有一个包含项目的所有源代码的存储库。您可以使用首选 IDE 配置此存储库,从而使用您熟悉的工具创建技能。

先决条件

  • 通过转到 https://developer.amazon.com 来创建 Amazon 开发人员账户。注册是免费的。此账户拥有您的 Alexa 技能。

  • 如果您还没有 AWS 账户,请使用以下过程创建一个。

    注册 AWS
    1. 打开 https://aws.amazon.com/,然后选择创建 AWS 账户

      注意

      如果您之前曾使用 AWS 账户根用户 凭证登录 AWS Management Console,请选择登录其他账户。如果您之前已使用 IAM 凭证登录控制台,请选择使用 AWS 账户根用户 凭证登录。选择创建新的 AWS 账户

    2. 按照屏幕上的说明进行操作。

重要

创建 Alexa 技能项目后,仅在项目存储库中进行所有编辑。我们建议您不要使用任何其他 Alexa Skills Kit 工具(例如 ASK CLI 或 ASK 开发人员控制台)直接编辑此技能。这些工具不会与项目存储库集成。使用它们会导致技能和存储库代码不同步。

步骤 1:创建项目并连接您的 Amazon 开发人员账户

在本教程中,您可使用在 AWS Lambda 上运行的 Node.js 创建技能。对于其他语言来说,大多数步骤都相同,但技能名称会有所不同。有关您选择的特定项目模板的详细信息,请参阅项目存储库中的 README.md 文件。

  1. 登录 AWS Management Console,然后通过以下网址打开 AWS CodeStar 控制台:https://console.aws.amazon.com/codestar/

  2. 选择要在其中创建项目及其资源的 AWS 区域。Alexa 技能运行时在以下 AWS 区域可用:

    • 亚太地区(东京)

    • 欧洲(爱尔兰)

    • 美国东部(弗吉尼亚州北部)

    • 美国西部(俄勒冈州)

  3. 请选择创建项目

  4. 选择项目模板页面上:

    1. 对于应用程序类别,选择 Alexa 技能

    2. 对于编程语言,选择 Node.js

  5. 选择您所需项对应的框。

  6. 对于项目名称,输入项目的名称(例如,My Alexa Skill)。如果您使用不同的名称,请确保在本教程中始终使用它。AWS CodeStar 将为项目 ID 选择此项目的相关标识符(例如 my-alexa-skill)。如果看到不同于示例所用的项目 ID,请务必在本教程中通篇使用它。

  7. 在本教程中为存储库选择 AWS CodeCommit,并且不要更改存储库名称值。

  8. 选择连接 Amazon 开发人员账户以链接到用于托管技能的 Amazon 开发人员账户。如果您没有 Amazon 开发人员账户,请先创建一个账户,然后在 Amazon 开发人员处完成注册。

  9. 使用 Amazon 开发人员凭证进行登录。选择允许,然后选择确认以完成连接。

  10. 如果您有多个与 Amazon 开发人员账户关联的供应商 ID,请选择要用于此项目的 ID。确保您使用已分配管理员或开发人员角色的账户。

  11. 选择下一步

  12. (可选)如果这是您第一次在此 AWS 区域中使用 AWS CodeStar,请输入希望 AWS CodeStar 用于您的 IAM 用户的显示名称和电子邮件地址。选择下一步

  13. 等待 AWS CodeStar 创建项目。这可能需要花几分钟的时间。请在看到项目已配置横幅后再继续。

步骤 2:在 Alexa 模拟器中测试您的技能

在第一步中,AWS CodeStar 已为您创建一个技能并已将其部署到 Alexa 技能开发阶段。接下来,您将在 Alexa 模拟器中测试该技能。

  1. 在 AWS CodeStar 控制台的项目中,选择查看应用程序。这将在 Alexa 模拟器中打开一个新的选项卡。

  2. 使用已在步骤 1 中连接到项目的账户的 Amazon 开发人员凭证进行登录。

  3. 测试下,选择开发以启用测试。

  4. 输入 ask hello node hello。您的技能的默认调用名称为 hello node

  5. 您的技能应响应 Hello World!

在 Alexa 模拟器中启用该技能后,您还可以在已注册到您的 Amazon 开发人员账户的支持 Alexa 的设备上调用它。要在设备上测试您的技能,请说 Alexa, ask hello node to say hello

有关 Alexa 模拟器的更多信息,请参阅在开发人员控制台中测试您的技能

步骤 3:浏览您的项目资源

作为项目创建过程的一部分,AWS CodeStar 还代表您创建了 AWS 资源。这些资源包含使用 CodeCommit 的项目存储库、使用 CodePipeline 的部署管道和 AWS Lambda 函数。您可以从导航栏访问这些资源。例如,选择存储库会显示有关 CodeCommit 存储库的详细信息。您可以在管道页面中查看管道部署状态。您可以通过选择导航栏中的概览来查看作为项目的一部分创建的 AWS 资源的完整列表。此列表包含指向每个资源的链接。

步骤 4:在您的技能的响应中进行更改

在此步骤中,您可对技能的响应进行细微更改以了解迭代周期。

  1. 在导航栏中,选择存储库。选择存储库名称下的链接,您的项目存储库将在新的选项卡或窗口中打开。此存储库包含构建规范 (buildspec.yml)、AWS CloudFormation 应用程序堆栈 (template.yml)、自述文件以及采用技能包格式(项目结构)的技能的源代码。

  2. 导航到文件 lambda > 自定义 > index.js(如果是 Node.js)。此文件包含使用 ASK 开发工具包的请求处理代码。

  3. 选择编辑

  4. 将第 24 行中的字符串 Hello World! 替换为字符串 Hello. How are you?

  5. 向下滚动到文件末尾。输入作者姓名和电子邮件地址及可选的提交消息。

  6. 选择提交更改以将更改提交到存储库。

  7. 返回 AWS CodeStar 中的项目并查看管道页面。现在您应看到管道正在部署。

  8. 管道完成部署后,在 Alexa 模拟器中再次测试您的技能。您的技能现在应使用 Hello. How are you? 进行响应

步骤 5:设置您的本地工作站以连接到您的项目存储库

之前,您已从 CodeCommit 控制台直接对源代码进行了少量更改。在此步骤中,您使用本地工作站配置项目存储库,以便能从命令行或常用 IDE 编辑和管理代码。以下步骤说明如何设置命令行工具。

  1. 如有必要,导航到 AWS CodeStar 中的项目控制面板。

  2. 在导航栏中,选择 IDE

  3. 访问您的项目代码中,查看命令行界面下方的说明

  4. 按照说明完成以下任务:

    1. Git 下载等网站将 Git 安装在您的本地工作站上。

    2. 安装 AWS CLI。有关信息,请参阅安装 AWS 命令行界面

    3. 使用您的 IAM 用户访问密钥和私有密钥配置 AWS CLI。有关信息,请参阅配置 AWS CLI

    4. 将项目的 CodeCommit 存储库克隆到本地工作站上。有关更多信息,请参阅连接到 CodeCommit 存储库

后续步骤

本教程介绍如何开始使用基本技能。要继续您的技能开发之旅,请参阅以下资源。