@cloudbase/cli 1.9.9 → 1.10.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.
Files changed (61) hide show
  1. package/lib/commands/common.js +3 -9
  2. package/lib/commands/functions/alias/getRoute.js +98 -0
  3. package/lib/commands/functions/alias/index.js +14 -0
  4. package/lib/commands/functions/alias/setRoute.js +100 -0
  5. package/lib/commands/functions/concurrency/delete.js +70 -0
  6. package/lib/commands/functions/concurrency/index.js +15 -0
  7. package/lib/commands/functions/concurrency/list.js +81 -0
  8. package/lib/commands/functions/concurrency/set.js +72 -0
  9. package/lib/commands/functions/index.js +3 -0
  10. package/lib/commands/functions/list.js +2 -8
  11. package/lib/commands/functions/version/index.js +14 -0
  12. package/lib/commands/functions/version/list.js +96 -0
  13. package/lib/commands/functions/version/publish.js +70 -0
  14. package/lib/commands/lowcode/comps.js +4 -115
  15. package/lib/commands/storage/storage.js +5 -20
  16. package/lib/constant.js +23 -1
  17. package/lib/function/alias.js +53 -0
  18. package/lib/function/concurrency.js +69 -0
  19. package/lib/function/index.js +3 -0
  20. package/lib/function/version.js +51 -0
  21. package/lib/storage.js +2 -5
  22. package/package.json +3 -3
  23. package/src/commands/functions/alias/getRoute.ts +76 -0
  24. package/src/commands/functions/alias/index.ts +2 -0
  25. package/src/commands/functions/alias/setRoute.ts +82 -0
  26. package/src/commands/functions/concurrency/delete.ts +45 -0
  27. package/src/commands/functions/concurrency/index.ts +3 -0
  28. package/src/commands/functions/concurrency/list.ts +58 -0
  29. package/src/commands/functions/concurrency/set.ts +47 -0
  30. package/src/commands/functions/index.ts +3 -0
  31. package/src/commands/functions/list.ts +1 -8
  32. package/src/commands/functions/version/index.ts +2 -0
  33. package/src/commands/functions/version/list.ts +73 -0
  34. package/src/commands/functions/version/publish.ts +43 -0
  35. package/src/constant.ts +24 -0
  36. package/src/function/alias.ts +43 -0
  37. package/src/function/concurrency.ts +57 -0
  38. package/src/function/index.ts +4 -1
  39. package/src/function/version.ts +39 -0
  40. package/src/types.ts +95 -0
  41. package/types/commands/common.d.ts +0 -1
  42. package/types/commands/functions/alias/getRoute.d.ts +13 -0
  43. package/types/commands/functions/alias/index.d.ts +2 -0
  44. package/types/commands/functions/alias/setRoute.d.ts +13 -0
  45. package/types/commands/functions/concurrency/delete.d.ts +13 -0
  46. package/types/commands/functions/concurrency/index.d.ts +3 -0
  47. package/types/commands/functions/concurrency/list.d.ts +13 -0
  48. package/types/commands/functions/concurrency/set.d.ts +13 -0
  49. package/types/commands/functions/index.d.ts +3 -0
  50. package/types/commands/functions/version/index.d.ts +2 -0
  51. package/types/commands/functions/version/list.d.ts +13 -0
  52. package/types/commands/functions/version/publish.d.ts +13 -0
  53. package/types/commands/lowcode/comps.d.ts +3 -26
  54. package/types/commands/storage/storage.d.ts +1 -1
  55. package/types/constant.d.ts +16 -0
  56. package/types/function/alias.d.ts +3 -0
  57. package/types/function/concurrency.d.ts +4 -0
  58. package/types/function/index.d.ts +3 -0
  59. package/types/function/version.d.ts +3 -0
  60. package/types/storage.d.ts +0 -3
  61. package/types/types.d.ts +82 -0
