IDC

云函数 函数操作 - 开发者工具

作者:admin 2021-10-14 我要评论

操作场景 本文介绍如何快速创建与部署一个云函数项目。 前提条件 已安装 Serverless Framework,详情请参见 安装 Serverless Framework。 账号开通 Serverless ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

操作场景

本文介绍如何快速创建与部署一个云函数项目。

前提条件

  • 已安装 Serverless Framework,详情请参见 安装 Serverless Framework。
  • 账号开通 Serverless 相关权限,详情请参见 账号和权限配置。

操作步骤

创建函数

执行以下命令,快速创建一个开发语言为 Node.js 的函数示例。

sls init scf-demo
说明:

命令中的 scf-demo 默认为 nodejs 模版,您也可以替换为其它语言的函数模版:scf-golangscf-phpscf-python

函数创建成功后,scf-demo 项目目录下会有一个 serverless.yml 配置文件。该文件定义了每次部署的云函数资源信息,更多配置文件信息请参见 配置文件。

部署函数

scf-demo 目录下执行以下命令,进行函数部署。

sls deploy

将会弹出二维码,请直接扫码授权开始部署。部署成功后,会自动创建云函数资源。

说明:

如果鉴权失败,请参考 权限配置 进行授权。

查看函数信息

执行以下命令,查看已部署云函数资源信息。

sls info

移除函数

执行以下命令,移除已经部署云函数资源。

sls remove

配置文件

Serverless Framework CLI 创建或更新云函数,均依赖 serverless.yml 文件中的配置。当执行 sls deploy 命令部署函数时,会根据 serverless.yml 文件中的配置对云函数资源进行创建或更新。serverlesss.yml 文件简单示例如下,更多配置信息请参见 全量配置文档。

#scf组件配置样例
#全量配置参考https://github.com/serverless-components/tencent-scf/blob/master/docs/configure.md
#组件信息
component: scf # (必填) 引用 component 的名称,当前用到的是 tencent-scf 组件
name: scfdemo # (必填) 创建的实例名称,请修改成您的实例名称
#组件参数
inputs:
 name: ${name}-${stage}-${app} #函数名称
 src: ./  #代码路径
 handler: index.main_handler #入口
 runtime: Nodejs10.15 # 云函数运行时的环境
 region: ap-guangzhou # 云函数所在区域
 events: # 触发器
   - apigw: # 网关触发器
       parameters:
         endpoints:
           - path: /
             method: GET

该 serverless.yml 文件包含如下信息:

组件信息

组件名 是否必选 说明
component component 的名称,可使用 sls registry 命令查询可引入的组件。
name 创建的实例名称,每个组件在部署时将创建一个实例。

参数信息

inputs 下的参数为组件配置参数。一个最简单 SCF 组件参数配置具备以下信息:

参数名 说明
name 云函数名称,同时也作为资源 ID。
src 代码路径。
handler 函数处理方法名称。
runtime 云函数运行环境,目前支持: Python2.7、Python3.6、Nodejs6.10、Nodejs8.9、Nodejs10.15、Nodejs12.16、PHP5、PHP7、Go1、Java8 和 CustomRuntime。
region 云函数所在的区域。
events 触发器。支持的触发器为:timer、apigw、cos、cmq、ckafka 。

常用操作命令

Serverless Framework 框架提供了一套部署编排的操作命令,您可使用相关命令快速部署函数资源。详情请参见 支持命令列表。

使用 sls deploy 命令部署成功的云函数,还可使用云函数组件提供的如下常用操作命令。

注意:

命令必须在 serverless.yml 同目录下执行。

  • 发布函数版本
    执行以下命令,将函数 my-function 云端的 $LATEST 版本发布为一个固定版本。

    sls publish-ver --inputs  function=my-function
  • 创建别名
    执行以下命令,给云函数 my-function 创建别名 routing-alias,路由规则为版本1流量为50%,版本2流量为50%。

    sls create-alias --inputs name=routing-alias  function=my-function  version=1  
    config='{"weights":{"2":0.5}}'
  • 更新别名
    执行以下命令,更新云函数 my-function 别名 routing-alias 的流量规则为版本1流量为10%,版本2流量为90%。

    sls update-alias --inputs name=routing-alias  function=my-function  version=1 config='{"weights":{"2":0.9}}'
  • 列举别名
    执行以下命令,列举云函数 my-function 别名 routing-alias。

    sls list-alias --inputs function=my-function
  • 删除别名
    执行以下命令,删除云函数 my-function 的别名 routing-alias。

    sls delete-alias --inputs name=routing-alias  function=my-function
  • 触发函数
    执行以下命令,云端调用 functionName 函数,并传递 JSON 参数 {"weights":{"2":0.1}}。

    sls invoke  --inputs function=functionName  clientContext='{"weights":{"2":0.1}}'

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
腾讯云代理商
精彩导读
海外云服务器
热门资讯
腾讯云代理商