实验指导-基于阿里云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,
            }

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

总结

相关推荐
码界奇点10 小时前
Nginx 502 Bad Gateway从 upstream 日志到 FastCGI 超时深度复盘
运维·nginx·阿里云·性能优化·gateway
weixin_4432906912 小时前
【云服务器相关】云服务器与P2P
运维·服务器·云计算·p2p
灵雀云13 小时前
央企云原生PaaS建设方案及案例集锦
云原生·云计算·paas
科技峰行者21 小时前
通义万相2.5系列模型发布,可生成音画同步视频
人工智能·阿里云·ai·大模型·agi
ZStack开发者社区1 天前
ZStack Cloud v5.4.0 LTS让运维自动驾驶,让合规开箱即用
运维·云计算
Walker_Code1 天前
mpich与openmpi
云计算
-dcr1 天前
21.mariadb 数据库
数据库·云计算·运维开发·mariadb
CRMEB定制开发1 天前
PHP多商户接入阿里云识图找商品
android·阿里云·小程序·php·商城系统·微信商城·crmeb
AutoMQ1 天前
产品动态 | Kafka Linking 迁移工具上线、Table Topic发布、Azure开服
大数据·云原生·云计算