@@ -0,0 +1,82 @@
1
+
2
+ import { Command, ICommand } from '../../common'
3
+ import { CloudBaseError } from '../../../error'
4
+ import { loadingFactory } from '../../../utils'
5
+ import { setFunctionAliasConfig } from '../../../function'
6
+ import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
7
+
8
+
9
+ @ICommand()
10
+ export class setFunctionRoutingConfig extends Command {
11
+ get options() {
12
+ return {
13
+ cmd: 'fn',
14
+ childCmd: 'config-route <name> <version1> <traffic1> [version2] [traffic2]',
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 version1 = params?.[1]
29
+ const traffic1 = Number(params?.[2])
30
+
31
+ const version2 = params?.[3]
32
+ const traffic2 = Number(params?.[4])
33
+
34
+ // 校验
35
+
36
+ // 1. version2 及 traffic2 必须同时存在
37
+ if ((version2 === undefined && traffic2 !== undefined) || (version2 !== undefined && traffic2 === undefined)) {
38
+ throw new CloudBaseError('version2 和 traffic2 必须同时设置')
39
+ }
40
+
41
+ if (traffic1 !== undefined && traffic2 !== undefined) {
42
+ if (traffic1 + traffic2 !== 100) {
43
+ throw new CloudBaseError('traffic1 和 traffic2 同时设置时,需保证总和 100')
44
+ }
45
+ }
46
+
47
+ const {
48
+ envId
49
+ } = ctx
50
+
51
+ const loading = loadingFactory()
52
+ loading.start(`设置函数 [${name}] 版本流量配置中...`)
53
+
54
+ let routingConfigParams = {
55
+ AddtionVersionMatchs: [{
56
+ Expression: `[0,${traffic1})`,
57
+ Key: "invoke.headers.X-Tcb-Route-Key",
58
+ Method: "range",
59
+ Version: version1
60
+ }]
61
+ }
62
+
63
+ if (version2 !== undefined) {
64
+ routingConfigParams.AddtionVersionMatchs.push({
65
+ Expression: `[${traffic1},${100})`,
66
+ Key: "invoke.headers.X-Tcb-Route-Key",
67
+ Method: "range",
68
+ Version: version2
69
+ })
70
+ }
71
+
72
+ await setFunctionAliasConfig({
73
+ envId,
74
+ functionName: name,
75
+ name: '$DEFAULT',
76
+ functionVersion: '$LATEST',
77
+ routingConfig: routingConfigParams
78
+ })
79
+
80
+ loading.succeed(`设置函数 [${name}] 版本流量配置成功!`)
81
+ }
82
+ }
@@ -0,0 +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
+ }
@@ -0,0 +1,3 @@
1
+ export * from './delete'
2
+ export * from './list'
3
+ export * from './set'
@@ -0,0 +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
+ }
@@ -0,0 +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
+ }
@@ -11,3 +11,6 @@ export * from './trigger-create'
11
11
  export * from './trigger-delete'
12
12
  export * from './code-update'
13
13
  export * from './code-download'
14
+ export * from './version'
15
+ export * from './concurrency'
16
+ export * from './alias'
@@ -3,14 +3,7 @@ import { CloudBaseError } from '../../error'
3
3
  import { listFunction } from '../../function'
4
4
  import { printHorizontalTable, loadingFactory } from '../../utils'
5
5
  import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
6
-
7
- const StatusMap = {
8
- Active: '部署完成',
9
- Creating: '创建中',
10
- CreateFailed: '创建失败',
11
- Updating: '更新中',
12
- UpdateFailed: '更新失败'
13
- }
6
+ import { StatusMap } from '../../constant'
14
7
 
15
8
  @ICommand()
