跳到主要内容

云函数操作指引

1.编写云函数

本地开发云函数 2.0 可以参考以下文档:

2.部署云函数

2.1. 下载自定义代码发布上传工具

需要下载云函数发布上传工具private-cloud-function(简称 pcf)


# 1. linux系统
## 1.1 下载地址:https://software-1302110647.cos.ap-guangzhou.myqcloud.com/rc/lastest/tools/amd64/linux/pcf
## 1.2 使其可执行:
chmod +x pcf

# 2. windows 系统
## 2.1 下载地址:
https://software-1302110647.cos.ap-guangzhou.myqcloud.com/rc/lastest/tools/amd64/windows/pcf.exe

# 3. macOS 系统
## 3.1 下载地址:
https://software-1302110647.cos.ap-guangzhou.myqcloud.com/rc/lastest/tools/amd64/macOS/pcf
## 3.2 使其可执行:
chmod +x pcf

说明

对于 windows 系统, 可以按住键盘的 win+r 打开命令行, 下载 windows 命令行工具 pcf.exe:执行时./pcf 换成.\pcf.exe(请在命令行所在目录下执行)

2.2. 添加登录信息


aliasname 为 host 的别名, 如果不填写则为默认主机 default【微搭访问地址, 不同的主机代表不同环境下 weda 环境
./pcf add-host <aliasname> --host=<登录地址> --username=<用户名称> --password=<密码>

# 例如:./pcf add-host --host=http://192.135.35.80 --username=admin --password="Weda@xxx"

2.3. 上传云函数

提示

funcname 为函数的识别名


./pcf func push <funcname> --alias=<aliasname> --path=<代码路径>

# 示例:https://github.com/TencentCloudBase/func-v2-template将其下载下来, 本地测试通过后,上传至软件化, 即执行下面命令:

# ./pcf func push test1 --path="/data/code/func-v2-template"

2.4. 发布云函数


./pcf func deploy <funcname> --alias=<aliasname>

# 返回: 部署成功或者失败

## 示例:funcname 为 test1

# ./pcf func deploy test1

3 APIs 中调用云函数

3.1. 选择 APIs 类型

APIs 方法请求类型选择 HTTP 请求

3.2. 创建 APIs 方法

1) URL:填写 http://func-server:3000

2)Method:选择你编写的接口对应的方法:例如: POST/GET 等(取决于云函数代码中定义的方法)

3.3. 方法测试

4.其他子命令使用方法

4.1. 删除登录信息

./pcf del-host <aliasname>

4.2. 查询云函数列表

./pcf func list --alias=<aliasname>

# 返回: 返回函数列表,通知只能有一个函数生效[已发布,其他的都为未发布]

4.3. 删除云函数

./pcf func del <funcname> --alias=<aliasname>

5 排查问题

5.1. 查看服务级别日志

如果云函数语法错误则发布后,在 2.5.3 会报错,此时则需要查看 func-server 容器的日志:

单机版:

查看报错日志 docker logs -f -n 100 func-sevrer

集群版:

kubectl -nsoftware logs -f --tail=100 <func-server>

### func-server 可以通过下面的命令查看具体名称:
kubectl -nsoftware get po | grep func-server

例如:语法或者缺少依赖时报错, 这个错是缺少依赖, 需要在上传代码时,在本地运行通过【必然下载依赖】:

5.2. 查看用户级日志

登录 func-server 容器, 在下面两个目录中:

/workspace/logs/accesslog*.log
/workspace/logs/usercodelog*.log

如何进入容器中?

  • 单机版:

docker exec -it func-server bash

  • 集群版:
### 1 首先:func-server 可以通过下面的命令查看具体名称:
kubectl -nsoftware get po | grep func-server
### 2 执行:
kubectl -nsoftware exec -it <1 中查出来的名称> -c func-server bash