Skip to content
This repository was archived by the owner on May 6, 2025. It is now read-only.

Commit b4c4242

Browse files
committed
feat: add invoke function log & update log
1 parent a81c383 commit b4c4242

6 files changed

Lines changed: 68 additions & 41 deletions

File tree

README.md

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Cloudbase 命令行工具
1+
# Cloudbase 命令行工具 ![npm (tag)](https://img.shields.io/npm/v/@cloudbase/cli) ![npm (tag)](https://img.shields.io/npm/v/@cloudbase/cli/beta)
22

33
Cloudbase 命令行工具。
44

@@ -21,7 +21,7 @@ tcb init
2121

2222
#### 关于 TCB 项目
2323

24-
TCB 项目是和 TCB 环境资源关联的实体,TCB 项目聚合了云函数、数据库、文件存储等服务,你可以在 TCB 项目中编写函数,存储文件,并通过 `cloudbase cli` 快速的操作你的云函数、文件存储、数据库等资源。
24+
TCB 项目是和 TCB 环境资源关联的实体,TCB 项目聚合了云函数、数据库、文件存储等服务,您可以在 TCB 项目中编写函数,存储文件,并通过 `cloudbase cli` 快速的操作您的云函数、文件存储、数据库等资源。
2525

2626
TCB 项目文件结构:
2727

@@ -160,33 +160,34 @@ tcb -h
160160
Usage: tcb [options] [command]
161161
162162
Options:
163-
-V, --version output the version number
164-
-h, --help output usage information
163+
-V, --version output the version number
164+
-h, --help output usage information
165165
166166
Commands:
167-
init [options] 创建并初始化一个新的项目
168-
login [options] 登录腾讯云账号
169-
logout 登出腾讯云账号
170-
env:list 列出云开发所有环境
171-
env:create <alias> 创建新的云环境
172-
env:domain:list [envId] 列出环境的安全域名列表
173-
env:domain:create <domain> [envId] 添加环境安全域名,多个以斜杠 / 分隔
174-
env:domain:delete [envId] 删除环境的安全域名
175-
functions:deploy [options] [functionName] [envId] 创建云函数
176-
functions:code:update <functionName> [envId] 创建云函数
177-
functions:list [options] [envId] 展示云函数列表
178-
functions:delete [functionName] [envId] 删除云函数
179-
functions:detail [functionName] [envId] 获取云函数信息
180-
functions:log [options] <functionName> [envId] 打印云函数日志
181-
functions:config:update [functionName] [envId] 更新云函数配置
182-
functions:trigger:create [functionName] [envId] 创建云函数触发器
183-
functions:trigger:delete [functionName] [triggerName] [envId] 删除云函数触发器
184-
functions:invoke [functionName] [params] [envId] 触发云函数
185-
server:deploy [name] 部署 node 服务
186-
server:log [options] <name> 查看日志
187-
server:reload <name> 重启 node 服务
188-
server:stop <name> 停止应用
189-
server:show 查看状态
167+
init [options] 创建并初始化一个新的项目
168+
login [options] 登录腾讯云账号
169+
logout 登出腾讯云账号
170+
env:list 列出云开发所有环境
171+
env:create <alias> 创建新的云环境
172+
env:domain:list [envId] 列出环境的安全域名列表
173+
env:domain:create <domain> [envId] 添加环境安全域名,多个以斜杠 / 分隔
174+
env:domain:delete [envId] 删除环境的安全域名
175+
functions:deploy [options] [functionName] [envId] 创建云函数
176+
functions:code:update <functionName> [envId] 创建云函数
177+
functions:list [options] [envId] 展示云函数列表
178+
functions:delete [functionName] [envId] 删除云函数
179+
functions:detail [functionName] [envId] 获取云函数信息
180+
functions:log [options] <functionName> [envId] 打印云函数日志
181+
functions:config:update [functionName] [envId] 更新云函数配置
182+
functions:trigger:create [functionName] [envId] 创建云函数触发器
183+
functions:trigger:delete [functionName] [triggerName] [envId] 删除云函数触发器
184+
functions:invoke [functionName] [params] [envId] 触发云函数
185+
functions:copy [options] <functionName> <newFunctionName> [envId] [targentEnvId] 创建云函数
186+
server:deploy [name] 部署 node 服务
187+
server:log [options] <name> 查看日志
188+
server:reload <name> 重启 node 服务
189+
server:stop <name> 停止应用
190+
server:show 查看状态
190191
```
191192

192193
### 编程式使用
@@ -497,3 +498,16 @@ tcb functions:trigger:delete app myTrigger
497498
```
498499

499500
![](docs/img/func-triggerd.png)
501+
502+
### functions:copy
503+
504+
完整命令:`functions:copy [options] <functionName> <newFunctionName> [envId] [targentEnvId]`
505+
506+
`functions:copy` 命令用于复制一个函数。使用 `functions:copy` 命令时需要指定原函数名称,复制后新的函数名称。当前环境 Id 和目标环境环境 Id 是可选的,如果没有指定目标环境 Id,函数会被复制到当前环境中。
507+
508+
`functions:copy` 命令包含了一个可选的选项:
509+
510+
```
511+
--force 如果目标环境下已有同名函数,则覆盖
512+
```
513+

docs/api.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ client
2828
```js
2929
[
3030
{
31-
envId: 'dev-97eb6c',
31+
envId: 'dev-xxx',
3232
packageName: '基础版',
3333
source: 'qcloud',
3434
createTime: '2019-06-20 13:24:51'
@@ -251,7 +251,7 @@ deleted: number
251251
{ Key: '', Value: '' }
252252
]
253253
},
254-
Namespace: 'dev-97eb6c',
254+
Namespace: 'dev-xxx',
255255
Status: 'Active',
256256
Triggers: [
257257
{
@@ -348,10 +348,27 @@ deleted: number
348348

349349
```js
350350
{
351-
envId: 'dev-97eb6c',
351+
envId: 'dev-xxx',
352352
functionName: 'app',
353353
triggerName: 'myTrigger'
354354
}
355355
```
356356

357357
响应:void
358+
359+
360+
#### functions.copy(options)
361+
362+
参数
363+
364+
```js
365+
{
366+
envId: 'string',
367+
functionName: 'string',
368+
newFunctionName: 'string',
369+
targetEnvId: 'string',
370+
force: false
371+
}
372+
```
373+
374+
响应:void

lib/function/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,8 @@ async function invokeFunction(options) {
423423
const _params = {
424424
FunctionName: functionName,
425425
Namespace: envId,
426-
ClientContext: JSON.stringify(params)
426+
ClientContext: JSON.stringify(params),
427+
LogType: 'Tail'
427428
};
428429
try {
429430
const { Result } = await scfService.request('Invoke', _params);

lib/utils/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ async function resolveTcbrcConfig() {
181181
exports.resolveTcbrcConfig = resolveTcbrcConfig;
182182
async function getEnvId(envId) {
183183
const tcbrc = await resolveTcbrcConfig();
184-
const assignEnvId = tcbrc.envId || envId;
184+
const assignEnvId = envId || tcbrc.envId;
185185
if (!assignEnvId) {
186186
throw new error_1.TcbError('未识别到有效的环境 Id 变量,请在项目根目录进行操作或通过 envId 参数指定环境 Id');
187187
}

src/function/index.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,8 @@ export async function invokeFunction(
553553
const _params: any = {
554554
FunctionName: functionName,
555555
Namespace: envId,
556-
ClientContext: JSON.stringify(params)
556+
ClientContext: JSON.stringify(params),
557+
LogType: 'Tail'
557558
}
558559

559560
try {
@@ -599,13 +600,7 @@ interface ICopyFunctionOptions {
599600

600601
// 复制云函数
601602
export async function copyFunction(options: ICopyFunctionOptions) {
602-
const {
603-
envId,
604-
functionName,
605-
newFunctionName,
606-
targetEnvId,
607-
force
608-
} = options
603+
const { envId, functionName, newFunctionName, targetEnvId, force } = options
609604

610605
if (!envId || !functionName || !newFunctionName) {
611606
throw new TcbError('参数缺失')

src/utils/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ export async function resolveTcbrcConfig() {
194194
export async function getEnvId(envId: string): Promise<string> {
195195
const tcbrc = await resolveTcbrcConfig()
196196
// 命令行 envId 可以覆盖配置文件 envId
197-
const assignEnvId = tcbrc.envId || envId
197+
const assignEnvId = envId || tcbrc.envId
198198
if (!assignEnvId) {
199199
throw new TcbError(
200200
'未识别到有效的环境 Id 变量,请在项目根目录进行操作或通过 envId 参数指定环境 Id'

0 commit comments

Comments
 (0)