16
9
  export class ListFunction extends Command {
@@ -0,0 +1,2 @@
1
+ export * from './publish'
2
+ export * from './list'
@@ -0,0 +1,73 @@
1
+
2
+ import { Command, ICommand } from '../../common'
3
+ import { CloudBaseError } from '../../../error'
4
+ import { loadingFactory, printHorizontalTable } from '../../../utils'
5
+ import { listFunctionVersions } from '../../../function'
6
+ import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
7
+ import { StatusMap } from '../../../constant'
8
+
9
+
10
+ @ICommand()
11
+ export class ListFunctionVersion extends Command {
12
+ get options() {
13
+ return {
14
+ cmd: 'fn',
15
+ childCmd: 'list-function-versions <name>',
16
+ options: [
17
+ {
18
+ flags: '-e, --envId <envId>',
19
+ desc: '环境 Id'
20
+ },
21
+ { flags: '-l, --limit <limit>', desc: '返回数据长度,默认值为 20' },
22
+ {
23
+ flags: '-o, --offset <offset>',
24
+ desc: '数据偏移量,默认值为 0'
25
+ }
26
+ ],
27
+ desc: '展示函数版本列表'
28
+ }
29
+ }
30
+
31
+ @InjectParams()
32
+ async execute(@CmdContext() ctx, @ArgsParams() params, @ArgsOptions() options) {
33
+ const name = params?.[0]
34
+ let { limit = 20, offset = 0 } = options
35
+ limit = Number(limit)
36
+ offset = Number(offset)
37
+ if (!Number.isInteger(limit) || !Number.isInteger(offset)) {
38
+ throw new CloudBaseError('limit 和 offset 必须为整数')
39
+ }
40
+
41
+ if (limit < 0 || offset < 0) {
42
+ throw new CloudBaseError('limit 和 offset 必须为大于 0 的整数')
43
+ }
44
+
45
+ const {
46
+ envId
47
+ } = ctx
48
+
49
+ const loading = loadingFactory()
50
+ loading.start(`拉取函数 [${name}] 版本列表中...`)
51
+
52
+ const res = await listFunctionVersions({
53
+ envId,
54
+ functionName: name,
55
+ offset,
56
+ limit
57
+ })
58
+
59
+ loading.stop()
60
+
61
+ const head: string[] = ['版本', '描述', '创建时间', '修改时间', '状态']
62
+
63
+ const tableData = res.Versions.map((item) => [
64
+ item.Version,
65
+ item.Description,
66
+ item.AddTime,
67
+ item.ModTime,
68
+ StatusMap[item.Status]
69
+ ])
70
+
71
+ printHorizontalTable(head, tableData)
72
+ }
73
+ }
@@ -0,0 +1,43 @@
1
+
2
+ import { Command, ICommand } from '../../common'
3
+ import { CloudBaseError } from '../../../error'
4
+ import { loadingFactory } from '../../../utils'
5
+ import { publishVersion } from '../../../function'
6
+ import { InjectParams, CmdContext, ArgsParams } from '../../../decorators'
7
+
8
+ @ICommand()
9
+ export class PublishFunctionVersion extends Command {
10
+ get options() {
11
+ return {
12
+ cmd: 'fn',
13
+ childCmd: 'publish-version <name> [description]',
14
+ options: [
15
+ {
16
+ flags: '-e, --envId <envId>',
17
+ desc: '环境 Id'
18
+ }
19
+ ],
20
+ desc: '发布函数新版本'
21
+ }
22
+ }
23
+
24
+ @InjectParams()
25
+ async execute(@CmdContext() ctx, @ArgsParams() params) {
26
+ const name = params?.[0]
27
+ const description = params?.[1]
28
+ const {
29
+ envId
30
+ } = ctx
31
+
32
+ const loading = loadingFactory()
33
+ loading.start(`发布函数 [${name}] 新版本中...`)
34
+
35
+ await publishVersion({
36
+ envId,
37
+ functionName: name,
38
+ description
39
+ })
40
+
41
+ loading.succeed(`发布函数 [${name}] 新版本成功!`)
42
+ }
43
+ }
package/src/constant.ts CHANGED
@@ -68,6 +68,12 @@ export const ALL_COMMANDS = [
68
68
  'fn trigger create',
69
69
  'fn trigger delete',
70
70
  'fn invoke',
71
+ 'fn publish-version',
72
+ 'fn list-function-versions',
73
+ 'fn put-provisioned-concurrency',
74
+ 'fn get-provisioned-concurrency',
75
+ 'fn delete-provisioned-concurrency',
76
+ 'fn config-route',
71
77
  'functions run',
72
78
  'storage upload',
73
79
  'storage download',
@@ -94,3 +100,21 @@ export const ALL_COMMANDS = [
94
100
  'run standalonegateway turn on',
95
101
  'run standalonegateway turn off',
96
102
  ]
103
+
104
+ export const StatusMap = {
105
+ Active: '部署完成',
106
+ Creating: '创建中',
107
+ CreateFailed: '创建失败',
108
+ Updating: '更新中',
109
+ UpdateFailed: '更新失败',
110
+ Publishing: '函数版本发布中',
111
+ PublishFailed: '函数版本发布失败',
112
+ Deleting: '函数删除中',
113
+ DeleteFailed: '函数删除失败'
114
+ }
115
+
116
+ export const ConcurrencyTaskStatus = {
117
+ Done: '已完成',
118
+ InProgress: '进行中',
119
+ Failed: '失败'
120
+ }
@@ -0,0 +1,43 @@
1
+ import { CloudBaseError } from '../error'
2
+ import { IUpdateFunctionAliasConfig, IGetFunctionAlias, IGetFunctionAliasRes } from '../types'
3
+ import { getFunctionService } from './base'
4
+
5
+ // 设置函数流量配置信息(ALIAS 配置)
6
+ export async function setFunctionAliasConfig(options: IUpdateFunctionAliasConfig) {
7
+ const { envId, functionName, name, functionVersion, description, routingConfig } = options
8
+
9
+ const scfService = await getFunctionService(envId)
10
+
11
+ try {
12
+ await scfService.updateFunctionAliasConfig({
13
+ functionName,
14
+ name,
15
+ functionVersion,
16
+ description,
17
+ routingConfig
18
+ })
19
+ } catch (e) {
20
+ throw new CloudBaseError(`[${functionName}] 设置函数流量配置失败: ${e.message}`, {
21
+ code: e.code
22
+ })
23
+ }
24
+ }
25
+
26
+ // 查询函数别名配置信息
27
+ export async function getFunctionAliasConfig(options: IGetFunctionAlias): Promise<IGetFunctionAliasRes> {
28
+ const { envId, functionName, name } = options
29
+
30
+ const scfService = await getFunctionService(envId)
31
+
32
+ try {
33
+ return scfService.getFunctionAlias({
34
+ functionName,
35
+ name
36
+ })
37
+ } catch (e) {
38
+ throw new CloudBaseError(`[${functionName}] 查询函数别名配置失败: ${e.message}`, {
39
+ code: e.code
40
+ })
41
+ }
42
+ }
43
+
@@ -0,0 +1,57 @@
1
+ import { CloudBaseError } from '../error'
2
+ import { ISetProvisionedConcurrencyConfig, IGetProvisionedConcurrencyConfig, IGetProvisionedConcurrencyRes, IFunctionVersionsRes } from '../types'
3
+ import { getFunctionService } from './base'
4
+
5
+ // 设置函数预置并发
6
+ export async function setProvisionedConcurrencyConfig(options: ISetProvisionedConcurrencyConfig) {
7
+ const { envId, functionName, qualifier, versionProvisionedConcurrencyNum } = options
8
+
9
+ const scfService = await getFunctionService(envId)
10
+
11
+ try {
12
+ await scfService.setProvisionedConcurrencyConfig({
13
+ functionName,
14
+ qualifier,
15
+ versionProvisionedConcurrencyNum
16
+ })
17
+ } catch (e) {
18
+ throw new CloudBaseError(`[${functionName}] 设置函数预置并发失败: ${e.message}`, {
19
+ code: e.code
20
+ })
21
+ }
22
+ }
23
+
24
+ // 查看函数预置并发
25
+ export async function getProvisionedConcurrencyConfig(options: IGetProvisionedConcurrencyConfig): Promise<IGetProvisionedConcurrencyRes> {
26
+ const { envId, functionName, qualifier } = options
27
+ const scfService = await getFunctionService(envId)
28
+
29
+ try {
30
+ return scfService.getProvisionedConcurrencyConfig({
31
+ functionName,
32
+ qualifier,
33
+ })
34
+ } catch (e) {
35
+ throw new CloudBaseError(`[${functionName}] 查看函数预置并发信息失败: ${e.message}`, {
36
+ code: e.code
37
+ })
38
+ }
39
+ }
40
+
41
+ // 删除函数预置并发
42
+ export async function deleteProvisionedConcurrencyConfig(options: IGetProvisionedConcurrencyConfig): Promise<void> {
43
+ const { envId, functionName, qualifier } = options
44
+ const scfService = await getFunctionService(envId)
45
+
46
+ try {
47
+ await scfService.deleteProvisionedConcurrencyConfig({
48
+ functionName,
49
+ qualifier
50
+ })
51
+ } catch (e) {
52
+ throw new CloudBaseError(`[${functionName}] 删除函数预置并发失败: ${e.message}`, {
53
+ code: e.code
54
+ })
55
+ }
56
+ }
57
+
@@ -5,4 +5,7 @@ export * from './base'
5
5
  export * from './delete'
6
6
  export * from './update'
7
7
  export * from './layer'
8
- export * from './vpc'
8
+ export * from './vpc'
9
+ export * from './version'
10
+ export * from './concurrency'
11
+ export * from './alias'
@@ -0,0 +1,39 @@
1
+ import { CloudBaseError } from '../error'
2
+ import { IPublishVersionParams, IListFunctionVersionParams, IFunctionVersionsRes } from '../types'
3
+ import { getFunctionService } from './base'
4
+
5
+ // 发布云函数新版本
6
+ export async function publishVersion(options: IPublishVersionParams) {
7
+ const { envId, functionName, description = '' } = options
8
+
9
+ const scfService = await getFunctionService(envId)
10
+
11
+ try {
12
+ await scfService.publishVersion({
13
+ functionName,
14
+ description
15
+ })
16
+ } catch (e) {
17
+ throw new CloudBaseError(`[${functionName}] 函数发布新版本失败: ${e.message}`, {
18
+ code: e.code
19
+ })
20
+ }
21
+ }
22
+
23
+ // 查看函数所有版本
24
+ export async function listFunctionVersions(options: IListFunctionVersionParams): Promise<IFunctionVersionsRes> {
25
+ const { envId, functionName, offset = 0, limit = 20 } = options
26
+ const scfService = await getFunctionService(envId)
27
+
28
+ try {
29
+ return scfService.listVersionByFunction({
30
+ functionName,
31
+ offset,
32
+ limit
33
+ })
34
+ } catch (e) {
35
+ throw new CloudBaseError(`[${functionName}] 查看寒函数版本列表失败: ${e.message}`, {
36
+ code: e.code
37
+ })
38
+ }
39
+ }
package/src/types.ts CHANGED
@@ -435,4 +435,99 @@ export interface ITurnOffStandaloneGateway {
435
435
  export interface IDestroyStandaloneGateway {
436
436
  envId: string,
437
437
  gatewayName: string
438
+ }
439
+
440
+ export interface IPublishVersionParams {
441
+ envId: string
442
+ functionName: string
443
+ description?: string
444
+ }
445
+ export interface IListFunctionVersionParams {
446
+ envId: string
447
+ functionName: string
448
+ offset?: number
449
+ limit?: number
450
+ order?: string
451
+ orderBy?: string
452
+ }
453
+
454
+ export interface IFunctionVersion {
455
+ Version: string
456
+ Description: string
457
+ AddTime: string
458
+ ModTime: string
459
+ Status: string //
460
+ }
461
+
462
+ export interface IFunctionVersionsRes {
463
+ FunctionVersion: string[]
464
+ Versions: IFunctionVersion[]
465
+ TotalCount: number
466
+ }
467
+
468
+ export interface ISetProvisionedConcurrencyConfig {
469
+ envId: string
470
+ functionName: string
471
+ qualifier: string
472
+ versionProvisionedConcurrencyNum: number
473
+ }
474
+
475
+ export interface IGetProvisionedConcurrencyConfig {
476
+ functionName: string
477
+ qualifier?: string
478
+ envId: string
479
+ }
480
+
481
+ export interface IGetProvisionedConcurrencyRes {
482
+ UnallocatedConcurrencyNum: number
483
+ Allocated: IVersionProvisionedConcurrencyInfo[]
484
+ }
485
+
486
+ export interface IVersionProvisionedConcurrencyInfo {
487
+ AllocatedProvisionedConcurrencyNum: number // 设置的预置并发数。
488
+ AvailableProvisionedConcurrencyNum: number // 当前已完成预置的并发数。
489
+ Status: string // 预置任务状态,Done表示已完成,InProgress表示进行中,Failed表示部分或全部失败。
490
+ StatusReason: string // 对预置任务状态Status的说明。
491
+ Qualifier: string // 版本号
492
+ }
493
+
494
+ export interface IUpdateFunctionAliasConfig {
495
+ envId: string
496
+ functionName: string // 函数名
497
+ name: string // 函数别名 如$DEFAULT
498
+ functionVersion: string // 函数版本
499
+ description?: string // 别名描述
500
+ routingConfig?: IRoutingConfig
501
+ }
502
+
503
+ export interface IRoutingConfig {
504
+ AdditionalVersionWeights?: IVersionWeight[]
505
+ AddtionVersionMatchs?: IVersionMatch[]
506
+ }
507
+
508
+ export interface IVersionMatch {
509
+ Version: string // 函数版本名称
510
+ Key: string // 匹配规则的key,调用时通过传key来匹配规则路由到指定版本 header方式:key填写"invoke.headers.User",并在 invoke 调用函数时传参 RoutingKey:{"User":"value"}规则匹配调用
511
+ Method: string // 匹配方式。取值范围:range:范围匹配 exact:字符串精确匹配
512
+ Expression: string //
513
+ }
514
+
515
+ export interface IVersionWeight {
516
+ Version: string
517
+ Weight: number
518
+ }
519
+
520
+ export interface IGetFunctionAlias {
521
+ envId: string
522
+ functionName: string // 函数名称
523
+ name: string // 别名
524
+ }
525
+
526
+ export interface IGetFunctionAliasRes {
527
+ FunctionVersion: string
528
+ Name: string
529
+ RoutingConfig: IRoutingConfig
530
+ Description: string
531
+ AddTime: string
532
+ ModTime: string
438
533
  }
@@ -4,7 +4,6 @@ import { ICommandContext } from '../types';
4
4
  interface ICommandOption {
5
5
  flags: string;
6
6
  desc: string;
7
- hideHelp?: boolean;
8
7
  }
9
8
  export interface ICommandOptions {
10
9
  deprecateCmd?: string;