实验指导-基于阿里云Serverless应用引l擎SAE的服务部署迀移

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • [1. 环境准备](#1. 环境准备)
    • [1.1 开通Serverless应用引擎 SAE](#1.1 开通Serverless应用引擎 SAE)
    • [1.2 代码准备](#1.2 代码准备)
    • [1.3 构建CokdeUp代码仓库](#1.3 构建CokdeUp代码仓库)
    • [1.4 User-Admin服务数据库迁移](#1.4 User-Admin服务数据库迁移)
    • [1.5 Device-Control服务数据库初始化](#1.5 Device-Control服务数据库初始化)
  • [2. 基于SAE部署User Admin服务](#2. 基于SAE部署User Admin服务)
    • [2.1 创建Web应用并配置应用基本信息](#2.1 创建Web应用并配置应用基本信息)
    • [2.2 基于SAE部署Device Control服务](#2.2 基于SAE部署Device Control服务)
  • 总结

前言

1. 环境准备

1.1 开通Serverless应用引擎 SAE

开通Serverless应用引擎 SAE

可以这样理解SAE用来弄java,上传jar包,FC用来写python

1.2 代码准备

我们这里一共有两个服务,一个用户管理服务user_admin

一个设备管理服务

一个是java的,一个是python的

1.3 构建CokdeUp代码仓库

构建CokdeUp代码仓库

点击代码组,然后新建代码组

然后在代码组里面新建代码库

r然后把代码上传到仓库里面去

再打开user-admin的代码,修改application.yml文件(12~14行)中MySQL数据库配置为PolarDBMySQL的内网访

问地址及对应的用户名和密码。

以前是

java 复制代码
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "publicKey"

但是Windows不认识~,这个表示当前用户目录所以

java 复制代码
ssh-keygen -t ed25519 -f C:/Users/zjdsx/.ssh/id_ed25519 -C "publicKey"
#这样就在本地生成了ssh了


然后把Windows上生成的公钥放在这里

这样我们本地就可以git remote了

java 复制代码
git init
git remote add origin ssh秘钥
git pull origin master
git add .
git commit -m "init"
git push -u origin master

修订数据库连接配置

打开user-admin的代码,修改application.yml文件(12~14行)中MySQL数据库配置为PolarDBMySQL的内网访

问地址及对应的用户名和密码。

直接把以前的127.0.0.1换为那个私网ip就可以了

打开device的代码,修改server-config.ini文件(1~5行)中MySQL数据库配置为PolarDBMySQL的内网访问地址

及对应的用户名和密码。修改完成后点击提交按钮。

打开device-control的代码库,修订callback_url字段(第8行)为cloudflow的内网触发地址。当边端设备

向Device-Control服务发送温湿度数据后,将回调该地址,触发工作流的运行。

内网触发地址在这里

1.4 User-Admin服务数据库迁移

在java文件里面,有一个db_user_admin.sql,初始化数据库

实验预设了一个分组:Administrator(管理员)。创建了张三、李四和王五三个用户,初始密码均为

oooooo,并为王五绑定Administrator分组。

进入DMS,创建数据库db_user_admin

然后点击常用功能,点击数据导入,选择批量数据导入

然后点击上传文件,把sql脚本弄进来就可以了,再提交申请

再点击执行变更

1.5 Device-Control服务数据库初始化

这个还是一样的操作,sql脚本在device文件里面

2. 基于SAE部署User Admin服务

2.1 创建Web应用并配置应用基本信息

注意我们数据库使用的VPC和交换机

因为VPC就是公共云里给用户隔离出来的私有网络

所有我们现在创建的这个SAE也必须和PolarDB一样的VPC,不然SAE里面配置的数据库是内网,如果不在一个局域网,是无法链接到数据库的
一定要命名好,不然只是看id根本不知道是什么意思

先创建一个命名空间,和云数据库一个VPC的

进入SAE控制台

点击应用列表,里面创建应用,我选择的是轻量版

选择代码包部署,把Windows本地的jar包上传过来,看到了吗,我们选择的都是和云数据库一样的VPC,交换机,安全组

注意选择JDK17

以前我们可以创建web应用,然后可以从代码仓库里面打包,但是现在不可以了,所以我们就从本地打包然后传上来吧

然后是点击下一步高级设置

什么都不用干

最后点击创建应用

很简单

点开日志看,发现成功了

变更也是成功的

点击基础信息里面的部署应用

但是怎么访问呢

基础信息里面找到应用访问设置,点击CLB访问

然后添加

然后添加公网ip访问,因为我们要用apifox访问的

然后就生成成功了

我们访问接口/l/a也就是登录操作

java 复制代码
{
    "account": "zhangsan",
    "password": "000000"
}

没有问题的,说明成功了

2.2 基于SAE部署Device Control服务

还是创建轻量版应用

应用名称为device-control

然后是设置代码包部署

上传的是zip文件,记得压缩一下,然后启动命令是

java 复制代码
python server.py

然后直接创建应用

然后还是添加CLB的公网访问,端口号还是9000

java 复制代码
[
    {
        "name": "温湿度设备",
        "type": "null",
        "sn": "SNTAH",
        "passwd": "123456"
    }
]
java 复制代码
http://xxxxxx:9000/devices


然后我们在提供一个python代码

java 复制代码
python client.py ws://<your_sae_domian>/devices/auth/ws SNTAH 123456

然后执行这个命令

java 复制代码
#第一个参数为Device-Control应用的地址(注意:不需要https://,只需要域名)
#第二个参数是前面步骤创建的设备sn
#第三个参数是该设备的密码

这个python代码的作用是

与Device-Control建立WebSocket连接。

并测试接口/devices/auth/ws,看数据库中存不存在sn为SNTAH ,密码为123456的数据,测试的还是device-control

说明我们都成功了

然后注意一点就是SAE中我们弄了CLB去访问

CLB是一种传统型的负载均衡,是要收费的

负载均衡控制台

可以去这里释放CLB,因为关闭了CLB还是会计费,只有释放了才不会计费

还要关闭SAE的服务,这个也是要计费的,这个只需要关闭就可以了,不用释放

然后这两个都是按照一个小时一个小时来计费得到

一定要停止,不然一直计费

还有一点值得注意的就是,我们在1.3的时候

打开device-control的代码库中server-config.ini,修订callback_url字段(第8行)为cloudflow的内网触发地址。当边端设备

向Device-Control服务发送温湿度数据后,将回调该地址,触发工作流的运行。

然后Device-Control里面的/devices/auth/ws中有一个东西,就是在查询数据库之后,身份验证成功之后,会调用ws_biz方法

ws_biz会发送请求resp = requests.post(biz_callback_url, json=report_data)

就是对biz_callback_url发送请求,json为report_data

java 复制代码
            report_data = {
                "sn": sn,
                "temperature": temperature,
                "humidity": humidity,
            }

所以我们还会触发工作流,所以还会有邮件的接收

总结

相关推荐
云老大-阿里云国际站代理商6 小时前
华为云国际站服务代理商:NAT网关怎么配?多台ECS共用公网IP要注意什么
服务器·华为云·云计算
闲云自留地10 小时前
告别命令恐惧症,openEuler 基础操作 + 文本 + 网络管理实战
linux·运维·云计算
我爱吃土豆117 小时前
从零给个人项目搭一套 CI/CD
阿里云·部署·cicd
逐流人18 小时前
Containerd容器管理实战:从架构原理到nerdctlcrictl工具链
linux·运维·云原生·容器·云计算·containerd
yi碗汤园1 天前
OSS对象存储服务
网络·阿里云
事界见闻1 天前
多电平变换器实时仿真怎么选?微秒级解算与多机拓展下的技术评估与方案分析
云计算
闲云野鹤在人间1 天前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
云边云科技_云网融合2 天前
从一盘散棋到一张蓝图:某连锁集团的云上重构
网络·科技·云计算
小葱运维2 天前
日志规范(K8s 结构化日志)
运维·开源·云计算
边境悍匪2 天前
蜗牛学苑 Java 智能体学习 Day44|Vue 前端项目搭建 思维导图复盘
java·开发语言·spring boot·学习·阿里云