@cloudbase/cli 2.0.0 → 2.0.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +9 -9
- package/.eslintignore +7 -7
- package/.eslintrc +35 -35
- package/.prettierrc.js +29 -29
- package/.vscode/launch.json +16 -16
- package/LICENSE +5 -5
- package/README.md +35 -35
- package/bin/cloudbase.js +5 -5
- package/bin/tcb.js +6 -4
- package/changelog.md +6 -6
- package/jest.config.js +17 -17
- package/lib/commands/account/login.js +18 -18
- package/lib/commands/storage/storage.js +1 -1
- package/lib/env/login.js +7 -7
- package/lib/run/service/deployPackage.js +6 -4
- package/lib/utils/net/http-request.js +4 -4
- package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +3 -3
- package/package.json +17 -17
- package/post-install.js +61 -61
- package/runtime/nodejs/bootstrap.js +255 -255
- package/runtime/nodejs/runtime.js +183 -183
- package/src/auth/index.ts +1 -1
- package/src/auth/login.ts +91 -91
- package/src/auth/logout.ts +7 -7
- package/src/commands/account/index.ts +2 -2
- package/src/commands/account/login.ts +192 -192
- package/src/commands/account/logout.ts +24 -24
- package/src/commands/common.ts +246 -246
- package/src/commands/env/base.ts +90 -90
- package/src/commands/env/create.ts +92 -92
- package/src/commands/env/domain.ts +186 -186
- package/src/commands/env/index.ts +4 -4
- package/src/commands/env/login.ts +235 -235
- package/src/commands/framework/index.ts +124 -124
- package/src/commands/functions/alias/getRoute.ts +76 -76
- package/src/commands/functions/alias/index.ts +2 -2
- package/src/commands/functions/alias/setRoute.ts +82 -82
- package/src/commands/functions/code-download.ts +100 -100
- package/src/commands/functions/code-update.ts +62 -62
- package/src/commands/functions/concurrency/delete.ts +45 -45
- package/src/commands/functions/concurrency/index.ts +2 -2
- package/src/commands/functions/concurrency/list.ts +58 -58
- package/src/commands/functions/concurrency/set.ts +47 -47
- package/src/commands/functions/config-update.ts +76 -76
- package/src/commands/functions/copy.ts +62 -62
- package/src/commands/functions/delete.ts +79 -79
- package/src/commands/functions/deploy.ts +293 -293
- package/src/commands/functions/detail.ts +138 -138
- package/src/commands/functions/index.ts +16 -16
- package/src/commands/functions/invoke.ts +121 -121
- package/src/commands/functions/layer/bind.ts +182 -182
- package/src/commands/functions/layer/common.ts +8 -8
- package/src/commands/functions/layer/create.ts +49 -49
- package/src/commands/functions/layer/delete.ts +73 -73
- package/src/commands/functions/layer/download.ts +92 -92
- package/src/commands/functions/layer/index.ts +7 -7
- package/src/commands/functions/layer/list.ts +94 -94
- package/src/commands/functions/layer/sort.ts +76 -76
- package/src/commands/functions/list.ts +68 -68
- package/src/commands/functions/log.ts +148 -148
- package/src/commands/functions/run.ts +249 -249
- package/src/commands/functions/trigger-create.ts +79 -79
- package/src/commands/functions/trigger-delete.ts +105 -105
- package/src/commands/functions/version/index.ts +1 -1
- package/src/commands/functions/version/list.ts +73 -73
- package/src/commands/functions/version/publish.ts +43 -43
- package/src/commands/gateway/create.ts +109 -109
- package/src/commands/gateway/delete.ts +81 -81
- package/src/commands/gateway/domain.ts +159 -159
- package/src/commands/gateway/index.ts +5 -5
- package/src/commands/gateway/list.ts +76 -76
- package/src/commands/gateway/switch.ts +107 -107
- package/src/commands/helpers/index.ts +2 -2
- package/src/commands/helpers/init.ts +431 -431
- package/src/commands/helpers/new.ts +117 -117
- package/src/commands/helpers/open.ts +67 -67
- package/src/commands/hosting/hosting.ts +360 -360
- package/src/commands/index.ts +13 -13
- package/src/commands/lowcode/app.ts +34 -34
- package/src/commands/lowcode/comps.ts +322 -322
- package/src/commands/lowcode/index.ts +1 -1
- package/src/commands/lowcode/utils.ts +24 -24
- package/src/commands/run/image/index.ts +4 -4
- package/src/commands/run/standalonegateway/common.ts +7 -7
- package/src/commands/run/standalonegateway/create.ts +85 -85
- package/src/commands/run/standalonegateway/destroy.ts +59 -59
- package/src/commands/run/standalonegateway/index.ts +4 -4
- package/src/commands/run/standalonegateway/list.ts +53 -53
- package/src/commands/run/standalonegateway/package.ts +62 -62
- package/src/commands/run/standalonegateway/turn.ts +63 -63
- package/src/commands/run/version/index.ts +4 -4
- package/src/commands/smart.ts +132 -132
- package/src/commands/storage/storage.ts +464 -464
- package/src/commands/third/thirdAttach.ts +49 -49
- package/src/completion/index.ts +13 -13
- package/src/decorators/captureError.ts +25 -25
- package/src/decorators/constants.ts +12 -12
- package/src/decorators/deprecate.ts +25 -25
- package/src/decorators/guard.ts +42 -42
- package/src/decorators/index.ts +7 -7
- package/src/decorators/injectParams.ts +54 -54
- package/src/decorators/params/common.ts +28 -28
- package/src/decorators/params/index.ts +35 -35
- package/src/env/domain.ts +33 -33
- package/src/env/index.ts +63 -63
- package/src/env/login.ts +80 -80
- package/src/error.ts +36 -36
- package/src/function/alias.ts +43 -43
- package/src/function/base.ts +253 -253
- package/src/function/code.ts +55 -55
- package/src/function/concurrency.ts +57 -57
- package/src/function/create.ts +78 -78
- package/src/function/delete.ts +42 -42
- package/src/function/index.ts +10 -10
- package/src/function/layer/attach.ts +68 -68
- package/src/function/layer/create.ts +63 -63
- package/src/function/layer/delete.ts +21 -21
- package/src/function/layer/download.ts +54 -54
- package/src/function/layer/index.ts +7 -7
- package/src/function/layer/list.ts +32 -32
- package/src/function/layer/sort.ts +24 -24
- package/src/function/trigger.ts +97 -97
- package/src/function/update.ts +35 -35
- package/src/function/version.ts +38 -38
- package/src/function/vpc.ts +22 -22
- package/src/gateway/index.ts +137 -137
- package/src/hosting.ts +212 -212
- package/src/index.ts +13 -13
- package/src/logger.ts +17 -17
- package/src/run/create.ts +23 -23
- package/src/run/delete.ts +15 -15
- package/src/run/image/build.ts +36 -36
- package/src/run/image/delete.ts +13 -13
- package/src/run/image/index.ts +3 -3
- package/src/run/image/info.ts +26 -26
- package/src/run/list.ts +29 -29
- package/src/run/repo.ts +24 -24
- package/src/run/service/deployPackage.ts +6 -4
- package/src/run/standalonegateway/create.ts +24 -24
- package/src/run/standalonegateway/destroy.ts +19 -19
- package/src/run/standalonegateway/index.ts +4 -4
- package/src/run/standalonegateway/list.ts +74 -74
- package/src/run/standalonegateway/package/list.ts +24 -24
- package/src/run/standalonegateway/turn/index.ts +1 -1
- package/src/run/standalonegateway/turn/off.ts +19 -19
- package/src/run/standalonegateway/turn/on.ts +19 -19
- package/src/run/version/create.ts +68 -68
- package/src/run/version/delete.ts +15 -15
- package/src/run/version/index.ts +5 -5
- package/src/run/version/list.ts +16 -16
- package/src/run/version/modify.ts +16 -16
- package/src/run/version/repo.ts +27 -27
- package/src/run/version/update.ts +58 -58
- package/src/storage.ts +114 -114
- package/src/third/index.ts +12 -12
- package/src/utils/auth.ts +15 -15
- package/src/utils/cli-table.ts +23 -23
- package/src/utils/config.ts +39 -39
- package/src/utils/env.ts +244 -244
- package/src/utils/fs/del.ts +5 -5
- package/src/utils/fs/index.ts +71 -71
- package/src/utils/function-packer.ts +97 -97
- package/src/utils/log.ts +81 -81
- package/src/utils/net/cloud-api-request.ts +62 -62
- package/src/utils/net/credential.ts +53 -53
- package/src/utils/net/http-request.ts +84 -84
- package/src/utils/net/index.ts +4 -4
- package/src/utils/net/manager-service.ts +36 -36
- package/src/utils/net/proxy.ts +6 -6
- package/src/utils/notice.ts +28 -28
- package/src/utils/output/highlight.ts +5 -5
- package/src/utils/output/index.ts +2 -2
- package/src/utils/output/link.ts +10 -10
- package/src/utils/output/loading.ts +82 -82
- package/src/utils/parallel.ts +82 -82
- package/src/utils/platform/index.ts +2 -2
- package/src/utils/platform/mac.ts +21 -21
- package/src/utils/platform/os.ts +64 -64
- package/src/utils/platform/port.ts +10 -10
- package/src/utils/progress-bar.ts +38 -38
- package/src/utils/prompt/select.ts +59 -59
- package/src/utils/reporter/agree.ts +20 -20
- package/src/utils/reporter/download.ts +26 -26
- package/src/utils/reporter/index.ts +3 -3
- package/src/utils/reporter/usage.ts +20 -20
- package/src/utils/store/auth.ts +49 -49
- package/src/utils/store/common.ts +8 -8
- package/src/utils/store/db.ts +68 -68
- package/src/utils/store/index.ts +4 -4
- package/src/utils/store/usage.ts +12 -12
- package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +13 -13
- package/src/utils/template.ts +170 -170
- package/src/utils/tools/encoding.ts +8 -8
- package/src/utils/tools/index.ts +4 -4
- package/src/utils/tools/object.ts +33 -33
- package/src/utils/tools/time.ts +38 -38
- package/src/utils/tools/uid.ts +19 -19
- package/templates/html/loginFail.html +90 -90
- package/templates/html/loginSuccess.html +86 -86
- package/templates/server/node/_gitignore +54 -54
- package/templates/server/node/cloudbaserc.json +10 -10
- package/templates/server/node/index.js +5 -5
- package/templates/server/node/package.json +9 -9
- package/tsconfig.json +19 -19
- package/tsconfig.test.json +13 -13
- package/.vscode/settings.json +0 -3
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
import path from 'path'
|
|
2
|
-
import fse from 'fs-extra'
|
|
3
|
-
import inquirer from 'inquirer'
|
|
4
|
-
import { Command, ICommand } from '../common'
|
|
5
|
-
import { CloudBaseError } from '../../error'
|
|
6
|
-
import { InjectParams, CmdContext, ArgsParams } from '../../decorators'
|
|
7
|
-
import { downloadFunctionCode, getFunctionDetail } from '../../function'
|
|
8
|
-
import { loadingFactory, checkFullAccess, delSync, highlightCommand } from '../../utils'
|
|
9
|
-
|
|
10
|
-
@ICommand()
|
|
11
|
-
export class CodeDownload extends Command {
|
|
12
|
-
get options() {
|
|
13
|
-
return {
|
|
14
|
-
cmd: 'fn',
|
|
15
|
-
childCmd: {
|
|
16
|
-
cmd: 'code',
|
|
17
|
-
desc: '函数代码管理'
|
|
18
|
-
},
|
|
19
|
-
childSubCmd: 'download <name> [dest]',
|
|
20
|
-
deprecateCmd: 'functions:download <name> [dest]',
|
|
21
|
-
options: [
|
|
22
|
-
{
|
|
23
|
-
flags: '-e, --envId <envId>',
|
|
24
|
-
desc: '环境 Id'
|
|
25
|
-
},
|
|
26
|
-
{ flags: '-l, --limit <limit>', desc: '返回数据长度,默认值为 20' },
|
|
27
|
-
{
|
|
28
|
-
flags: '--code-secret <codeSecret>',
|
|
29
|
-
desc: '代码加密的函数的 CodeSecret'
|
|
30
|
-
}
|
|
31
|
-
],
|
|
32
|
-
desc: '下载云函数代码'
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
@InjectParams()
|
|
37
|
-
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
38
|
-
const { envId, config, options } = ctx
|
|
39
|
-
const { codeSecret } = options
|
|
40
|
-
|
|
41
|
-
const name = params?.[0]
|
|
42
|
-
const dest = params?.[1]
|
|
43
|
-
|
|
44
|
-
if (!name) {
|
|
45
|
-
throw new CloudBaseError('请指定云函数名称!')
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// 检查函数是否存在
|
|
49
|
-
try {
|
|
50
|
-
await getFunctionDetail({
|
|
51
|
-
envId,
|
|
52
|
-
codeSecret,
|
|
53
|
-
functionName: name
|
|
54
|
-
})
|
|
55
|
-
} catch (e) {
|
|
56
|
-
if (e.code === 'ResourceNotFound.FunctionName') {
|
|
57
|
-
throw new CloudBaseError(
|
|
58
|
-
`云函数 [${name}] 不存在!\n\n使用 ${highlightCommand(
|
|
59
|
-
'cloudbase functions:list'
|
|
60
|
-
)} 命令查看已部署云函数`
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
return
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
let destPath = dest
|
|
67
|
-
|
|
68
|
-
// 没有指定下载路径时,使用函数名作为存储文件夹
|
|
69
|
-
if (!destPath) {
|
|
70
|
-
destPath = path.resolve(config.functionRoot, name)
|
|
71
|
-
// 路径已存在,询问是否覆盖
|
|
72
|
-
if (checkFullAccess(destPath)) {
|
|
73
|
-
const { override } = await inquirer.prompt({
|
|
74
|
-
type: 'confirm',
|
|
75
|
-
name: 'override',
|
|
76
|
-
message: '函数已经存在,是否覆盖原文件?',
|
|
77
|
-
default: false
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
if (!override) {
|
|
81
|
-
throw new CloudBaseError('下载终止!')
|
|
82
|
-
}
|
|
83
|
-
// 删除原文件
|
|
84
|
-
delSync([destPath])
|
|
85
|
-
}
|
|
86
|
-
await fse.ensureDir(destPath)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const loading = loadingFactory()
|
|
90
|
-
loading.start('文件下载中...')
|
|
91
|
-
await downloadFunctionCode({
|
|
92
|
-
envId,
|
|
93
|
-
functionName: name,
|
|
94
|
-
destPath: destPath,
|
|
95
|
-
codeSecret: codeSecret,
|
|
96
|
-
unzip: true
|
|
97
|
-
})
|
|
98
|
-
loading.succeed(`[${name}] 云函数代码下载成功!`)
|
|
99
|
-
}
|
|
100
|
-
}
|
|
1
|
+
import path from 'path'
|
|
2
|
+
import fse from 'fs-extra'
|
|
3
|
+
import inquirer from 'inquirer'
|
|
4
|
+
import { Command, ICommand } from '../common'
|
|
5
|
+
import { CloudBaseError } from '../../error'
|
|
6
|
+
import { InjectParams, CmdContext, ArgsParams } from '../../decorators'
|
|
7
|
+
import { downloadFunctionCode, getFunctionDetail } from '../../function'
|
|
8
|
+
import { loadingFactory, checkFullAccess, delSync, highlightCommand } from '../../utils'
|
|
9
|
+
|
|
10
|
+
@ICommand()
|
|
11
|
+
export class CodeDownload extends Command {
|
|
12
|
+
get options() {
|
|
13
|
+
return {
|
|
14
|
+
cmd: 'fn',
|
|
15
|
+
childCmd: {
|
|
16
|
+
cmd: 'code',
|
|
17
|
+
desc: '函数代码管理'
|
|
18
|
+
},
|
|
19
|
+
childSubCmd: 'download <name> [dest]',
|
|
20
|
+
deprecateCmd: 'functions:download <name> [dest]',
|
|
21
|
+
options: [
|
|
22
|
+
{
|
|
23
|
+
flags: '-e, --envId <envId>',
|
|
24
|
+
desc: '环境 Id'
|
|
25
|
+
},
|
|
26
|
+
{ flags: '-l, --limit <limit>', desc: '返回数据长度,默认值为 20' },
|
|
27
|
+
{
|
|
28
|
+
flags: '--code-secret <codeSecret>',
|
|
29
|
+
desc: '代码加密的函数的 CodeSecret'
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
desc: '下载云函数代码'
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@InjectParams()
|
|
37
|
+
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
38
|
+
const { envId, config, options } = ctx
|
|
39
|
+
const { codeSecret } = options
|
|
40
|
+
|
|
41
|
+
const name = params?.[0]
|
|
42
|
+
const dest = params?.[1]
|
|
43
|
+
|
|
44
|
+
if (!name) {
|
|
45
|
+
throw new CloudBaseError('请指定云函数名称!')
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// 检查函数是否存在
|
|
49
|
+
try {
|
|
50
|
+
await getFunctionDetail({
|
|
51
|
+
envId,
|
|
52
|
+
codeSecret,
|
|
53
|
+
functionName: name
|
|
54
|
+
})
|
|
55
|
+
} catch (e) {
|
|
56
|
+
if (e.code === 'ResourceNotFound.FunctionName') {
|
|
57
|
+
throw new CloudBaseError(
|
|
58
|
+
`云函数 [${name}] 不存在!\n\n使用 ${highlightCommand(
|
|
59
|
+
'cloudbase functions:list'
|
|
60
|
+
)} 命令查看已部署云函数`
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
let destPath = dest
|
|
67
|
+
|
|
68
|
+
// 没有指定下载路径时,使用函数名作为存储文件夹
|
|
69
|
+
if (!destPath) {
|
|
70
|
+
destPath = path.resolve(config.functionRoot, name)
|
|
71
|
+
// 路径已存在,询问是否覆盖
|
|
72
|
+
if (checkFullAccess(destPath)) {
|
|
73
|
+
const { override } = await inquirer.prompt({
|
|
74
|
+
type: 'confirm',
|
|
75
|
+
name: 'override',
|
|
76
|
+
message: '函数已经存在,是否覆盖原文件?',
|
|
77
|
+
default: false
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
if (!override) {
|
|
81
|
+
throw new CloudBaseError('下载终止!')
|
|
82
|
+
}
|
|
83
|
+
// 删除原文件
|
|
84
|
+
delSync([destPath])
|
|
85
|
+
}
|
|
86
|
+
await fse.ensureDir(destPath)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const loading = loadingFactory()
|
|
90
|
+
loading.start('文件下载中...')
|
|
91
|
+
await downloadFunctionCode({
|
|
92
|
+
envId,
|
|
93
|
+
functionName: name,
|
|
94
|
+
destPath: destPath,
|
|
95
|
+
codeSecret: codeSecret,
|
|
96
|
+
unzip: true
|
|
97
|
+
})
|
|
98
|
+
loading.succeed(`[${name}] 云函数代码下载成功!`)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import path from 'path'
|
|
2
|
-
import { Command, ICommand } from '../common'
|
|
3
|
-
import { CloudBaseError } from '../../error'
|
|
4
|
-
import { loadingFactory } from '../../utils'
|
|
5
|
-
import { updateFunctionCode } from '../../function'
|
|
6
|
-
import { InjectParams, CmdContext, ArgsParams } from '../../decorators'
|
|
7
|
-
|
|
8
|
-
@ICommand()
|
|
9
|
-
export class CodeUpdate extends Command {
|
|
10
|
-
get options() {
|
|
11
|
-
return {
|
|
12
|
-
cmd: 'fn',
|
|
13
|
-
childCmd: {
|
|
14
|
-
cmd: 'code',
|
|
15
|
-
desc: '函数代码管理'
|
|
16
|
-
},
|
|
17
|
-
childSubCmd: 'update <name>',
|
|
18
|
-
deprecateCmd: 'functions:code:update <name>',
|
|
19
|
-
options: [
|
|
20
|
-
{
|
|
21
|
-
flags: '-e, --envId <envId>',
|
|
22
|
-
desc: '环境 Id'
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
flags: '--code-secret <codeSecret>',
|
|
26
|
-
desc: '传入此参数将保护代码,格式为 36 位大小写字母和数字'
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
desc: '更新云函数代码'
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@InjectParams()
|
|
34
|
-
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
35
|
-
const { envId, config, options } = ctx
|
|
36
|
-
const { codeSecret } = options
|
|
37
|
-
|
|
38
|
-
const name = params?.[0]
|
|
39
|
-
|
|
40
|
-
if (!name) {
|
|
41
|
-
throw new CloudBaseError('请指定云函数名称!')
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const func = config.functions.find((item) => item.name === name) || { name }
|
|
45
|
-
|
|
46
|
-
const loading = loadingFactory()
|
|
47
|
-
|
|
48
|
-
loading.start(`[${func.name}] 函数代码更新中...`)
|
|
49
|
-
try {
|
|
50
|
-
await updateFunctionCode({
|
|
51
|
-
func,
|
|
52
|
-
envId,
|
|
53
|
-
codeSecret,
|
|
54
|
-
functionRootPath: path.join(process.cwd(), config.functionRoot)
|
|
55
|
-
})
|
|
56
|
-
loading.succeed(`[${func.name}] 函数代码更新成功!`)
|
|
57
|
-
} catch (e) {
|
|
58
|
-
loading.stop()
|
|
59
|
-
throw e
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
1
|
+
import path from 'path'
|
|
2
|
+
import { Command, ICommand } from '../common'
|
|
3
|
+
import { CloudBaseError } from '../../error'
|
|
4
|
+
import { loadingFactory } from '../../utils'
|
|
5
|
+
import { updateFunctionCode } from '../../function'
|
|
6
|
+
import { InjectParams, CmdContext, ArgsParams } from '../../decorators'
|
|
7
|
+
|
|
8
|
+
@ICommand()
|
|
9
|
+
export class CodeUpdate extends Command {
|
|
10
|
+
get options() {
|
|
11
|
+
return {
|
|
12
|
+
cmd: 'fn',
|
|
13
|
+
childCmd: {
|
|
14
|
+
cmd: 'code',
|
|
15
|
+
desc: '函数代码管理'
|
|
16
|
+
},
|
|
17
|
+
childSubCmd: 'update <name>',
|
|
18
|
+
deprecateCmd: 'functions:code:update <name>',
|
|
19
|
+
options: [
|
|
20
|
+
{
|
|
21
|
+
flags: '-e, --envId <envId>',
|
|
22
|
+
desc: '环境 Id'
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
flags: '--code-secret <codeSecret>',
|
|
26
|
+
desc: '传入此参数将保护代码,格式为 36 位大小写字母和数字'
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
desc: '更新云函数代码'
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@InjectParams()
|
|
34
|
+
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
35
|
+
const { envId, config, options } = ctx
|
|
36
|
+
const { codeSecret } = options
|
|
37
|
+
|
|
38
|
+
const name = params?.[0]
|
|
39
|
+
|
|
40
|
+
if (!name) {
|
|
41
|
+
throw new CloudBaseError('请指定云函数名称!')
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const func = config.functions.find((item) => item.name === name) || { name }
|
|
45
|
+
|
|
46
|
+
const loading = loadingFactory()
|
|
47
|
+
|
|
48
|
+
loading.start(`[${func.name}] 函数代码更新中...`)
|
|
49
|
+
try {
|
|
50
|
+
await updateFunctionCode({
|
|
51
|
+
func,
|
|
52
|
+
envId,
|
|
53
|
+
codeSecret,
|
|
54
|
+
functionRootPath: path.join(process.cwd(), config.functionRoot)
|
|
55
|
+
})
|
|
56
|
+
loading.succeed(`[${func.name}] 函数代码更新成功!`)
|
|
57
|
+
} catch (e) {
|
|
58
|
+
loading.stop()
|
|
59
|
+
throw e
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
import { Command, ICommand } from '../../common'
|
|
3
|
-
import { CloudBaseError } from '../../../error'
|
|
4
|
-
import { loadingFactory } from '../../../utils'
|
|
5
|
-
import { deleteProvisionedConcurrencyConfig } from '../../../function'
|
|
6
|
-
import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@ICommand()
|
|
10
|
-
export class deleteProvisionedConcurrency extends Command {
|
|
11
|
-
get options() {
|
|
12
|
-
return {
|
|
13
|
-
cmd: 'fn',
|
|
14
|
-
childCmd: 'delete-provisioned-concurrency <name> <version>',
|
|
15
|
-
options: [
|
|
16
|
-
{
|
|
17
|
-
flags: '-e, --envId <envId>',
|
|
18
|
-
desc: '环境 Id'
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
|
-
desc: '删除函数版本预置并发配置'
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@InjectParams()
|
|
26
|
-
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
27
|
-
const name = params?.[0]
|
|
28
|
-
const version = params?.[1]
|
|
29
|
-
|
|
30
|
-
const {
|
|
31
|
-
envId
|
|
32
|
-
} = ctx
|
|
33
|
-
|
|
34
|
-
const loading = loadingFactory()
|
|
35
|
-
loading.start(`删除函数 [${name}] 预置并发配置中...`)
|
|
36
|
-
|
|
37
|
-
await deleteProvisionedConcurrencyConfig({
|
|
38
|
-
envId,
|
|
39
|
-
functionName: name,
|
|
40
|
-
qualifier: version
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
loading.succeed(`删除函数 [${name}] 预置并发配置成功!`)
|
|
44
|
-
}
|
|
45
|
-
}
|
|
1
|
+
|
|
2
|
+
import { Command, ICommand } from '../../common'
|
|
3
|
+
import { CloudBaseError } from '../../../error'
|
|
4
|
+
import { loadingFactory } from '../../../utils'
|
|
5
|
+
import { deleteProvisionedConcurrencyConfig } from '../../../function'
|
|
6
|
+
import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@ICommand()
|
|
10
|
+
export class deleteProvisionedConcurrency extends Command {
|
|
11
|
+
get options() {
|
|
12
|
+
return {
|
|
13
|
+
cmd: 'fn',
|
|
14
|
+
childCmd: 'delete-provisioned-concurrency <name> <version>',
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
flags: '-e, --envId <envId>',
|
|
18
|
+
desc: '环境 Id'
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
desc: '删除函数版本预置并发配置'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@InjectParams()
|
|
26
|
+
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
27
|
+
const name = params?.[0]
|
|
28
|
+
const version = params?.[1]
|
|
29
|
+
|
|
30
|
+
const {
|
|
31
|
+
envId
|
|
32
|
+
} = ctx
|
|
33
|
+
|
|
34
|
+
const loading = loadingFactory()
|
|
35
|
+
loading.start(`删除函数 [${name}] 预置并发配置中...`)
|
|
36
|
+
|
|
37
|
+
await deleteProvisionedConcurrencyConfig({
|
|
38
|
+
envId,
|
|
39
|
+
functionName: name,
|
|
40
|
+
qualifier: version
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
loading.succeed(`删除函数 [${name}] 预置并发配置成功!`)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './delete'
|
|
2
|
-
export * from './list'
|
|
1
|
+
export * from './delete'
|
|
2
|
+
export * from './list'
|
|
3
3
|
export * from './set'
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
import { Command, ICommand } from '../../common'
|
|
3
|
-
import { CloudBaseError } from '../../../error'
|
|
4
|
-
import { loadingFactory, printHorizontalTable } from '../../../utils'
|
|
5
|
-
import { getProvisionedConcurrencyConfig } from '../../../function'
|
|
6
|
-
import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
|
|
7
|
-
import { StatusMap, ConcurrencyTaskStatus } from '../../../constant'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@ICommand()
|
|
11
|
-
export class getProvisionedConcurrency extends Command {
|
|
12
|
-
get options() {
|
|
13
|
-
return {
|
|
14
|
-
cmd: 'fn',
|
|
15
|
-
childCmd: 'get-provisioned-concurrency <name> [version]',
|
|
16
|
-
options: [
|
|
17
|
-
{
|
|
18
|
-
flags: '-e, --envId <envId>',
|
|
19
|
-
desc: '环境 Id'
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
desc: '获取函数版本预置并发配置'
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@InjectParams()
|
|
27
|
-
async execute(@CmdContext() ctx, @ArgsParams() params, @ArgsOptions() options) {
|
|
28
|
-
const name = params?.[0]
|
|
29
|
-
const version = params?.[1]
|
|
30
|
-
|
|
31
|
-
const {
|
|
32
|
-
envId
|
|
33
|
-
} = ctx
|
|
34
|
-
|
|
35
|
-
const loading = loadingFactory()
|
|
36
|
-
loading.start(`拉取函数 [${name}] 预置并发配置中...`)
|
|
37
|
-
|
|
38
|
-
const res = await getProvisionedConcurrencyConfig({
|
|
39
|
-
envId,
|
|
40
|
-
functionName: name,
|
|
41
|
-
qualifier: version
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
loading.stop()
|
|
45
|
-
|
|
46
|
-
const head: string[] = ['设置并发数', '已完成并发数', '预置任务状态', '状态说明', '版本号']
|
|
47
|
-
|
|
48
|
-
const tableData = res.Allocated.map((item) => [
|
|
49
|
-
item.AllocatedProvisionedConcurrencyNum,
|
|
50
|
-
item.AvailableProvisionedConcurrencyNum,
|
|
51
|
-
ConcurrencyTaskStatus[item.Status] || '无',
|
|
52
|
-
item.StatusReason,
|
|
53
|
-
item.Qualifier
|
|
54
|
-
])
|
|
55
|
-
|
|
56
|
-
printHorizontalTable(head, tableData)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
1
|
+
|
|
2
|
+
import { Command, ICommand } from '../../common'
|
|
3
|
+
import { CloudBaseError } from '../../../error'
|
|
4
|
+
import { loadingFactory, printHorizontalTable } from '../../../utils'
|
|
5
|
+
import { getProvisionedConcurrencyConfig } from '../../../function'
|
|
6
|
+
import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
|
|
7
|
+
import { StatusMap, ConcurrencyTaskStatus } from '../../../constant'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@ICommand()
|
|
11
|
+
export class getProvisionedConcurrency extends Command {
|
|
12
|
+
get options() {
|
|
13
|
+
return {
|
|
14
|
+
cmd: 'fn',
|
|
15
|
+
childCmd: 'get-provisioned-concurrency <name> [version]',
|
|
16
|
+
options: [
|
|
17
|
+
{
|
|
18
|
+
flags: '-e, --envId <envId>',
|
|
19
|
+
desc: '环境 Id'
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
desc: '获取函数版本预置并发配置'
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@InjectParams()
|
|
27
|
+
async execute(@CmdContext() ctx, @ArgsParams() params, @ArgsOptions() options) {
|
|
28
|
+
const name = params?.[0]
|
|
29
|
+
const version = params?.[1]
|
|
30
|
+
|
|
31
|
+
const {
|
|
32
|
+
envId
|
|
33
|
+
} = ctx
|
|
34
|
+
|
|
35
|
+
const loading = loadingFactory()
|
|
36
|
+
loading.start(`拉取函数 [${name}] 预置并发配置中...`)
|
|
37
|
+
|
|
38
|
+
const res = await getProvisionedConcurrencyConfig({
|
|
39
|
+
envId,
|
|
40
|
+
functionName: name,
|
|
41
|
+
qualifier: version
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
loading.stop()
|
|
45
|
+
|
|
46
|
+
const head: string[] = ['设置并发数', '已完成并发数', '预置任务状态', '状态说明', '版本号']
|
|
47
|
+
|
|
48
|
+
const tableData = res.Allocated.map((item) => [
|
|
49
|
+
item.AllocatedProvisionedConcurrencyNum,
|
|
50
|
+
item.AvailableProvisionedConcurrencyNum,
|
|
51
|
+
ConcurrencyTaskStatus[item.Status] || '无',
|
|
52
|
+
item.StatusReason,
|
|
53
|
+
item.Qualifier
|
|
54
|
+
])
|
|
55
|
+
|
|
56
|
+
printHorizontalTable(head, tableData)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
import { Command, ICommand } from '../../common'
|
|
3
|
-
import { CloudBaseError } from '../../../error'
|
|
4
|
-
import { loadingFactory } from '../../../utils'
|
|
5
|
-
import { setProvisionedConcurrencyConfig } from '../../../function'
|
|
6
|
-
import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@ICommand()
|
|
10
|
-
export class setProvisionedConcurrency extends Command {
|
|
11
|
-
get options() {
|
|
12
|
-
return {
|
|
13
|
-
cmd: 'fn',
|
|
14
|
-
childCmd: 'set-provisioned-concurrency <name> <version> <concurrency>',
|
|
15
|
-
options: [
|
|
16
|
-
{
|
|
17
|
-
flags: '-e, --envId <envId>',
|
|
18
|
-
desc: '环境 Id'
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
|
-
desc: '设置函数版本预置并发'
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@InjectParams()
|
|
26
|
-
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
27
|
-
const name = params?.[0]
|
|
28
|
-
const version = params?.[1]
|
|
29
|
-
const concurrency = Number(params?.[2] || 0)
|
|
30
|
-
|
|
31
|
-
const {
|
|
32
|
-
envId
|
|
33
|
-
} = ctx
|
|
34
|
-
|
|
35
|
-
const loading = loadingFactory()
|
|
36
|
-
loading.start(`配置函数 [${name}] 预置并发中...`)
|
|
37
|
-
|
|
38
|
-
await setProvisionedConcurrencyConfig({
|
|
39
|
-
envId,
|
|
40
|
-
functionName: name,
|
|
41
|
-
qualifier: version,
|
|
42
|
-
versionProvisionedConcurrencyNum: concurrency
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
loading.succeed(`配置函数 [${name}] 预置并发成功!`)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
|
|
2
|
+
import { Command, ICommand } from '../../common'
|
|
3
|
+
import { CloudBaseError } from '../../../error'
|
|
4
|
+
import { loadingFactory } from '../../../utils'
|
|
5
|
+
import { setProvisionedConcurrencyConfig } from '../../../function'
|
|
6
|
+
import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@ICommand()
|
|
10
|
+
export class setProvisionedConcurrency extends Command {
|
|
11
|
+
get options() {
|
|
12
|
+
return {
|
|
13
|
+
cmd: 'fn',
|
|
14
|
+
childCmd: 'set-provisioned-concurrency <name> <version> <concurrency>',
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
flags: '-e, --envId <envId>',
|
|
18
|
+
desc: '环境 Id'
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
desc: '设置函数版本预置并发'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@InjectParams()
|
|
26
|
+
async execute(@CmdContext() ctx, @ArgsParams() params) {
|
|
27
|
+
const name = params?.[0]
|
|
28
|
+
const version = params?.[1]
|
|
29
|
+
const concurrency = Number(params?.[2] || 0)
|
|
30
|
+
|
|
31
|
+
const {
|
|
32
|
+
envId
|
|
33
|
+
} = ctx
|
|
34
|
+
|
|
35
|
+
const loading = loadingFactory()
|
|
36
|
+
loading.start(`配置函数 [${name}] 预置并发中...`)
|
|
37
|
+
|
|
38
|
+
await setProvisionedConcurrencyConfig({
|
|
39
|
+
envId,
|
|
40
|
+
functionName: name,
|
|
41
|
+
qualifier: version,
|
|
42
|
+
versionProvisionedConcurrencyNum: concurrency
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
loading.succeed(`配置函数 [${name}] 预置并发成功!`)
|
|
46
|
+
}
|
|
47
|
+
}
|