AWS 上的项目

使用 .NET 和 AWS Toolkit for Visual Studio

改进机器人

模块 5:部署和清理

在本模块中,您将使用 AWS CodeBuild 和 AWS CodeDeploy 将 Chatbot 部署到 EC2,并清理资源,避免产生费用。

概览

请按照下面的分步说明进行操作,部署 Chatbot 应用程序,然后清理资源。单击各个步骤编号可展开相应部分。

 所需时间

30 分钟

 使用的服务

CodeDeploy、CodeBuild、EC2、AWS CodeStar

实施说明

    • a.在 AWS 控制台中,单击“服务”,然后选择“开发人员工具”下的“CodeStar”。
      b.单击“新建项目”,然后选择“ASP.NET Core Web 应用程序”模板。
      c.提供“项目名称”,选择“CodeCommit”作为您的存储库,然后单击“下一步”。
      d.确保选中“AWS CodeStar 需要代表您管理 AWS 资源的权限”,然后单击“创建项目”。
      e.选择一个密钥对,并确保已勾选“我确认我有权访问该密钥对 (mytestkeypair.pem) 的私钥文件;如果没有此文件,我将无法登录我的实例” 。
      f.现在,您可以选择编辑项目代码的方式。您可以随时更改此选择;但是现在,请单击“命令行工具”,并按照所选操作系统的设置说明进行操作。
      g.在命令行中,如果您按照说明进行操作,则会从 CodeCommit 中克隆项目存储库。
      h.您可以使用各种产品和 Git 导入程序。如果您没有这些工具,我们将为您提供一种快速/手动方式。使用在模块 4 中从 github 存储库克隆的代码,并用它替换新克隆的 CodeCommit 存储库中的所有代码(确保删除所有旧代码后再粘贴 .NET Chatbot 代码)。
      i.进入在命令行中克隆的目录,然后继续运行以下命令:

      1. git add -A
      2. git commit -m "adding Chatbot code"
      3. git push origin master

      j.单击“跳过”,您会看到一个控制面板,显示您的代码正在进行“持续部署”(还有许多其他选项,您可大胆尝试)。
      k.在存储“Visual Studio Solution”文件的项目目录下,复制 appspec.yml 文件和 buildspec.yml。
      l.在存储“Visual Studio Solution”文件的项目目录下,创建一个文件夹并将其命名为 scripts。
      m.将所有文件从克隆的存储库的 Linux Deployment 目录复制到上一步创建的 scripts 目录中。
      n.单击应用程序终端节点链接,查看和测试 Chatbot 应用程序。

      ⚐ 注意:有关其他信息,请查找位于 github 项目内的文档。

      ec2 keypair
    • a.登录您的 AWS 账户,确保您位于 us-east-1(弗吉尼亚北部)或 eu-west-1(爱尔兰)区域。
      b.使用 GitHub 凭证登录您的 GitHub 账户。
      c.单击模板,使用 AWS CloudFormation 在 us-east-1 中创建基础设施堆栈。 您也可以在此处下载 CloudFormation 模板,并在您选择的区域中运行 AWS CloudFormation 服务中的 CloudFormation 模板。
      d.您将转到 AWS CloudFormation 控制台网页,并看到一个屏幕,提供创建基础设施资源所需的参数。填写所需的参数堆栈名称和应用程序值。
      e.打开另一个浏览器窗口,然后返回您的 Github 账户,单击 GitHub 账户中的“设置”,然后单击“个人访问令牌”,并使用范围 repo 和 aadmin:repo_hook 创建新令牌。请务必选择上述两个脚本的所有子选项。
      f.返回 AWS CloudFormation 网页,并使用上一步中通过 GitHub 生成的值来填充 GitHubOAuthToken 参数。
      g.选择要在其中部署解决方案的 VPC、属于该 VPC 的公有子网(已连接互联网网关)。
      h.选择密钥对名称。有关密钥对名称的更多信息,请单击此处
      i.根据需要更改实例类型,否则保留所提供的默认值。
      j.在“OSTtype”字段中,选择“Windows”作为目标 EC2 实例所需的操作系统,然后单击“下一步”按钮。
      k.保留“选项”和“高级”部分的默认选项,然后单击“下一步”按钮。
      l.在审核屏幕上,确保选中“我确认 AWS CloudFormation 可能会创建具有自定义名称的 IAM 资源”旁边的框。
      m.创建堆栈并查看整个堆栈,并在“事件”选项卡下创建所有必要的资源,直到状态显示为“CREATE_COMPLETE”。
      n.查看 CodePipeline,了解应用程序经历的整个 CD/CI 过程:从 GitHub 到 CodeBuild 和 CodeDeploy,再到最后 CodeDeploy 将其部署在 EC2 上。
      o.成功部署后,转到 CloudFormation 中的“输出”选项卡,然后单击 URL 值,查看在您的环境中运行的 Chatbot 应用程序。

      ⚐ 注意:有关其他信息,请查找位于 GitHub 项目内的文档。

    • a.转到控制台中的“CodeStar”页面。
      b.选择项目右上角的省略号。请参见下面的屏幕截图。
      c.选择“删除”选项。
      d.键入项目名称,确认删除。不要勾选“删除与 CodeStar 项目关联的 AWS 资源”旁边的复选框。了解更多勾选选项。
      e.单击“删除”按钮。

      删除 codestar 项目
    • a.转到控制台中的“CloudFormation”页面。
      b.选择您的堆栈。
      c.转到“操作”下拉菜单。
      d.选择“删除堆栈”选项。
      e.单击“是,删除”按钮。

  • Lambda
    a.转到控制台中的“Lambda”页面。
    b.单击标题左侧的气泡,在列表中选择函数。
    c.单击“操作”,然后单击“删除”。

    Lex
    a.转到控制台中的“Lex”页面。
    b.单击标题左侧的气泡,在列表中选择机器人。
    c.单击“操作”,然后单击“删除”。

    Cognito
    a.转到控制台中的“Cognito”页面。
    b.单击“管理联合身份”。
    c.单击联合身份。
    d.单击右上角的“编辑身份池”。
    e.向下滚动到“删除身份池”,单击该按钮。然后单击红色的删除按钮,确认删除。

    ⚐ 注意:这些说明也可在位于 GitHub 项目内的文档文件夹中找到。

恭喜!

您已使用 Amazon Web Services 在 .NET 上构建了 Amazon Lex Chatbot。

机器人向您问好

与朋友分享您的 Chatbot。我们迫不及待想看到您接下来的构建计划!