继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

一键将 Laf 迁移到 Sealos 云开发(Sealaf),有手就行!

米开朗基杨
关注TA
已关注
手记 90
粉丝 14
获赞 25

Laf 云开发最近已正式与 Sealos 融合,成为 Sealos 云开发(Sealaf),Sealaf 继承了 Laf 的核心功能,默认配置专用数据库,拥有更好的稳定性,未来我们会将迭代重心转向 Sealaf,强烈建议将 Laf 上的应用立刻迁移至 Sealaf!

为什么要迁移?

可联动丰富应用生态Sealos 应用市场中有丰富的应用,这些应用都可一键部署、开箱即用。可以在云函数中直接内网调用这些应用提供的能力,一站式满足你的业务!

更多的数据库和中间件选择:过去的 Laf 提供的云数据库只有 MongoDB,如今可直接在 Sealos 上一键启动 PostgreSQL、MySQL、Redis、Kafka、ElasticSearch 等各种数据库和中间件,并直接内网调用

统一账户:以前用户需要分别在 Laf 和 Sealos 注册账户,现在无需分别注册和充值,统一使用 Sealos 账户和账单(余额转移可联系客服)。

管理更灵活:以前用户无法单独管理 Laf 创建的云数据库,比如备份、日志、观测、导入导出等操作,现在 Sealos 云开发上创建的数据库,可以通过 Sealos 数据库管理应用直接管理和监控,也可使用本地的数据库管理工具直接连接。

多区域选择:在 Sealos 上目前支持杭州北京广州新加坡等可用区,以满足不同业务的需要,在一个 Sealos 账户下充值,可跨多个区域使用。

迁移内容

Laf 迁移包含以下多块内容,我们可以使用 laf-cli 快速完成迁移:

  • 云函数
  • 云存储
  • 数据库
  • 触发器
  • 环境变量
  • 函数依赖
  • 自定义域名
  • 网站托管

迁移步骤

1. 分别在 laf 和 sealaf 创建 PAT


关于 laf-cli 的详细使用方法请参考 laf-cli 文档

2. 下载 cli 并初始化用户

npm install -g laf-cli

laf user add laf -r https://laf.run
# 填入对应可用区的 api url
laf user add sealaf-hzh -r https://sealaf-api.hzh.sealos.run

laf user switch laf
# <PAT> 替换为刚刚创建的 PAT
laf login <PAT>
laf user switch sealaf-hzh
laf login <PAT>

Sealos 不同可用区 Sealaf 对应的 api 地址如下

3. 拉取原应用数据

APPID="" # laf 上的 appid
mkdir $APPID && cd $APPID

laf user swicth laf
laf app init $APPID

# 拉取云存储、环境变量、依赖
laf func pull

laf env pull

laf dep pull

# 列出存储
laf storage list

# 依次拉取存储到指定目录
laf storage pull <bucketName> <path>

# 拉取数据库
laf database export ./db

# 删除 .app.yaml 以便重新 init 新应用
rm .app.yaml

4. 推送数据到新应用

NEW_APPID=""
laf user swicth sealaf-hzh

laf app init $NEW_APPID

laf func push

laf env push

laf dep push

# 需要先在 sealos 对象存储上手动创建桶
laf storage push <bucketName> <path>

# 导入数据库
laf database import $APPID ./db/xxx.gz

rm .app.yaml

5. 重启应用

重启以确保环境变量等生效

6. (可选)手动创建触发器、自定义域名

  • 方式一:使用 laf-cli 创建触发器
# 列出触发器
laf trigger list
# 创建
laf create <name> <target> <cron>
  • 方式二:在 Sealaf 界面直接创建触发器

7. (可选)在 sealos 对象存储开启网站托管

8. (可选)cloud.storage.bucket 变更

如果原应用代码中使用了 cloud.storage.bucket(bucketName),需要在新应用中手动修改为新的 bucket 名称(注意:现在必须填完整桶名)

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP