Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >尝试云开发

尝试云开发

作者头像
愧怍
发布于 2022-12-27 12:23:23
发布于 2022-12-27 12:23:23
72200
代码可运行
举报
运行总次数:0
代码可运行

在接触一个开源项目的时候,项目的后端采用的是云开发的模式(云函数云数据库等等),本人又没接触过云开发,于是便有了这篇文章。

本文使用是的腾讯云的产品,官方文档(很详细) 云开发 CloudBase - 一站式后端云服务

云开发 CloudBase 环境

开通环境 | 云开发 CloudBase - 一站式后端云服务

本地安装 CLI 工具

安装 Nodejs

安装 CloudBase CLI

安装 | 云开发 CloudBase - 一站式后端云服务

使用 NPM

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm i -g @cloudbase/cli

或使用 Yarn

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn global add @cloudbase/cli

测试是否安装成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcb -v

登录方式

腾讯云-云开发控制台授权

在您的终端中输入下面的命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcb login

CloudBase CLI 会自动打开云开发控制台获取授权,您需要点击同意授权按钮允许 CloudBase CLI 获取授权。如您没有登录,您需要登录后才能进行此操作。

腾讯云-云 API 密钥授权

登录方式 | 云开发 CloudBase - 一站式后端云服务

首先您需要到腾讯云官网获取云 API 密钥 (opens new window),然后在终端中输入下面的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcb login --key

回车后,请按提示输入云 API 密钥的 SecretId 和 SecretKey 既可完成登录。

CI 中的登录

在 CI(持续集成)构建中,您可以使用下面的方式通过 API 秘钥直接登录,避免交互式输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcb login --apiKeyId xxx --apiKey xxx

临时秘钥登录

通过腾讯云临时秘钥登录,可以在某些比较敏感的场景下使用,使用短期有效的秘钥

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tcb login --apiKeyId xxx --apiKey xxx --token xxx

开始体验

介绍 | 云开发 CloudBase - 一站式后端云服务

所采用的是Nodejs SDK API进行体验

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install --save @cloudbase/node-sdk

初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 初始化示例
const tcb = require('@cloudbase/node-sdk')
// 初始化资源

//云函数下使用默认环境
const app = tcb.init()

云函数

创建云函数

概述 | 云开发 CloudBase - 一站式后端云服务

创建一个项目,在项目的根目录创建 functions 文件夹。在 functions 下创建 hello_world 文件夹,包含 index.jspackage.json 两个文件。

此时目录结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
└── functions
    └── hello_world
        ├── index.js
        └── package.json

index.js 内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exports.main = async function () {
  return 'Hello World!'
}

package.json 内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "hello_world",
  "version": "1.0.0",
  "main": "index.js"
}
发布云函数

通过前面安装的 CLI 工具,在项目根目录运行以下命令,并且使用默认配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cloudbase fn deploy hello_world -e <env-id>

<env-id>为环境 id,可在云开发 CloudBase 中环境查看,部署结果如下

在控制面板中也能看到对应的云函数列表

后台也是能完整看到对应的代码的

调用云函数
使用 HTTP 调用

执行以下命令创建一条 HTTP 服务路由,路径为 /hello,指向的云函数为 hello_world

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cloudbase service create -p hello -f hello_world -e <env-id>

随后便可以通过 https://<env-id>.service.tcloudbase.com/hello 调用云函数,并获得返回结果。如下图

Nodejs 调用
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
  secretId: 'xxxxxx',
  secretKey: 'xxxxxx',
  env: 'env-id',
})

app
  .callFunction({
    // 云函数名称
    name: 'hello_world',
    // 传给云函数的参数
    data: {
      a: 1,
    },
  })
  .then((res) => {
    console.log(res)
  })
  .catch(console.error)

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  result: 'Hello World!',
  requestId: 'xxxxx‘
}

云数据库

概述 | 云开发 CloudBase - 一站式后端云服务

实例代码如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
  secretId: 'xxxxx',
  secretKey: 'xxxxx',
  env: 'env-id',
})

let db = app.database()

async function run() {
  // 创建集合
  let res = await db.createCollection('books')
  console.log(res)

  // // 插入一条数据
  let res1 = await db.collection('books').add({
    category: 'Computer',
    name: 'Thinking in Java',
    onSale: true,
    sales: 100,
  })
  console.log(res1)

  // 获取数据库中的数据
  let res2 = await db.collection('books').get()
  console.log(res2)
}
run()

