Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯Serverless体验,使用TypeScript编写并部署云函数

腾讯Serverless体验,使用TypeScript编写并部署云函数

原创
作者头像
泰坦HW
修改于 2022-02-14 02:10:58
修改于 2022-02-14 02:10:58
3.3K0
举报
文章被收录于专栏:Titan笔记Titan笔记

云函数介绍

云函数Serverless Cloud Function,SCF)是腾讯云提供的 Serverless 执行环境。只需编写简单的、目的单一的云函数即可将它与腾讯云基础设施及其他云服务产生的事件关联。使用云函数,可以以函数的形式运行后端代码,响应 SDK 的调用或者 HTTP 请求。代码会储存在云端,并且在托管环境中运行,无需管理或运维自己的服务器

初始化云函数项目

腾讯云开发提供了详尽的开发文档,并提供了CLI工具(CloudBase CLI )帮助用户快速、方便的部署项目,管理云开发资源。

如果你还没有初始化构建云函数项目,可以使用CLI工具进行初始化(推荐),也可以直接基于源码构建项目,这个部分可以查阅:

CLI工具:https://docs.cloudbase.net/cli-v1/intro

云函数:https://docs.cloudbase.net/cloud-function/introduce

云函数 + TypeScript

云函数已经提供了Node.js函数模板,但是由于官方没有提供TypeScript的相关支持。

习惯于在TS的类型检测和代码提示环境中开发的同学,就需要自己手动打造一个TypeScript的云函数开发环境。

整个过程大致是:使用TypeScript编写云函数代码 => 编译TS文件为JS => 修改云函数部署配置 => 上传并部署云函数

下面将使用云函数控制台中的基础模板 node-app(使用helloworld示例创建空白函数) ,介绍云函数 + TypeScript的流程。

一、改造云函数目录结构

使用TCB CLI工具初始化node-app后的云开发目录结构应该如下:

改造前的云函数目录结构
改造前的云函数目录结构

云开发环境的配置文件为 cloudbaserc.json,其中子目录functions\node-app为新建的 “node-app” 云函数根目录

我们应该将TypeScript文件编写在src目录下,将编译转换后的js文件生成在dist目录中,所以要修改一下目录结构,分别新建dist和src文件夹

改造后的目录结构
改造后的目录结构

二、配置TypeScript环境

配置TypeScript工具,安装TypeScript
代码语言:shell
AI代码解释
复制
npm install -g typescript

或者

代码语言:shell
AI代码解释
复制
yarn global add typescript

使用tsc -v命令确保安装成功,输出版本号

在云函数目录编写tsconfig.json配置文件

tsconfig.json

代码语言:json
AI代码解释
复制
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "lib": [
      "ES6",
      "dom"
    ],
    "sourceMap": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "importHelpers": true,
    "strict": true,
    "allowSyntheticDefaultImports": true
  },
  "exclude": [
    "node_modules"
  ],
  "include": [
    "src/index.ts",
    "src/**/*"
  ]
}
安装一些必要依赖
代码语言:shell
AI代码解释
复制
yarn add @types/node tslib

三、编写TypeScript源码

在src目录下编写 index.ts

代码语言:typescript
AI代码解释
复制
const hello : string = "Hello World"
exports.main = async (event : any, context : any) => {
    console.log(hello)
    return event
}

使用 tsc 命令编译ts文件到dist目录

此时你的目录应该是如下结构:

目录结构
目录结构

四、修改云函数部署配置

此时直接上传部署云函数是无法正常运行的,因为云函数会找不到入口文件,所以要再改造下云函数的配置

在cloudbaserc.json中,找到function字段,进行配置:

代码语言:json
AI代码解释
复制
"installDependency": true // 表明上传云函数后自动安装package.json的依赖
"ignore": [ // 忽略掉无需上传部署的本地依赖文件、src目录下的TypeScript源码文件等
    "*.md",
    "node_modules",
    "node_modules/**/*",
    "src",
    "src/**/*"
]

一个完整的配置文件示例如下:

代码语言:json
AI代码解释
复制
{
  "version": "2.0",
  "envId": "helloworld-*****",
  "$schema": "https://framework-1258016615.tcloudbaseapp.com/schema/latest.json",
  "functionRoot": "./functions",
  "functions": [
    {
      "name": "node-app",
      "timeout": 5,
      "envVariables": {},
      "runtime": "Nodejs10.15",
      "memorySize": 128,
      "handler": "index.main",
      "installDependency": true,
      "ignore": [
        "*.md",
        "node_modules",
        "node_modules/**/*",
        "src",
        "src/**/*"
      ]
    }
  ],
  "framework": {
    "name": "node-starter",
    "plugins": {
      "function": {
        "use": "@cloudbase/framework-plugin-function",
        "inputs": {}
      }
    }
  },
  "region": "ap-shanghai"
}

