前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >尝试云开发

尝试云开发

作者头像
愧怍
发布2022-12-27 20:23:23
6640
发布2022-12-27 20:23:23
举报
文章被收录于专栏:愧怍的技术学习与分享

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

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

云开发 CloudBase 环境

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

本地安装 CLI 工具

安装 Nodejs

安装 CloudBase CLI

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

使用 NPM

代码语言:javascript
复制
npm i -g @cloudbase/cli

或使用 Yarn

代码语言:javascript
复制
yarn global add @cloudbase/cli

测试是否安装成功

代码语言:javascript
复制
tcb -v

登录方式

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

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

代码语言:javascript
复制
tcb login

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

image-20210905085929546
image-20210905085929546

腾讯云-云 API 密钥授权

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

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

代码语言:javascript
复制
tcb login --key

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

CI 中的登录

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

代码语言:javascript
复制
tcb login --apiKeyId xxx --apiKey xxx

临时秘钥登录

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

代码语言:javascript
复制
tcb login --apiKeyId xxx --apiKey xxx --token xxx

开始体验

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

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

安装

代码语言:javascript
复制
npm install --save @cloudbase/node-sdk

初始化

代码语言:javascript
复制
// 初始化示例
const tcb = require('@cloudbase/node-sdk')
// 初始化资源

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

云函数

创建云函数

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

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

此时目录结构如下:

代码语言:javascript
复制
└── functions
    └── hello_world
        ├── index.js
        └── package.json

index.js 内容如下:

代码语言:javascript
复制
exports.main = async function () {
  return 'Hello World!'
}

package.json 内容如下:

代码语言:javascript
复制
{
  "name": "hello_world",
  "version": "1.0.0",
  "main": "index.js"
}
发布云函数

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

代码语言:javascript
复制
cloudbase fn deploy hello_world -e <env-id>

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

image-20210905093035131
image-20210905093035131

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

image-20210905093757875
image-20210905093757875

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

image-20210905094146730
image-20210905094146730
调用云函数
使用 HTTP 调用

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

代码语言:javascript
复制
cloudbase service create -p hello -f hello_world -e <env-id>

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

image-20210905093505618
image-20210905093505618
Nodejs 调用
代码语言:javascript
复制
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
复制
{
  result: 'Hello World!',
  requestId: 'xxxxx‘
}

云数据库

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

实例代码如下
代码语言:javascript
复制
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
复制
{ 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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 云开发 CloudBase 环境​
  • 本地安装 CLI 工具​
    • 安装 Nodejs​
      • 安装 CloudBase CLI​
      • 登录方式​
        • 腾讯云-云开发控制台授权​
          • 腾讯云-云 API 密钥授权​
            • CI 中的登录​
              • 临时秘钥登录​
              • 开始体验​
                • 安装​
                  • 初始化​
                    • 云函数​
                      • 创建云函数​
                      • 发布云函数​
                      • 调用云函数​
                    • 云数据库​
                      • 实例代码如下​
                    • 云存储​
                      • 登录鉴权​
                      • 体验感受​
                      相关产品与服务
                      云函数
                      云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档