AWS 上的项目
使用 .NET 和 AWS Toolkit for Visual Studio
改进机器人
模块 5:部署和清理
在本模块中,您将使用 CodeBuild 和 CodeDeploy 将 ChatBot 部署到 EC2,并清理这些模块中使用的 AWS 资源以避免产生费用。
概览
请按照下面的分步说明进行操作,部署 Chatbot 应用程序,然后清理资源。单击各个步骤编号可展开相应部分
完成时间
30 分钟
使用的服务
CodeDeploy、CodeBuild、EC2
实施说明
-
第 1 步:部署
-
选项 1:部署到 Linux Server
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.进入在命令行中克隆的目录,然后继续运行以下命令:
i. git add .
ii. git commit -m "adding Chatbot code"
iii. git push
j.单击“跳过”,您会看到一个控制面板,显示您的代码正在进行“持续部署”(还有许多其他选项,您可大胆尝试):
k.在存储“Visual Studio Solution”文件的项目目录下,复制 appspec.yml 文件和 buildspec.yml。
l.在存储“Visual Studio Solution”文件的项目目录下,创建一个文件夹并将其命名为 scripts
m.将所有文件从克隆的存储库的 Linux Deployment 目录复制到上一步创建的 scripts 目录中
n.单击应用程序终端节点链接,查看和测试 Chatbot 应用程序。⚐ 注意:有关其他信息,请在“文档文件夹 > dotNet Chatbot 的分步部署 – Linux.pdf”中查找位于 github 项目内的文档
-
选项 2:部署到 Windows Server
a.登录您的 AWS 账户,确保您位于 us-east-1(弗吉尼亚北部)或 eu-west-1(爱尔兰)区域
b.使用 GitHub 凭证登录您的 GitHub 账户
c.单击此处的模板:<template link in button form>,使用 AWS 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 上 1
o.成功部署后,转到 CloudFormation 中的“输出”选项卡,然后单击 URL 值,查看在您的环境中运行的 Chatbot 应用程序⚐ 注意:有关其他信息,请在“文档文件夹 > dotNet Chatbot 的分步部署 – Windows.pdf”中查找位于 GitHub 项目内的文档
-
-
第 2 步:清理和删除资源
-
选项 1:CodeStar 说明
a.转到控制台中的“CodeStar”页面
b.选择项目右上角的“…”
c.选择“删除”选项
d.输入项目名称以确认删除,取消选中“保留关联 AWS 资源但删除 AWS Codestar 中的项目”旁边的复选框。了解更多
e.单击“删除”按钮
-
选项 2:CloudFormation 说明
a.转到控制台中的“CloudFormation”页面
b.选择您的堆栈
c.转到“操作”下拉菜单
d.选择“删除堆栈”选项
e.单击“是,删除”按钮
-
-
第 3 步:删除其他资源
Lambda
a.转到控制台中的“Lambda”页面。
b.单击标题左侧的气泡,在列表中选择函数。
c.单击“操作”,然后单击“删除”。Lex
a.转到控制台中的“Lex”页面。
b.单击标题左侧的气泡,在列表中选择机器人。
c.单击“操作”,然后单击“删除”。Cognito
a.转到控制台中的“Cognito”页面。
b.单击“管理联合身份”
c.单击您的联合身份。
d.单击右上角的“编辑身份池”。
e.向下滚动到“删除身份池”,单击该按钮。然后单击红色的删除按钮,确认删除。⚐ 注意:这些说明也可在 GitHub 项目的“Documentation 文件夹 > dotNet Chatbot CleanUp and Deletion Instructions.pdf”中找到