云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_姐汁百度云_返利

小七 141 0

本文介绍了如何在运行Apache2 Web服务器的Amazon Web Services(AWS)EC2实例上部署一个基于Flask的SAP会话AI(SAP CAI)聊天机器人。

当我最近开始在AWS上部署一个带有Flask的SAP CAI聊天机器人时,我认为这将是一项快速的工作。然而,我没有考虑两个重要且相互关联的事实,即sapcai需要一个安全的(即https)webhook,以便与第三方(在我的例子中是Flask应用程序)通信,EC2实例在默认情况下只有一个不安全的IP地址。在这篇文章中,我描述了我在克服这个问题的过程中的发现。本文的部分灵感来自Vishnu Thiagarajan的优秀文章《在AWS EC2实例上设置Flask和Apache》。

本文的重点不是开发一个成熟的会话聊天机器人,大数据云计算人工智能,而是提供一个脚手架,在此基础上开发一个基于Flask的SAP CAI聊天机器人,该聊天机器人托管在一个EC2实例上。因此,chatbot有意保持基本。机器人简单地返回"收到!"不管你说什么。sapcai实现只包含一种技能,即启动与Flask应用程序通信的回退技能。在这里可以找到Flask应用程序样板代码库。sapcai机器人可以在这里找到。

本文假设读者熟悉基本的web开发概念、sapcai和AWS平台的基础知识以及Linux命令行。请注意,拟议的实施将产生小成本。如果您对此很满意,并且对复制建议的实现感兴趣,我建议您按照本文中描述的相同顺序执行这些步骤。本文中的代码片段应进行调整,以反映您自己的域名。

本文涵盖的领域包括:

设置和配置AWS服务安装和配置Apache2和WSGI域名和SSL证书部署Flask应用程序SAP CAI Chatbot配置

在本节中,我们将介绍实施所需的两种AWS特定服务和配置:EC2和Route 53。在EC2中,我们将设置一个实例来承载chatbot、一个安全组和一个弹性IP。在路由53中,我们将设置一个托管区域,该区域将保存用于安全域名配置的域名服务器(DNS)记录。

首先,让我们先设置一个安全组,然后再与我们的EC2实例关联。下面是对我有用的部分截图。选择myip作为SSH设置,选择Anywhere作为所有其他设置。请注意,下面的每个唯一类型只需指定一次。AWS在创建组时会自动复制它们(不知道为什么)。

接下来,让我们启动一个EC2实例。注意,作为此过程的一部分,您必须遵循创建密钥对的说明。远程连接到EC2实例需要.pem密钥。本教程使用的实例是一个类型为t2.micro的Ubuntu服务器16.04。将实例与上述安全组相关联。

作为旁注,大数据信息,根据应用程序的依赖关系,您可能需要选择"自由层"选项以外的实例。例如,如果要运行具有深度学习库的应用程序(例如PyTrink),则需要至少选择T2类型的实例来满足依赖关系的内存占用。为了能够随意停止和重启实例,免费自助建站软件,而不必担心更改IP地址,我们需要利用AWS弹性IP服务。弹性IP本质上是一个静态IP,可以永久地与给定实例相关联。一个很好的视频教程设置一个弹性IP可以在这里找到。

路由53服务允许设置托管区域,以保存我们的实例的DNS记录。为了完成安全域名配置,在后续步骤中需要这样做。一篇关于设置托管区域的好文章可以在这里找到(大约在页面的一半)。请注意,在设置托管区域之前,您需要弹性IP。

好的,现在我们有了AWS特定的构建块,让我们从一些web开发开始。首先,我们安装Apache2和WSGI(对于python3)。登录到您的EC2实例并运行下面的命令。请注意,web服务器将作为安装的一部分启动。

当前上下文中感兴趣的Apache2目录是etc/Apache2/sites。此目录包含两个文件:000-default.conf和default-ssl.conf . 我们将保持两个文件不变并复制前者:

打开新文件:

修改如下:

然后,使用Ctrl+O和Ctrl+s保存并关闭文件。

如简介所述,SAP CAI需要一个安全的webhook,以便与第三方应用程序(如Flask)通信。因此,如果我们希望使用一个EC2实例来托管sapcai bot,我们需要一个安全的域,即https://example.dev.此本节描述了获取安全域名的步骤。

购买域名有很多选择。我看了这篇关于域名注册者的评论文章,选择了namesheap。(我和这些人没有关系!)。请注意,我接下来描述的步骤是特定于该平台的,如果您使用不同的注册商,这些步骤可能会有所不同。

一旦购买了(不安全的)域名,必须采取两个操作:将托管区域DNS记录添加到注册商的平台并获取SSL证书。有关DNS配置的说明可以在本文中找到。SSL过程的详细描述可以在本文中找到。总之,必须首先发出证书签名请求(CSR)。为此,请登录到您的EC2实例,并从根目录运行以下命令: