【scf】scf工具使用cos部署应用

2022-11-08 12:00:42 浏览数 (2)

云函数部署

控制台

登录腾讯云Serverless 控制台,单击左侧导航栏的函数服务可以创建云函数也可以单机左侧导航栏的Serverless 应用来新建应用

新建云函数参考:控制台新建云函数

新建Serverless应用参考:控制台新建Serverless应用

命令行工具

实际上,大多数开发人员喜欢用scf(以前是sls)命令来部署应用。控制台的模板源码包其实scf工具也可以复用部署

scf工具部署云函数参考:scf工具部署云函数

vs code插件

Tencent Serverless Toolkit for VS Code 是腾讯云 Serverless 产品的 VS Code(Visual Studio Code)IDE 的插件。该插件可以让您更好的在本地进行 Serverless 项目开发和代码调试,并且轻松将项目部署到云端

参考:vs code插件部署云函数

scf工具使用cos代码部署应用

大部分时候,用户代码是在本地,使用旧版sls部署应用会把本地代码上传到cos,这种情况会偶现如下报错,原因sls服务是在广州区域,上传到客户其他区域跨地域可能会有超时

代码语言:javascript复制
{"Code":"UPLOAD_CODE","Message":"Upload cos failed, please check bucket exist or not."}

基于此,可以在serverless.yml中配置指定cos,这样不会在服务端走上传流程。

scf工具安装和配置

参考scf工具安装

参考scf配置

scf安装

  • scf安装 需要环境中已安装好了 Node(版本需要 > 12)
代码语言:javascript复制
npm i -g serverless-cloud-framework

  • 查看scf版本
代码语言:javascript复制
scf -v

scf工具配置

  • scf需要配置secretid和secretkey。并且需要给子账号关联相关策略
代码语言:javascript复制
scf credentials set --secretId xxx --secretKey xxx

上传代码包到cos

  • 创建存储桶,参考文档:创建存储桶
  • 在存储桶创建个代码目录,这里以williamji-scf-cos为例
  • 本地把代码打包,注意是源码打包,不是serverless应用打包。这里参考把index.js代码打包
代码语言:javascript复制
zip index.js.zip index.js

  • 在cos控制台对应代码目录上传代码zip包,上传后样例如下

serverless.yml配置

  • 使用scf工具需要配置serverless.yml,scf工具部署依赖serverless.yml里面的配置
  • 使用cos源码部署应用的serverless.yml样例如下:
代码语言:javascript复制
component: scf
name: scf-nodejs-cos
app: williamji-test-scf
inputs:
  src: 
    bucket: <bucket-name>                     # 桶名,例如<name>-<appid>
    object: /williamji-scf-cos/index.js.zip   # cos源码包路径
  description: deploy application from cos code 
  handler: index.main_handler
  runtime: Nodejs10.15
  name: williamji-cos
  region: ap-guangzhou
  memorySize: 128
  timeout: 10

  • 在serverless.yml同级目录使用sls deploy部署应用即可
  • 到控制台查看对应的云函数是否存在

0 人点赞