基于函数计算实现AI推理
1. 创建资源
创建资源
- 在页面左侧,单击 云产品资源 下拉列表,查看本次实验所需资源。
- 单击屏幕右侧 创建资源 ,免费创建当前实验所需云产品资源。
说明:
资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在 云产品资源 列表查看已创建的资源信息,例如:IP地址、子用户名称和子用户密码等。
2. 连接ECS服务器
连接ECS服务器
1. 资源创建完毕后,双击 LX终端图标 即可打开shell终端窗口。
2. 在终端中输入连接命令ssh [username]@[ipaddress]后按键盘enter键。您需要将username和ipaddress替换成ECS服务器的登录名和公网地址,ECS服务器的登录名和公网地址可在第一小节中的 云产品资源 下拉列表中查看。例如:
ssh root@139.xxx.xxx.230
3. 输入yes,该操作表示同意继续连接。执行该操作后,您将会收到输入登录密码的提示。
4. 输入登录密码。密码为已创建的ECS服务器的登录密码。注意输入密码时不会有任何显示。
5. 成功连接后如下图所示:
6. 体验过程中可以收起子用户信息来更完整查看实验手册。
3. 开通函数计算和日志服务
开通函数计算和日志服务
1. 双击打开桌面 FireFox ESR浏览器,在RAM用户登录框中点击 下一步,复制 云产品资源 列表中 子用户密码 粘贴(lx shell粘贴快捷键ctrl+shift+v,其他地方粘贴是ctrl+v)到浏览器 RAM用户登录界面,即可登录当前子账号。
2. 在阿里云管理控制台,点击顶部【产品与服务】 ,然后点击【函数计算】 ,进入服务开通页面。
3. 选择资源提供的 地域 ,勾选函数计算服务协议,点击【立即开通】。
开通成功页面如下。
4. 同理,开通日志服务。
开通成功页面如下。
4. 安装Fun工具
安装Fun工具
Fun 是一个用于支持Serverless应用部署的工具,能帮助您便捷地管理函数计算、API 网关和日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建和部署操作。
1. 将Fun的安装包下载到本地。请将下面的FUN_VERSION
变量的值设置为最新版本号,最新版本号请参见Releases。以下操作将在ECS服务器上安装和配置Fun。
FUN_VERSION="v3.6.1" curl -o fun-linux.zip https://gosspublic.alicdn.com/fun/fun-$FUN_VERSION-linux.zip
2. 安装解压工具unzip,并使用unzip将下载的Fun安装包解压到当前目录。
yum -y install unzip unzip fun-linux.zip
3. 将解压出来的可执行文件移动到系统路径。
mv fun-*-linux /usr/local/bin/fun
4. 配置Fun关联的阿里云账号和调用SDK的超时时间等信息。
fun config
请参考以下信息输入您的阿里云账号ID、AccessKeyID和AccessKey密钥等信息。
- Aliyun Account ID:子用户名称中
@
符号后面部分就是给您分配的主账号ID,例如u-zftb79nc@105997185439****
中包含的账号ID为105997185439****
。 - Aliyun Access Key ID和Aliyun Access Key Secret:请使用平台提供给您的子账号AK ID和AK Secret。
- The timeout in seconds for each SDK client invoking:建议将超时时间设置长一点(例如10000),防止在上传部署包时发生超时中断。
正确设置如下所示:
地域选择 与云产品资源提供的地域相同 一般为 cn-shanghai
5. 安装Docker
安装Docker
1. 安装Docker的依赖库。
yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加docker-ce的软件源信息。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装docker-ce。
yum makecache fast yum -y install docker-ce
4. 启动Docker服务。
systemctl start docker
6. 创建NAS文件系统挂载点
创建NAS文件系统挂载点
1. 依然使用当前提供的子账号返回管理控制台,搜索NAS,然后单击【文件存储NAS】,登录NAS控制台。
2. 选择【文件系统】 > 【文件系统列表】。
3. 选择资源所在地域,找到资源信息栏中的NAS文件系统ID对应的文件系统,单击【更多】 > 【添加挂载点】。
4. 在【添加挂载点】页面,配置如下参数。
5. 点击文件系统ID,然后点击进入挂载使用界面查看挂载点地址,如下图。
7. 下载项目代码
下载项目代码
1. 安装Git工具并使用Git克隆项目代码到本地(如果克隆失败可以先在网站上打开该地址,然后进行安装)。
yum -y install git git clone https://github.com/awesome-fc/cat-dog-classify.git
2. 编辑项目中FUN的部署模板文件template.yml,修改日志服务项目名称和NAS存储挂载配置。
a. 使用vim打开模板文件。
cd cat-dog-classify vim template.yml
b. 输入以下命令全局替换日志服务项目名称。
:%s/log-ai-pro/log-ai-test/g
命令中log-ai-test为修改后的项目名称,您可以替换为您的自定义项目名称。
c. 修改NAS挂载配置。默认auto方式将会自动创建NAS文件系统,这里我们修改填写为平台预创建好的NAS文件系统的信息。
VpcConfig: VpcId: 'vpc-uf6u8*****zf1r4' VSwitchIds: [ 'vsw-uf6******038fy' ] SecurityGroupId: 'sg-uf6e******w6qz' NasConfig: UserId: 10003 GroupId: 10003 MountPoints: - ServerAddr: '33****u83.cn-shanghai.nas.aliyuncs.com:/' MountDir: '/mnt/auto'
修改的参数说明如下:
- VpcConfig中的VpcId、VSwitchId和SecurityGroupId信息请登录ECS控制台后在实例详情页查看。
- ServerAddr的值修改为第6小节中的挂载点地址。
修改后如下图所示:
8. 将依赖文件上传到NAS
将依赖文件上传到NAS
1. 执行以下命令初始化NAS。
fun nas init
2. 查看本地NAS的目录位置。
fun nas info
命令输出如下所示:
3. 执行以下命令安装相关依赖。
fun install -v
命令执行成功结果如下所示。
该命令将根据Funfile文件中的定义:
- 将依赖下载到.fun/nas/auto-default/classify/python目录中。
- 将model中的模型文件拷贝到.fun/nas/auto-default/classify/model/目录中。
4. 将本地NAS目录同步到阿里云NAS存储中。
fun nas sync
命令执行结果如下所示。
5. 查看文件是否上传到远程NAS目录。
fun nas ls nas://classify:/mnt/auto/
9. 部署到函数计算平台
部署到函数计算平台
执行以下操作将函数部署到函数计算平台:
fun deploy -y
执行结果如下图所示,图中19176540-18576685985*****.test.functioncompute.com为函数计算平台分配的临时域名,有效期10天,每天有1000次的调用限制。
10. 测试预测服务
测试预测服务
1. 部署完成后,等待30秒钟左右,在浏览器打开临时域名,如下图所示。
2. 上传一张猫或狗的图片。
3. 单击【Predict】按钮,查看预测识别结果。
函数计算具有动态伸缩的特性, 根据并发请求量,自动弹性扩容出执行环境来执行环境。当预留的实例不能满足调用函数的请求时, 函数计算就自动进行按需扩容实例供函数执行,此时的调用就有冷启动的过程。使用预留模式可以消除冷启动毛刺问题,详情请参见预留实例。
实验地址:https://developer.aliyun.com/adc/scenario/35a73acbb9cb477e8a4a5b22021f23a9