前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ServelessDay 2021用户反馈

ServelessDay 2021用户反馈

原创
作者头像
喵喵侠
修改2021-05-26 10:02:05
1.1K0
修改2021-05-26 10:02:05
举报
文章被收录于专栏:喵喵学前端喵喵学前端

是否曾使用过腾讯云Serverless

我要点赞

  • demo1的控制台操作简单,按照流程来很顺利就能完成部署并访问。
  • 腾讯云的客服服务很好,有问题可以随时在线交流。
  • 可以将对话转成一个工单,工单有专门的工程师对接负责。

我要吐槽

体验过程中的不顺畅、有 bug 等,欢迎吐槽

Demo1 - 趣味游戏三步上云

点击去体验,进入如下页面。

image.png
image.png

这是一个合成大西瓜的游戏demo,语言是Python3.6版本,可以通过这个模板,快速部署上线这个游戏。

参数选择默认的就好,点击完成。

image.png
image.png
问题:缺少项目地址访问引导

部署完成后,进入函数管理的页面,却不知道下一步怎么操作。

image.png
image.png

后来才发现,点击触发管理,可以看到模板创建好的触发器,API网关触发中,可以看到访问路径。

这里需要优化下,如果是新手,可能不知道。

问题:缺少只支持移动端的提示

这个游戏目前只支持移动端,而sls部署是在电脑完成的,打开demo后,应该给出提示才对,提示内容是该页面只能在手机上访问,PC浏览器贴一个二维码,而不是显示成下面这样。

image.png
image.png

发现一个小细节,点击游戏里面的元素,ctrl+shift+i打开审查元素的快捷键是失效的。

必须点击白色的部分才可以。

image.png
image.png

问题:图片加载失败的bug,这个是logo

image.png
image.png

链接地址是:https://service-0hp61skm-1251131656.hk.apigw.tencentcs.com/release/images/logo.png

问题:加载字体过小,没有做rem适配。
image.png
image.png
问题:转盘错位
image.png
image.png
问题:刮奖样式错乱。
image.png
image.png
image.png
image.png

表单错乱

image.png
image.png

Demo2 - Serverless相册

demo2的问题就比较多了,我零零散散花费了2-3天的时间,才完整的部署成功。在腾讯云技术团队的帮助下,我成功完成了本地和线上部署。

本地开发

官方文档如下:

photo-album/README.md · alfredhuang/sls-day - Gitee.com

但本地开发文档写的过于简单,甚至缺少一些前置准备和关键步骤细节。我这里补充一下完整可用的版本。

前置准备:

  • 安装Nodejs(官网下载)
  • 安装Docker(官网下载)
  • 安装Serverless(npm或yarn全局安装)

完整命令:

代码语言:javascript
复制
$ git clone https://github.com/serverless-plus/photo-album.git
代码语言:javascript
复制
$ npm install && cd client && npm install
代码语言:javascript
复制
$ npm run docker:up
代码语言:javascript
复制
$ cp .env.example .env 

上面复制文件内容并创建.env后,把TENCENT_APP_ID、TENCENT_SECRET_ID、TENCENT_SECRET_KEY填写进去。这三个参数需要在腾讯云控制台的【访问管理-访问密钥-API密钥管理】中寻找。

访问密钥 - 控制台

到这里很多人会接着启动本地服务器和本地客户端,但在启动服务器的时候,我遇到了以下报错:

报错node env

image.png
image.png

我在这里卡了很久,解决办法是,修改package.json 的文件中,scripts里面的dev:server这一行,加上前缀cross-env。改完后如下:

代码语言:javascript
复制
"dev:server": "cross-env NODE_ENV=development ts-node src/server.ts",

在这里我是反复踩了很多坑,期间还联系了官方技术支持,根据我俩的共同排查,发现解决这个报错,还需要做以下几件事:

1.windows系统下不能加MYSQL_DATABASE: root这一行配置;

2.package.json中这里需要执行如下安装并修改。

代码语言:javascript
复制
npm install -g ts-node
npm install -g typescript
npm install -g cross-env 

3.env中的存储桶配置指定的存储桶需要预先在对象存储cos中创建好;

image.png
image.png

4.需要在对象存储中根据本地地址设置跨域;

image.png
image.png

我是创建了名字为photo-album的cos存储桶,选择上海地域,可用区不用管,没有意义。(选择不同地域效果可能会不一样)

5.docker-compose.yml这个文件中,去掉MYSQL_USER那一行,否则docker启动mysql会一直处于红色失败的状态。

6..env文件关于mysql数据库的地方也要修改,参考模板如下:

代码语言:javascript
复制
# 以下为通用配置
REGION=ap-shanghai
ZONE=ap-shanghai-1
BUCKET=photo-album
# 以下为本地开发的数据库配置
DB_HOST=127.0.0.1
DB_NAME=photo-album
DB_USER=root
DB_PASSWORD=123456
DB_PORT=3306

7.完成了上述修改,执行npm run dev:server,还是会出现报错errno

image.png
image.png

解决这个问题,就需要进入docker容器。

我这里是用的docker的Windows客户端,进入图形界面,点击CLI按钮即可进入命令行模式。

image.png
image.png

接着要切换到mysql用户,键入下面命令:

代码语言:javascript
复制
mysql -u root -p

用户的密码在docker-compose.yml文件中,我这里用的是root。

image.png
image.png

如果出现报错:ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)

image.png
image.png

可以修改密码为123456,参考下面这篇文章。

ERROR 1045 (28000): Access denied for user ‘root‘@‘172.17.0.1‘ (using password: YES)_ JustPlay1994的专栏-CSDN博客

代码语言:javascript
复制
rem ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #改密码

也可以尝试直接输入123456,我这边是在配置修改过了,先docker:down关闭,再重新启动docker:up才登录成功。

当出现下面提示,证明本地服务端启动成功。

image.png
image.png

接着再启动本地客户端。

image.png
image.png

访问网址,即可看到成功部署的本地相册应用。

image.png
image.png
线上部署

线上部署就简单多了,按照文档的步骤来就好,但还是有点小坑需要注意一下。

问题:db部署报错

这个问题,在执行命令npm run deploy:db会出现。

image.png
image.png

给了提示也很明显,说明只有上海2的可用区是可以用的,上海1不在支持列表中,所以我这里需要在配置里面换可用区。这也是我前面提到的可能需要换可用区的原因。

我的解决办法是,换了.env可用区为 ap-shanghai-2就好了。

image.png
image.png

我要建议

目前这两个demo我都已经顺利部署完成,只是觉得demo1的例子不够完善,部署发布到线上有很多bug,希望能够有一个正常H5的demo可以跑。再就是demo2的文档写的过于简单,以至于很多同学包括我自己,在一些配置细节坑上卡了很长时间。如果下次有类似活动,最好能够提供一个视频教学,这样参与起来会更加轻松一些。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 是否曾使用过腾讯云Serverless
    • 我要点赞
      • 我要吐槽
        • Demo1 - 趣味游戏三步上云
        • Demo2 - Serverless相册
      • 我要建议
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档