运行结果如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ requestId: '17bb3e26ecb_1', message: 'success' }
{ id: '14139e12613431c809b949933c3209de', requestId: '17bb3e27010_2' }
{
  data: [
    {
      _id: '14139e12613431c809b949933c3209de',
      category: 'Computer',
      name: 'Thinking in Java',
      onSale: true,
      sales: 100
    }
  ],
  requestId: '17bb3e270ca_3'
}

云存储

暂时用不到,就没体验

登录鉴权

暂时用不到,就没体验

体验感受

除了要钱外,我目前是找不到第二个缺点,我个人体验下来,整体流程可以说是非常爽的那种。因为部署项目是一件特别折腾的一件事情,而使用云开发门槛瞬间减少一半,只要会写 js 函数,会调用数据库,就足够搞定一个后端服务了。如果是搞小程序的,又要搞服务这些,直接上手云开发,微信用户,微信支付直接一条龙服务。

当然了如果要搞什么分布式,集群啥的,那还是老老实实的用后端框架吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年9月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于云开发 CloudBase 搭建在线视频会议应用
「在线视频会议应用」是基于浏览器的能力 WebRTC 以及云开发 CloudBase 能力构建而成的应用,在云开发的助力下,一个复杂的在线会议应用,1人、1-2天即可完成搭建。 本应用用到的能力、工具、框架有: CloudBase Framework 用于项目基础目录结构生成, 一键部署 Simple Peer 流行的 WebRTC 库 云开发CloudBase - 云函数, 包括云函数的定时调用 云开发CloudBase - 数据库 云开发CloudBase - 静态网站托管 React Ant d
腾讯云开发TCB
2020/10/14
1.6K0
Q&A第一辑|你最关心的云开发问题都在这了
关于小程序使用云开发很多小伙伴有不少疑问,大多数疑问其实在官方文档能够得到答案。但是今天小助手还是汇总了几个比较常见的问题,在这里一一为大家解答一下。
腾讯云开发TCB
2020/03/31
8940
Q&A第一辑|你最关心的云开发问题都在这了
简单几步,让微信小程序变身 H5 网页? | 云开发实战
我是 盛瀚钦,沪江 CCtalk 前端开发工程师,Taro 框架的 issue 维护志愿者,主要侧重于前端 UI 编写和团队文档建设。
腾讯云开发TCB
2020/03/31
6.6K0
简单几步,让微信小程序变身 H5 网页? | 云开发实战
这几项超好用的云开发扩展能力,别说你还不知道!
云开发CloudBase是云开发团队为开发者提供的一站式云服务,旨在降低开发者使用云服务的门槛,助力开发者快速开发应用。 在具体的开发过程中,云开发提供了许多实用的扩展能力,包含图像标签、图像安全审核、图像处理、图片盲水印等。本文就以人脸识别小程序为例介绍一些云开发扩展能力的应用。 使用方法简述 完整文档见: https://docs.cloudbase.net/extension/introduce.html 1、打开 云开发扩展控制台; 2、选择希望安装的扩展; 3、单击【安装】,进行扩
腾讯云开发TCB
2020/09/15
1.4K0
基于 Next.js 和云开发 CMS 的内容型网站应用实战开发
董沅鑫,云开发 CloudBase 团队研发工程师,侧重于前端工程化、node 服务开发,业余时间出没在 xin-tan.com。
腾讯云开发TCB
2020/06/03
5.4K0
0元免服务器,开发个人专属网盘 | 云开发WEB最佳实践
比如去打印店要打印文件,一般来讲是我们登录社交软件,然后传输文件,最后退出登录;除了安全性极差,还特别繁琐。
腾讯云开发TCB
2020/03/31
2.3K0
0元免服务器,开发个人专属网盘 | 云开发WEB最佳实践
CloudBase CMS + Next.js:轻松构建一个内容丰富的站点
试想一下,如果你现在要为你自己或者你所在的组织创建一个强内容的站点,同时要求好的 SEO(搜素引擎优化),比如博客,你会怎么做呢?
腾讯云开发TCB
2021/04/26
2.5K0
CloudBase CMS + Next.js:轻松构建一个内容丰富的站点
云开发 For Web:一站式开发下一代 Serverless Web 应用
近两年来,Serverless 无疑是前端圈里最火热的话题之一,在各种技术峰会、各种技术文章里都能看到它的身影。如果你是一名前端开发者,一定很奇怪:
腾讯云开发TCB
2020/03/27
2.1K0
云开发 For Web:一站式开发下一代 Serverless Web 应用
云开发 Action,赋予 GitHub 云上超能力
来自社区的@beetcb ,前几天参与了 Tencent CloudBase Github Action V2 ( AKA 云开发 Atcion) 的代码与文档贡献。如果你对使用 GitHub 自动构建和部署云开发项目感兴趣,欢迎随我来共同尝鲜 V2 版云开发 Action:
腾讯云开发TCB
2021/03/03
6600
云开发 Action,赋予 GitHub 云上超能力
TCB系列学习文章——搭建你的第一个web端云开发(三)
这里需要特别注意,若已在微信开发者工具开通云开发环境,并且希望可以和web端使用同一个环境,在登录控制台的时候,请选择微信公众号登录
F颜
2020/06/28
1.2K0
TCB系列学习文章——搭建你的第一个web端云开发(三)
2022年你还不会serverless?看看这篇保姆级教程(下)
用户发送的 HTTP 请求经过 API 网关后,网关侧将原生请求直接透传的同时,在请求头部添加了网关触发函数时需要的函数名、函数地域等内容,并一起传递到函数环境,触发后端函数执。
前端进阶之旅
2022/01/07
1.3K2
2022年你还不会serverless?看看这篇保姆级教程(下)
【玩转腾讯云】腾讯云开发xCODING实现Hexo博客的持续集成
就在昨天,腾讯云云开发发布了新能力支持——云开发静态网站托管能力正式上线了。通过云开发的静态网站托管能力,可以帮助开发者快速上线Web网站。
小谈谈BH1XAQ
2020/04/09
1.7K0
【玩转腾讯云】腾讯云开发xCODING实现Hexo博客的持续集成
UNI-APP使用云开发跨全端开发实战讲解
UNI-APP 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。
腾讯云开发TCB
2020/12/09
3.6K1
UNI-APP使用云开发跨全端开发实战讲解
如何把 Flutter 云端一体化做到极致?
云开发 CloudBase 提供了强大的一站式后端服务,并且和微信团队合作推出了「小程序·云开发」,服务了超过 50 万开发者。
腾讯云开发TCB
2020/08/05
1.2K0
如何把 Flutter 云端一体化做到极致?
【玩转腾讯云】 让开发变得简单
今年年初接触了云开发,这东西真香,减少了我们开发的繁琐和开发成本。它集成了云函数、云数据库、云存储等功能,使我们不必担心服务器运维、基础架构,只关心我们的业务逻辑即可,它让专业的人去干专业的事(比如运维交给腾讯云专业的人去做,我们不必担心)。这也让我们从开发成本上省出很多。并且我们开发应用可以快速上线!
XaDon
2020/04/20
1.2K0
【玩转腾讯云】 让开发变得简单
使用 GitLab CI 在云开发上部署React应用
云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML、CSS、JavaScript、字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持。在过去的几个月中,越来越多的用户支持了静态托管能力,众多开发者也给予了越来越多的关注。
腾讯云开发TCB
2020/06/17
2.1K0
使用 GitLab CI 在云开发上部署React应用
腾讯云TCB云函数趣应用:巧用 puppeteer 五分钟实现一个云加社区个人成就爬虫
入驻云加社区的同学都知道有个云+社区作者排行榜 ,榜单数据大概每周一的九点左右更新。个人成就数据也是同步更新,总是打开页面访问有点麻烦哇,用个爬虫来抓取不就方便多了嘛...
薛定喵君
2020/09/30
2.3K0
腾讯云TCB云函数趣应用:巧用 puppeteer 五分钟实现一个云加社区个人成就爬虫
如何使用云开发进行图片上传
云开发,相信大家都不陌生,在我们的日常开发中,总少不了需要把图片进行上传的应用场景。
Doggy
2020/07/03
3.1K0
如何使用云开发进行图片上传
利用云开发搭建私人云盘
最近参加了云开发Web训练营,算是为自己的web开发打下一点点基础,利用这点基础,我通过云开发搭建了一个私人云盘,本文主要分享搭建的步骤。
Xx_xX
2020/06/28
2.9K0
使用腾讯云开发来部署Svelte Sapper应用
Svelte是前端框架界新秀,以小巧、响应式、无virtual Dom著称,就像React有对应的SSR框架Next.js一样,Svelte也有自己官方的SSR 框架Sapper,也是小巧,灵活。
腾讯云开发TCB
2020/06/03
1.7K0
推荐阅读
相关推荐
基于云开发 CloudBase 搭建在线视频会议应用
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验