然后在云函数根目录编写云函数入口文件 index.js

代码语言:json
AI代码解释
复制
"use strict";
const index = require('./dist/index')
exports.main = async function (event, context) {
    return await index.main(event, context)
}

五、上传并部署云函数

使用 tcb fn deploy 直接部署云函数即可,在控制台可以进行调试

debug
debug

测试结果成功,表明已经成功实现 云函数 + TypeScript


云开发CloudBase,一站式高效开发平台:https://curl.qcloud.com/JcBqSTMl

云开发CloudBase
云开发CloudBase

本文为Titan笔记原创文章,同步发布至腾讯云+社区

https://www.titan6.cn/archives/397.html

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何用 Cloudbase Framework 部署一个 Vue 项目
Cloudbase Framework 是云开发官方出品的前后端一体化部署工具。目前已经 开源。
腾讯云开发TCB
2020/11/13
7702
如何用 Cloudbase Framework 部署一个 Vue 项目
2021-05-14 腾讯云函数调试
然后百度找到解决方法:打开PowerShell(在小娜里搜就行),输入set-executionpolicy remotesigned,之后选择Y
oracle3
2022/04/22
4860
2021-05-14 腾讯云函数调试
我的 Serverless 实战 — 云函数本地开发环境搭建
上一篇博客 我的 Serverless 实战 — 云函数与触发器的创建与使用 ( 开通腾讯云 “ 云开发 “ 服务 | 创建云函数 | 创建触发器 | 测试触发器 ) 中 , 在腾讯云平台上 , 创建了云函数与触发器 , 并对触发器进行了测试 , 通过 HTTP 访问触发云函数 ;
韩曙亮
2023/03/29
7860
我的 Serverless 实战 — 云函数本地开发环境搭建
【云+社区年度征文】全网第一个基于云函数的马保国彩色二维码生成器
接触云函数已经有一段时间嘞,TCB云开发的云函数对于前端开发人员来说是一个开发利器,我们可以基于云函数开发很多有意思的应用。这不,我们可以用它来合成彩色二维码,就让马保国老师来成为上云第一人吧(程序员要讲码德,耗子尾汁)。
薛定喵君
2020/11/27
2K0
【云+社区年度征文】全网第一个基于云函数的马保国彩色二维码生成器
CloudBase Framework丨第一个 Deno 部署工具是如何打造的?
云端一体化部署工具 CloudBase Framework (简称 CBF)自开源发布以来迭代迅速,不仅支持 Vue、React 等前端框架,也支持 Nuxt 等 SSR 框架,基于 Node 开发的应用如 Express、Koa 等也可以一键托管。除此之外,借助底层 Serverless 云应用的能力,也可以部署其他后端的应用(PHP、Java、Go 等),值得一提的是可以部署 Dart Server,可以配合 Flutter 实现 Dart 语言的云端一体化,这也是国内云厂商对 Dart 语言和生态的一大补充。
腾讯云开发TCB
2020/08/26
1.3K0
TCB系列学习文章——云开发的CloudBase CLI(十)
CloudBase CLI 是一个开源的命令行界面交互工具,用于帮助用户快速、方便的部署项目,管理云开发资源。
F颜
2020/11/08
3.6K0
长文攻略 | 快速打造一键部署云开发应用
云开发应用可以理解为运行在云开发环境的应用,例如一个包含前后端、数据库等能力等服务,可以通过一键部署,直接部署在云开发环境中,使用云开发底层的各项 Serverless 资源,享受弹性免运维的优势。
Booker Zhao
2021/01/19
1.6K0
使用腾讯云开发来部署Svelte Sapper应用
Svelte是前端框架界新秀,以小巧、响应式、无virtual Dom著称,就像React有对应的SSR框架Next.js一样,Svelte也有自己官方的SSR 框架Sapper,也是小巧,灵活。
腾讯云开发TCB
2020/06/03
1.7K0
CloudBase Framework 已支持一键部署小程序
CloudBase Framework 是云开发官方出品的前后端一体化部署工具,无需改动代码,前后端一键托管部署,基于 Serverless 架构,加速访问,弹性免运维。目前已支持一键部署网站、Next SSR、Node、Dart、Deno 等应用。
腾讯云开发TCB
2020/11/05
8340
CloudBase Framework 已支持一键部署小程序
带你入门云开发实践总结篇
CloudBase 支持使用 .env 类型文件作为主要数据源,使用不同的后缀区分不同的阶段、场景,如 .env.development 可以表示开发阶段的配置,.env.production 可以表示生产环境的配置
前端进阶之旅
2022/07/29
5.9K0
带你入门云开发实践总结篇
如何用Cloudbase Framework部署一个Vue项目?
Cloudbase Framework 是云开发官方出品的前后端一体化部署工具,无需修改业务代码,就能将 Vue 应用前后端一键托管部署在云开发平台。借助于 Cloudbase Framework,你可以一键部署一个已有的 Vue 项目,也可以快速创建一个新的 Vue 项目,用于后续开发。
腾讯云开发TCB
2020/07/30
1.4K0
攻略丨CloudBase Toolkit 云函数调试
Tencent CloudBase Toolkit 插件 0.2.0 版起支持云函数本地调试和云端调试两种调试模式。
腾讯云开发TCB
2020/07/10
1.4K0
【玩转腾讯云】 让开发变得简单
今年年初接触了云开发,这东西真香,减少了我们开发的繁琐和开发成本。它集成了云函数、云数据库、云存储等功能,使我们不必担心服务器运维、基础架构,只关心我们的业务逻辑即可,它让专业的人去干专业的事(比如运维交给腾讯云专业的人去做,我们不必担心)。这也让我们从开发成本上省出很多。并且我们开发应用可以快速上线!
XaDon
2020/04/20
1.2K0
【玩转腾讯云】 让开发变得简单
云函数 + TypeScript + Node.js 最佳实践探索
目的 最近 Serverless 愈来愈火,我刚好在培训,比较有时间去尝试一些新东西,所以趁这个时候去使用下 Serverless,尝试使用 Typescript 和 nodejs 开发,部署在腾讯云 SCF 上的一个小工具,探讨下 Typescript+ Node.js + SCF 的最好实践模式,并同时抛钻引玉,希望有同学提供更好的方案。 ---- 项目介绍 一、想法 本人有时候会追剧,但是剧集更新时,我一般都是不知道的。只有空闲的时候,才会特地去查看它们有没有更新。如果有这么一个工具,能够在剧集更
腾讯云serverless团队
2019/08/09
3K0
云函数 + TypeScript + Node.js 最佳实践探索
【开源公告】云原生一体化部署工具CloudBaseFramework开源啦
CloudBaseFramework是一款云原生一体化部署工具,支持前后端应用一键部署,快速将应用无缝部署在Serverless架构的云开发(FaaS + CaaS +BaaS)平台,享受免运维、高性能、高可靠性、可弹性扩缩容的的应用体验。 CloudBaseFramework首创支持前后端(web/小程序/移动端/服务端)一体化部署,将传统应用通过框架层的适配、资源的统一描述和编排,打造为 Serverless 架构上弹性、高扩展的云原生应用。同时提供了丰富BaaS 能力,高效开发一云多端应用。 相比同
腾讯开源
2020/11/26
9160
使用 Rollup + TypeScript 编写库
其中,dist 目录一般是通过 Rollup 等打包器打包后的入口文件,一般具有多种格式,以不同后缀命令,如: index.cjs.js index.esm.js。lib 和 esm 目录可以是 TypeScript 编译后生成的文件,目录下的结构基本和原项目结构相同,只是后缀变为 js,lib 一般为 CommonJS 格式,esm 为 ESModule 格式。而这些是一个库最基本的需要发布的文件。
Innei
2021/12/28
2.6K0
撸一个基于腾讯云云开发cloudbase framework的包含前端后端一体的应用
将这些不同形态的代码写在一起,通过framework的能力实现 一键部署 这些代码。
vannding
2021/10/22
1.1K0
撸一个基于腾讯云云开发cloudbase framework的包含前端后端一体的应用
TypeScript学习笔记(三)—— 编译选项、声明文件
compilerOptions ⽀持很多选项,常⻅的有 baseUrl 、 target 、 moduleResolution 和 lib 等。 compilerOptions 每个选项的详细说明如下:
张果
2022/10/04
2.7K0
TypeScript学习笔记(三)—— 编译选项、声明文件
FrameWork如何进行云托管部署
CloudBase Framework 是云开发官方出品的云原生一体化部署工具,可以帮助开发者将静态网站、后端服务和小程序等应用,一键部署到云开发 Serverless 架构的云平台上,自动伸缩且无需关心运维,聚焦应用本身,无需关心底层配置和资源,云开发 CloudBase Framework 框架「Container」插件: 通过云开发 CloudBase Framework框架将项目应用一键部署到云开发的云托管环境,提供生产环境可用的自动弹性伸缩的高性能的容器计算服务。可以搭配其他插件如 Website 插件、Node 插件实现云端一体开发。
腾讯云开发TCB
2021/01/05
9290
FrameWork如何进行云托管部署
新能力 | 云开发CLI工具快速入门
云开发 CLI 是一个开源的基于 Node 编写的命令行工具,用于帮助用户快速、方便的部署基于云开发的项目、管理云开发资源。
腾讯云开发TCB
2023/07/14
4910
新能力 | 云开发CLI工具快速入门
推荐阅读
相关推荐
如何用 Cloudbase Framework 部署一个 Vue 项目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档