当前位置: 首页 > news >正文

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

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

文章目录

  • 前言
  • 1. 环境准备
    • 1.1 开通Serverless应用引擎 SAE
    • 1.2 代码准备
    • 1.3 构建CokdeUp代码仓库
    • 1.4 User-Admin服务数据库迁移
    • 1.5 Device-Control服务数据库初始化
  • 2. 基于SAE部署User Admin服务
    • 2.1 创建Web应用并配置应用基本信息
    • 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的内网访
问地址及对应的用户名和密码。
以前是

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "publicKey"

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

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

在这里插入图片描述
在这里插入图片描述

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

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

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也就是登录操作

{"account": "zhangsan","password": "000000"
}

在这里插入图片描述

没有问题的,说明成功了

2.2 基于SAE部署Device Control服务

还是创建轻量版应用

应用名称为device-control

在这里插入图片描述

然后是设置代码包部署

在这里插入图片描述
上传的是zip文件,记得压缩一下,然后启动命令是

python server.py

然后直接创建应用

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

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

在这里插入图片描述
在这里插入图片描述

然后我们在提供一个python代码
在这里插入图片描述

python client.py ws://<your_sae_domian>/devices/auth/ws SNTAH 123456

然后执行这个命令

#第一个参数为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

            report_data = {"sn": sn,"temperature": temperature,"humidity": humidity,}

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

在这里插入图片描述

总结

http://www.dtcms.com/a/427197.html

相关文章:

  • 黔西县住房和城乡建设局网站个人网页制作方法
  • 长沙网站推广系统动态wordpress动态主题
  • 基于Matlab实现路径规划
  • 给定数据规模的ACM风格笔试题-子矩阵的最大累加和问题
  • 一站式服务图片wordpress博客整站源码
  • 明星粉丝网站怎么做建设银行手机银行官方网站下载安装
  • Spring boot中 限制 Mybatis SQL日志的大字段输出
  • SQL Server数据库事务日志问题的诊断与解法(从膨胀到瘦身)
  • Postgresql CLOG文件及其从库同步解析
  • wordpress 授权一个空间两个网站对seo
  • 正规的招聘网站永州市网站建设
  • 加强教育信息网站建设昆山建设工程安监站网站
  • EndoChat:面向内镜手术的基于事实依据的多模态大型语言模型|文献速递-文献分享
  • 零基础学AI大模型之ChatModel聊天模型与ChatPromptTemplate实战
  • 产生式规则对自然语言处理深层语义分析的影响与启示研究
  • web渗透之Python反序列化漏洞
  • 做办公用品网站工作计划黄页网站是什么
  • 论文阅读 (1) :Control Flow Management in Modern GPUs
  • 吉林省软环境建设网站网络营销属于哪个专业
  • iOS 26 系统流畅度检测 从视觉特效到帧率稳定的实战策略
  • 2025云栖大会,机器人商业时代降临
  • C++面向对象编程三大特性之一:多态
  • TapTalk | 圆桌实录:澳门综合度假村敏捷转型之旅,MongoDB + TapData 赋能酒店业卓越实践
  • 机器人市场:犹如一颗深水核弹
  • 用VS做的网站怎么连接数据库深圳人才招聘网官网
  • mysql_query函数:数据库世界的信使
  • 【最新】Navicat Premium 17
  • Eclipse Mosquitto MQTT 代理中持久性引擎(database.c 概念)的作用分析报告
  • 建设网站公司兴田德润在哪里百度关键词排名价格
  • UNet改进(42):结合2D Sinusoidal Positional Encoding与Frequency Attention模型