@cloudbase/cli 1.12.7-alpha.4 → 2.0.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 (317) hide show
  1. package/.editorconfig +9 -9
  2. package/.eslintignore +7 -7
  3. package/.eslintrc +35 -35
  4. package/.prettierrc.js +29 -29
  5. package/.vscode/launch.json +16 -16
  6. package/.vscode/settings.json +3 -0
  7. package/LICENSE +5 -5
  8. package/README.md +35 -35
  9. package/bin/cloudbase.js +5 -5
  10. package/bin/tcb.js +0 -0
  11. package/changelog.md +6 -6
  12. package/jest.config.js +17 -17
  13. package/lib/commands/account/login.js +18 -18
  14. package/lib/commands/run/create.js +6 -1
  15. package/lib/commands/run/delete.js +6 -1
  16. package/lib/commands/run/image/common.js +1 -1
  17. package/lib/commands/run/image/delete.js +5 -0
  18. package/lib/commands/run/image/download.js +5 -0
  19. package/lib/commands/run/image/list.js +5 -0
  20. package/lib/commands/run/image/upload.js +5 -0
  21. package/lib/commands/run/index.js +1 -0
  22. package/lib/commands/run/list.js +7 -1
  23. package/lib/commands/run/service/config.js +112 -0
  24. package/lib/commands/run/service/create.js +140 -0
  25. package/lib/commands/run/service/deploy.js +145 -0
  26. package/lib/commands/run/service/index.js +21 -0
  27. package/lib/commands/run/service/list.js +115 -0
  28. package/lib/commands/run/service/update.js +132 -0
  29. package/lib/commands/run/version/common.js +1 -1
  30. package/lib/commands/run/version/create.js +5 -0
  31. package/lib/commands/run/version/delete.js +5 -0
  32. package/lib/commands/run/version/list.js +5 -0
  33. package/lib/commands/run/version/modify.js +5 -0
  34. package/lib/commands/run/version/update.js +5 -0
  35. package/lib/commands/storage/storage.js +1 -1
  36. package/lib/constant.js +20 -1
  37. package/lib/env/login.js +7 -7
  38. package/lib/help.js +40 -38
  39. package/lib/run/index.js +1 -0
  40. package/lib/run/service/common.js +163 -0
  41. package/lib/run/service/config.js +70 -0
  42. package/lib/run/service/create.js +67 -0
  43. package/lib/run/service/deployPackage.js +87 -0
  44. package/lib/run/service/index.js +23 -0
  45. package/lib/run/service/list.js +31 -0
  46. package/lib/run/service/showLogs.js +116 -0
  47. package/lib/run/service/update.js +83 -0
  48. package/lib/utils/checkTcbrEnv.js +74 -0
  49. package/lib/utils/commonParamsCheck.js +48 -0
  50. package/lib/utils/index.js +3 -0
  51. package/lib/utils/tcbrApi/callTcbrApi.js +38 -0
  52. package/lib/utils/tcbrApi/index.js +17 -0
  53. package/lib/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.js +268 -0
  54. package/lib/utils/tcbrApi/tcbr-cloud-api/error.js +17 -0
  55. package/lib/utils/tcbrApi/tcbr-cloud-api/index.js +17 -0
  56. package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +40 -0
  57. package/lib/utils/tcbrApi/tcbr-cloud-api-request.js +61 -0
  58. package/lib/utils/validator.js +32 -1
  59. package/package.json +88 -88
  60. package/post-install.js +61 -61
  61. package/runtime/nodejs/bootstrap.js +255 -255
  62. package/runtime/nodejs/runtime.js +183 -183
  63. package/src/auth/index.ts +1 -1
  64. package/src/auth/login.ts +91 -91
  65. package/src/auth/logout.ts +7 -7
  66. package/src/commands/account/index.ts +2 -2
  67. package/src/commands/account/login.ts +192 -192
  68. package/src/commands/account/logout.ts +24 -24
  69. package/src/commands/common.ts +246 -246
  70. package/src/commands/env/base.ts +90 -90
  71. package/src/commands/env/create.ts +92 -92
  72. package/src/commands/env/domain.ts +186 -186
  73. package/src/commands/env/index.ts +4 -4
  74. package/src/commands/env/login.ts +235 -235
  75. package/src/commands/framework/index.ts +124 -124
  76. package/src/commands/functions/alias/getRoute.ts +76 -76
  77. package/src/commands/functions/alias/index.ts +2 -2
  78. package/src/commands/functions/alias/setRoute.ts +82 -82
  79. package/src/commands/functions/code-download.ts +100 -100
  80. package/src/commands/functions/code-update.ts +62 -62
  81. package/src/commands/functions/concurrency/delete.ts +45 -45
  82. package/src/commands/functions/concurrency/index.ts +2 -2
  83. package/src/commands/functions/concurrency/list.ts +58 -58
  84. package/src/commands/functions/concurrency/set.ts +47 -47
  85. package/src/commands/functions/config-update.ts +76 -76
  86. package/src/commands/functions/copy.ts +62 -62
  87. package/src/commands/functions/delete.ts +79 -79
  88. package/src/commands/functions/deploy.ts +293 -293
  89. package/src/commands/functions/detail.ts +138 -138
  90. package/src/commands/functions/index.ts +16 -16
  91. package/src/commands/functions/invoke.ts +121 -121
  92. package/src/commands/functions/layer/bind.ts +182 -182
  93. package/src/commands/functions/layer/common.ts +8 -8
  94. package/src/commands/functions/layer/create.ts +49 -49
  95. package/src/commands/functions/layer/delete.ts +73 -73
  96. package/src/commands/functions/layer/download.ts +92 -92
  97. package/src/commands/functions/layer/index.ts +7 -7
  98. package/src/commands/functions/layer/list.ts +94 -94
  99. package/src/commands/functions/layer/sort.ts +76 -76
  100. package/src/commands/functions/list.ts +68 -68
  101. package/src/commands/functions/log.ts +148 -148
  102. package/src/commands/functions/run.ts +249 -249
  103. package/src/commands/functions/trigger-create.ts +79 -79
  104. package/src/commands/functions/trigger-delete.ts +105 -105
  105. package/src/commands/functions/version/index.ts +1 -1
  106. package/src/commands/functions/version/list.ts +73 -73
  107. package/src/commands/functions/version/publish.ts +43 -43
  108. package/src/commands/gateway/create.ts +109 -109
  109. package/src/commands/gateway/delete.ts +81 -81
  110. package/src/commands/gateway/domain.ts +159 -159
  111. package/src/commands/gateway/index.ts +5 -5
  112. package/src/commands/gateway/list.ts +76 -76
  113. package/src/commands/gateway/switch.ts +107 -107
  114. package/src/commands/helpers/index.ts +2 -2
  115. package/src/commands/helpers/init.ts +431 -431
  116. package/src/commands/helpers/new.ts +117 -117
  117. package/src/commands/helpers/open.ts +67 -67
  118. package/src/commands/hosting/hosting.ts +360 -360
  119. package/src/commands/index.ts +13 -13
  120. package/src/commands/lowcode/app.ts +34 -34
  121. package/src/commands/lowcode/comps.ts +322 -322
  122. package/src/commands/lowcode/index.ts +1 -1
  123. package/src/commands/lowcode/utils.ts +24 -24
  124. package/src/commands/run/create.ts +9 -2
  125. package/src/commands/run/delete.ts +8 -2
  126. package/src/commands/run/image/common.ts +1 -1
  127. package/src/commands/run/image/delete.ts +8 -1
  128. package/src/commands/run/image/download.ts +7 -1
  129. package/src/commands/run/image/index.ts +4 -4
  130. package/src/commands/run/image/list.ts +7 -2
  131. package/src/commands/run/image/upload.ts +8 -1
  132. package/src/commands/run/index.ts +2 -1
  133. package/src/commands/run/list.ts +11 -3
  134. package/src/commands/run/service/config.ts +81 -0
  135. package/src/commands/run/service/create.ts +118 -0
  136. package/src/commands/run/service/deploy.ts +121 -0
  137. package/src/commands/run/service/index.ts +5 -0
  138. package/src/commands/run/service/list.ts +94 -0
  139. package/src/commands/run/service/update.ts +104 -0
  140. package/src/commands/run/standalonegateway/common.ts +7 -7
  141. package/src/commands/run/standalonegateway/create.ts +85 -85
  142. package/src/commands/run/standalonegateway/destroy.ts +59 -59
  143. package/src/commands/run/standalonegateway/index.ts +4 -4
  144. package/src/commands/run/standalonegateway/list.ts +53 -53
  145. package/src/commands/run/standalonegateway/package.ts +62 -62
  146. package/src/commands/run/standalonegateway/turn.ts +63 -63
  147. package/src/commands/run/version/common.ts +1 -1
  148. package/src/commands/run/version/create.ts +8 -1
  149. package/src/commands/run/version/delete.ts +8 -2
  150. package/src/commands/run/version/index.ts +4 -4
  151. package/src/commands/run/version/list.ts +7 -1
  152. package/src/commands/run/version/modify.ts +8 -1
  153. package/src/commands/run/version/update.ts +8 -1
  154. package/src/commands/smart.ts +132 -132
  155. package/src/commands/storage/storage.ts +464 -464
  156. package/src/commands/third/thirdAttach.ts +49 -49
  157. package/src/completion/index.ts +13 -13
  158. package/src/constant.ts +35 -1
  159. package/src/decorators/captureError.ts +25 -25
  160. package/src/decorators/constants.ts +12 -12
  161. package/src/decorators/deprecate.ts +25 -25
  162. package/src/decorators/guard.ts +42 -42
  163. package/src/decorators/index.ts +7 -7
  164. package/src/decorators/injectParams.ts +54 -54
  165. package/src/decorators/params/common.ts +28 -28
  166. package/src/decorators/params/index.ts +35 -35
  167. package/src/env/domain.ts +33 -33
  168. package/src/env/index.ts +63 -63
  169. package/src/env/login.ts +80 -80
  170. package/src/error.ts +36 -36
  171. package/src/function/alias.ts +43 -43
  172. package/src/function/base.ts +253 -253
  173. package/src/function/code.ts +55 -55
  174. package/src/function/concurrency.ts +57 -57
  175. package/src/function/create.ts +78 -78
  176. package/src/function/delete.ts +42 -42
  177. package/src/function/index.ts +10 -10
  178. package/src/function/layer/attach.ts +68 -68
  179. package/src/function/layer/create.ts +63 -63
  180. package/src/function/layer/delete.ts +21 -21
  181. package/src/function/layer/download.ts +54 -54
  182. package/src/function/layer/index.ts +7 -7
  183. package/src/function/layer/list.ts +32 -32
  184. package/src/function/layer/sort.ts +24 -24
  185. package/src/function/trigger.ts +97 -97
  186. package/src/function/update.ts +35 -35
  187. package/src/function/version.ts +38 -38
  188. package/src/function/vpc.ts +22 -22
  189. package/src/gateway/index.ts +137 -137
  190. package/src/help.ts +50 -48
  191. package/src/hosting.ts +212 -212
  192. package/src/index.ts +13 -13
  193. package/src/logger.ts +17 -17
  194. package/src/run/create.ts +23 -23
  195. package/src/run/delete.ts +15 -15
  196. package/src/run/image/build.ts +36 -36
  197. package/src/run/image/delete.ts +13 -13
  198. package/src/run/image/index.ts +3 -3
  199. package/src/run/image/info.ts +26 -26
  200. package/src/run/index.ts +2 -1
  201. package/src/run/list.ts +29 -29
  202. package/src/run/repo.ts +24 -24
  203. package/src/run/service/common.ts +206 -0
  204. package/src/run/service/config.ts +77 -0
  205. package/src/run/service/create.ts +52 -0
  206. package/src/run/service/deployPackage.ts +63 -0
  207. package/src/run/service/index.ts +7 -0
  208. package/src/run/service/list.ts +29 -0
  209. package/src/run/service/showLogs.ts +98 -0
  210. package/src/run/service/update.ts +81 -0
  211. package/src/run/standalonegateway/create.ts +24 -24
  212. package/src/run/standalonegateway/destroy.ts +19 -19
  213. package/src/run/standalonegateway/index.ts +4 -4
  214. package/src/run/standalonegateway/list.ts +74 -74
  215. package/src/run/standalonegateway/package/list.ts +24 -24
  216. package/src/run/standalonegateway/turn/index.ts +1 -1
  217. package/src/run/standalonegateway/turn/off.ts +19 -19
  218. package/src/run/standalonegateway/turn/on.ts +19 -19
  219. package/src/run/version/create.ts +68 -68
  220. package/src/run/version/delete.ts +15 -15
  221. package/src/run/version/index.ts +5 -5
  222. package/src/run/version/list.ts +16 -16
  223. package/src/run/version/modify.ts +16 -16
  224. package/src/run/version/repo.ts +27 -27
  225. package/src/run/version/update.ts +58 -58
  226. package/src/storage.ts +114 -114
  227. package/src/third/index.ts +12 -12
  228. package/src/types.ts +128 -2
  229. package/src/utils/auth.ts +15 -15
  230. package/src/utils/checkTcbrEnv.ts +67 -0
  231. package/src/utils/cli-table.ts +23 -23
  232. package/src/utils/commonParamsCheck.ts +65 -0
  233. package/src/utils/config.ts +39 -39
  234. package/src/utils/env.ts +244 -244
  235. package/src/utils/fs/del.ts +5 -5
  236. package/src/utils/fs/index.ts +71 -71
  237. package/src/utils/function-packer.ts +97 -97
  238. package/src/utils/index.ts +5 -1
  239. package/src/utils/log.ts +81 -81
  240. package/src/utils/net/cloud-api-request.ts +62 -62
  241. package/src/utils/net/credential.ts +53 -53
  242. package/src/utils/net/http-request.ts +84 -84
  243. package/src/utils/net/index.ts +4 -4
  244. package/src/utils/net/manager-service.ts +36 -36
  245. package/src/utils/net/proxy.ts +6 -6
  246. package/src/utils/notice.ts +28 -28
  247. package/src/utils/output/highlight.ts +5 -5
  248. package/src/utils/output/index.ts +2 -2
  249. package/src/utils/output/link.ts +10 -10
  250. package/src/utils/output/loading.ts +82 -82
  251. package/src/utils/parallel.ts +82 -82
  252. package/src/utils/platform/index.ts +2 -2
  253. package/src/utils/platform/mac.ts +21 -21
  254. package/src/utils/platform/os.ts +64 -64
  255. package/src/utils/platform/port.ts +10 -10
  256. package/src/utils/progress-bar.ts +38 -38
  257. package/src/utils/prompt/select.ts +59 -59
  258. package/src/utils/reporter/agree.ts +20 -20
  259. package/src/utils/reporter/download.ts +26 -26
  260. package/src/utils/reporter/index.ts +3 -3
  261. package/src/utils/reporter/usage.ts +20 -20
  262. package/src/utils/store/auth.ts +49 -49
  263. package/src/utils/store/common.ts +8 -8
  264. package/src/utils/store/db.ts +68 -68
  265. package/src/utils/store/index.ts +4 -4
  266. package/src/utils/store/usage.ts +12 -12
  267. package/src/utils/tcbrApi/callTcbrApi.ts +28 -0
  268. package/src/utils/tcbrApi/index.ts +1 -0
  269. package/src/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.ts +363 -0
  270. package/src/utils/tcbrApi/tcbr-cloud-api/error.ts +30 -0
  271. package/src/utils/tcbrApi/tcbr-cloud-api/index.ts +1 -0
  272. package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +28 -0
  273. package/src/utils/tcbrApi/tcbr-cloud-api-request.ts +66 -0
  274. package/src/utils/template.ts +170 -170
  275. package/src/utils/tools/encoding.ts +8 -8
  276. package/src/utils/tools/index.ts +4 -4
  277. package/src/utils/tools/object.ts +33 -33
  278. package/src/utils/tools/time.ts +38 -38
  279. package/src/utils/tools/uid.ts +19 -19
  280. package/src/utils/validator.ts +64 -32
  281. package/templates/html/loginFail.html +90 -90
  282. package/templates/html/loginSuccess.html +86 -86
  283. package/templates/server/node/_gitignore +54 -54
  284. package/templates/server/node/cloudbaserc.json +10 -10
  285. package/templates/server/node/index.js +5 -5
  286. package/templates/server/node/package.json +9 -9
  287. package/tsconfig.json +19 -19
  288. package/tsconfig.test.json +13 -13
  289. package/types/commands/run/index.d.ts +1 -0
  290. package/types/commands/run/service/config.d.ts +14 -0
  291. package/types/commands/run/service/create.d.ts +13 -0
  292. package/types/commands/run/service/deploy.d.ts +13 -0
  293. package/types/commands/run/service/index.d.ts +5 -0
  294. package/types/commands/run/service/list.d.ts +13 -0
  295. package/types/commands/run/service/update.d.ts +13 -0
  296. package/types/constant.d.ts +18 -0
  297. package/types/run/index.d.ts +1 -0
  298. package/types/run/service/common.d.ts +32 -0
  299. package/types/run/service/config.d.ts +23 -0
  300. package/types/run/service/create.d.ts +7 -0
  301. package/types/run/service/deployPackage.d.ts +11 -0
  302. package/types/run/service/index.d.ts +7 -0
  303. package/types/run/service/list.d.ts +2 -0
  304. package/types/run/service/showLogs.d.ts +2 -0
  305. package/types/run/service/update.d.ts +2 -0
  306. package/types/types.d.ts +116 -2
  307. package/types/utils/checkTcbrEnv.d.ts +3 -0
  308. package/types/utils/commonParamsCheck.d.ts +3 -0
  309. package/types/utils/index.d.ts +3 -0
  310. package/types/utils/tcbrApi/callTcbrApi.d.ts +1 -0
  311. package/types/utils/tcbrApi/index.d.ts +1 -0
  312. package/types/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.d.ts +51 -0
  313. package/types/utils/tcbrApi/tcbr-cloud-api/error.d.ts +20 -0
  314. package/types/utils/tcbrApi/tcbr-cloud-api/index.d.ts +1 -0
  315. package/types/utils/tcbrApi/tcbr-cloud-api/request.d.ts +4 -0
  316. package/types/utils/tcbrApi/tcbr-cloud-api-request.d.ts +9 -0
  317. package/types/utils/validator.d.ts +4 -0
@@ -0,0 +1,98 @@
1
+ import { callTcbrApi } from '../../utils'
2
+ import { EnumDeployStatus } from '../../constant'
3
+ import chalk from 'chalk'
4
+
5
+ export async function getBuildStatus(envId: string, serviceName: string) {
6
+ const { data: deployRes } = await callTcbrApi('DescribeCloudRunDeployRecord', {
7
+ EnvId: envId,
8
+ ServerName: serviceName,
9
+ })
10
+ if (deployRes?.DeployRecords) {
11
+ if (deployRes?.DeployRecords[0].Status === EnumDeployStatus.Deploying) {
12
+ return Promise.resolve('pending')
13
+ } else {
14
+ return Promise.resolve('completed')
15
+ }
16
+ } else {
17
+ return Promise.resolve('pending')
18
+ }
19
+ }
20
+
21
+
22
+ async function getBuildId(envId: string, serviceName: string): Promise<number> {
23
+ const { data: deployRes } = await callTcbrApi('DescribeCloudRunDeployRecord', {
24
+ EnvId: envId,
25
+ ServerName: serviceName,
26
+ })
27
+ if (deployRes?.DeployRecords) {
28
+ if (deployRes.DeployRecords[0].Status !== 'deploying') {
29
+ return Promise.resolve(deployRes.DeployRecords[0].BuildId)
30
+ }
31
+ }
32
+ }
33
+
34
+ async function getRunId(envId: string, serviceName: string) {
35
+ return new Promise<string>((resolve) => {
36
+ const timer = setInterval(async () => {
37
+ const { data: deployRes } = await callTcbrApi('DescribeCloudRunDeployRecord', {
38
+ EnvId: envId,
39
+ ServerName: serviceName,
40
+ })
41
+ if (deployRes?.DeployRecords) {
42
+ clearInterval(timer)
43
+ resolve(deployRes.DeployRecords[0].RunId)
44
+ }
45
+ }, 3000)
46
+ })
47
+ }
48
+
49
+
50
+ // 多次获取 processLog
51
+ async function showProcessLogs(envId: string, runId: string, serviceName: string) {
52
+ return new Promise<void>(resolve => {
53
+ const timer = setInterval(async () => {
54
+ if (await getBuildStatus(envId, serviceName) === 'completed') {
55
+ clearInterval(timer)
56
+ resolve()
57
+ } else {
58
+ const { data: processLogs } = await callTcbrApi('DescribeCloudRunProcessLog', {
59
+ EnvId: envId,
60
+ RunId: runId,
61
+ })
62
+ if (processLogs?.Logs) {
63
+ console.log(processLogs?.Logs.join('\n'))
64
+ }
65
+ }
66
+ }, 5000)
67
+ })
68
+ }
69
+
70
+ // buildLog 仅在完成后获取一次(未完成 BuildId 为0)
71
+ async function showBuildLogs(envId: string, serviceName: string, serverVersion = '', offset = 0) {
72
+ const buildId = await getBuildId(envId, serviceName)
73
+
74
+ const { data } = await callTcbrApi('DescribeCloudRunBuildLog', {
75
+ EnvId: envId,
76
+ BuildId: buildId,
77
+ ServerName: serviceName,
78
+ ServerVersion: serverVersion || '',
79
+ Offset: offset || 0,
80
+ })
81
+
82
+ if (data?.Log?.Text) {
83
+ console.log(data?.Log?.Text)
84
+ }
85
+ return Promise.resolve()
86
+ }
87
+
88
+ export async function getLogs(options) {
89
+
90
+ const runId = await getRunId(options.envId, options.serviceName)
91
+
92
+ console.log(chalk.blue('============ 日志开始 ==============='))
93
+ await showProcessLogs(options.envId, runId, options.serviceName)
94
+ if (await getBuildStatus(options.envId, options.serviceName) === 'completed') {
95
+ await showBuildLogs(options.envId, options.serviceName)
96
+ }
97
+ console.log(chalk.blue('============ 日志结束 ==============='))
98
+ }
@@ -0,0 +1,81 @@
1
+ import { CloudBaseError, logger } from '@cloudbase/toolbox'
2
+ import inquirer from 'inquirer'
3
+ import { describeCloudRunServerDetail } from '..'
4
+ import { callTcbrApi } from '../../utils'
5
+ import { tcbrServiceOptions } from './common'
6
+ import { getBuildStatus, getLogs } from './showLogs'
7
+
8
+ export async function updateCloudRunServer(serviceConfigOptions) {
9
+ try {
10
+ const res = await callTcbrApi('UpdateCloudRunServer', serviceConfigOptions)
11
+ return res
12
+ } catch (error) {
13
+ console.log(error)
14
+ }
15
+ }
16
+
17
+ export async function updateTcbrService(options) {
18
+ const { data: serviceDetail } = await describeCloudRunServerDetail({
19
+ envId: options.envId,
20
+ serviceName: options.serviceName
21
+ })
22
+ if(serviceDetail === undefined) {
23
+ // 服务不存在
24
+ throw new CloudBaseError('当前服务不存在,请使用 tcb run service:create 创建服务')
25
+ }
26
+ // 查询是否存在发布单
27
+ /* const { IsExist: isExist } = await describeWxCloudBaseRunReleaseOrder({
28
+ envId: options.envId,
29
+ serviceName: options.serviceName
30
+ })
31
+ if(isExist) {
32
+ throw new CloudBaseError('服务正在更新部署,请稍后再试,或查看实时部署日志')
33
+ } */
34
+ const status = await getBuildStatus(options.envId, options.serviceName)
35
+ if(status === 'pending') {
36
+ throw new CloudBaseError('服务正在更新部署,请稍后再试,或查看实时部署日志')
37
+ }
38
+
39
+ // 获取上次的服务配置信息
40
+ const previousServerConfig = serviceDetail?.ServerConfig
41
+
42
+ const newServiceOptions = await tcbrServiceOptions(options, true, true, previousServerConfig)
43
+
44
+ // 二次确认
45
+ if(!options.noConfirm) {
46
+ const { confirm } = await inquirer.prompt([
47
+ {
48
+ type: 'confirm',
49
+ name: 'confirm',
50
+ message: '确定要更新服务吗?',
51
+ }
52
+ ])
53
+ if(!confirm) {
54
+ return
55
+ }
56
+ }
57
+
58
+ const updateRes: any = await updateCloudRunServer(newServiceOptions)
59
+
60
+ if(updateRes instanceof Error) {
61
+ // 当前有发布任务在运行中
62
+ throw new CloudBaseError('当前已有部署发布任务运行中,请稍后再试,或查看实时部署日志')
63
+ }
64
+
65
+ const taskId = updateRes.data?.TaskId
66
+
67
+ if(options.json) {
68
+ console.log(JSON.stringify(updateRes, null, 2))
69
+ }
70
+
71
+ if(process.argv.includes('--verbose')) {
72
+ await getLogs({
73
+ envId: options.envId,
74
+ taskId,
75
+ serviceName: options.serviceName
76
+ })
77
+ console.log(`本次任务的 TaskID: ${taskId}`)
78
+ } else {
79
+ logger.success('更新服务成功, 本次任务的 TaskID: ' + taskId)
80
+ }
81
+ }
@@ -1,24 +1,24 @@
1
- import { ICreateStandaloneGateway } from '../../types'
2
- import { CloudBaseError } from '../../error'
3
- import { CloudApiService } from '../../utils'
4
-
5
- const tcbService = CloudApiService.getInstance('tcb')
6
-
7
- export const createStandaloneGateway = async (options: ICreateStandaloneGateway) => {
8
- const res = await tcbService.request('CreateStandaloneGateway', {
9
- EnvId: options.envId,
10
- GatewayAlias: options.gatewayAlias,
11
- GatewayDesc: options.gatewayDesc,
12
- VpcId: options.vpcId,
13
- SubnetIds: options.subnetIds,
14
- PackageVersion: options.packageVersion
15
- })
16
- const { GatewayName } = res
17
- if (GatewayName === undefined) {
18
- const {
19
- Error: { Message }
20
- } = res
21
- throw new CloudBaseError(Message)
22
- }
23
- return GatewayName
24
- }
1
+ import { ICreateStandaloneGateway } from '../../types'
2
+ import { CloudBaseError } from '../../error'
3
+ import { CloudApiService } from '../../utils'
4
+
5
+ const tcbService = CloudApiService.getInstance('tcb')
6
+
7
+ export const createStandaloneGateway = async (options: ICreateStandaloneGateway) => {
8
+ const res = await tcbService.request('CreateStandaloneGateway', {
9
+ EnvId: options.envId,
10
+ GatewayAlias: options.gatewayAlias,
11
+ GatewayDesc: options.gatewayDesc,
12
+ VpcId: options.vpcId,
13
+ SubnetIds: options.subnetIds,
14
+ PackageVersion: options.packageVersion
15
+ })
16
+ const { GatewayName } = res
17
+ if (GatewayName === undefined) {
18
+ const {
19
+ Error: { Message }
20
+ } = res
21
+ throw new CloudBaseError(Message)
22
+ }
23
+ return GatewayName
24
+ }
@@ -1,19 +1,19 @@
1
- import { IDestroyStandaloneGateway } from '../../types'
2
- import { CloudBaseError } from '../../error'
3
- import { CloudApiService } from '../../utils'
4
-
5
- const tcbService = CloudApiService.getInstance('tcb')
6
-
7
- export const destroyStandalonegateway = async (options: IDestroyStandaloneGateway) => {
8
- const res = await tcbService.request('DestroyStandaloneGateway', {
9
- EnvId: options.envId,
10
- IsForce: true,
11
- GatewayName: options.gatewayName
12
- })
13
-
14
- const { Error: Message } = res
15
- if (Message !== undefined) {
16
- throw new CloudBaseError(JSON.stringify(Message))
17
- }
18
- return res
19
- }
1
+ import { IDestroyStandaloneGateway } from '../../types'
2
+ import { CloudBaseError } from '../../error'
3
+ import { CloudApiService } from '../../utils'
4
+
5
+ const tcbService = CloudApiService.getInstance('tcb')
6
+
7
+ export const destroyStandalonegateway = async (options: IDestroyStandaloneGateway) => {
8
+ const res = await tcbService.request('DestroyStandaloneGateway', {
9
+ EnvId: options.envId,
10
+ IsForce: true,
11
+ GatewayName: options.gatewayName
12
+ })
13
+
14
+ const { Error: Message } = res
15
+ if (Message !== undefined) {
16
+ throw new CloudBaseError(JSON.stringify(Message))
17
+ }
18
+ return res
19
+ }
@@ -1,5 +1,5 @@
1
- export * from './list'
2
- export * from './create'
3
- export * from './destroy'
4
- export * from './package'
1
+ export * from './list'
2
+ export * from './create'
3
+ export * from './destroy'
4
+ export * from './package'
5
5
  export * from './turn'
@@ -1,74 +1,74 @@
1
- import { IListStandaloneGateway } from '../../types'
2
- import { CloudBaseError } from '../../error'
3
- import { CloudApiService } from '../../utils'
4
-
5
- const tcbService = CloudApiService.getInstance('tcb')
6
-
7
- export const listStandalonegateway = async (options: IListStandaloneGateway) => {
8
- const res = await tcbService.request('DescribeStandaloneGateway', {
9
- EnvId: options.envId,
10
- GatewayName: options.gatewayName,
11
- GatewayAlias: options.gatewayAlias
12
- })
13
- // const res = {
14
- // StandaloneGatewayList: [
15
- // {
16
- // CPU: 2,
17
- // GateWayStatus: 'Success',
18
- // GatewayAlias: 'StandaloneGateway',
19
- // GatewayDesc: 'gateway',
20
- // GatewayName: 'x-tcb-cbr-gateway-4e9w8r711205c5',
21
- // InternalClbIp: '10.0.0.30',
22
- // Mem: 4,
23
- // PackageVersion: 'starter',
24
- // PublicClbIp: '1.15.159.47',
25
- // ServiceInfo: [
26
- // {
27
- // ServiceName: 'coylexie',
28
- // Status: 'off'
29
- // },
30
- // {
31
- // ServiceName: 'test',
32
- // Status: 'on'
33
- // }
34
- // ],
35
- // SubnetIds: ['subnet-g6ey7mid'],
36
- // VpcId: 'vpc-n73jhksu'
37
- // }
38
- // ],
39
- // Total: 1,
40
- // Error: {
41
- // Message: 'No Error'
42
- // }
43
- // }
44
- const { StandaloneGatewayList } = res
45
- if (StandaloneGatewayList !== undefined) {
46
- return StandaloneGatewayList.map((item) => [
47
- item['GatewayName'],
48
- item['GateWayStatus'],
49
- item['GatewayAlias'],
50
- item['PackageVersion'],
51
- // item['Mem'],
52
- // item['CPU'],
53
- beautifySubnetList(item['SubnetIds']),
54
- item['PublicClbIp'],
55
- item['InternalClbIp'],
56
- beautifyServiceList(item['ServiceInfo'])
57
- // item['GatewayDesc'],
58
- ])
59
- } else {
60
- const {
61
- Error: { Message }
62
- } = res
63
- throw new CloudBaseError(Message)
64
- }
65
- }
66
-
67
- const beautifySubnetList = (list: Array<string>) => list.join('\n')
68
-
69
- const beautifyServiceList = (list: Array<Record<string, string>>) =>
70
- list
71
- .map(
72
- (item) => '服务 ' + item['ServiceName'] + (item['Status'] === 'on' ? ' 开启' : ' 未开启')
73
- )
74
- .join('\n')
1
+ import { IListStandaloneGateway } from '../../types'
2
+ import { CloudBaseError } from '../../error'
3
+ import { CloudApiService } from '../../utils'
4
+
5
+ const tcbService = CloudApiService.getInstance('tcb')
6
+
7
+ export const listStandalonegateway = async (options: IListStandaloneGateway) => {
8
+ const res = await tcbService.request('DescribeStandaloneGateway', {
9
+ EnvId: options.envId,
10
+ GatewayName: options.gatewayName,
11
+ GatewayAlias: options.gatewayAlias
12
+ })
13
+ // const res = {
14
+ // StandaloneGatewayList: [
15
+ // {
16
+ // CPU: 2,
17
+ // GateWayStatus: 'Success',
18
+ // GatewayAlias: 'StandaloneGateway',
19
+ // GatewayDesc: 'gateway',
20
+ // GatewayName: 'x-tcb-cbr-gateway-4e9w8r711205c5',
21
+ // InternalClbIp: '10.0.0.30',
22
+ // Mem: 4,
23
+ // PackageVersion: 'starter',
24
+ // PublicClbIp: '1.15.159.47',
25
+ // ServiceInfo: [
26
+ // {
27
+ // ServiceName: 'coylexie',
28
+ // Status: 'off'
29
+ // },
30
+ // {
31
+ // ServiceName: 'test',
32
+ // Status: 'on'
33
+ // }
34
+ // ],
35
+ // SubnetIds: ['subnet-g6ey7mid'],
36
+ // VpcId: 'vpc-n73jhksu'
37
+ // }
38
+ // ],
39
+ // Total: 1,
40
+ // Error: {
41
+ // Message: 'No Error'
42
+ // }
43
+ // }
44
+ const { StandaloneGatewayList } = res
45
+ if (StandaloneGatewayList !== undefined) {
46
+ return StandaloneGatewayList.map((item) => [
47
+ item['GatewayName'],
48
+ item['GateWayStatus'],
49
+ item['GatewayAlias'],
50
+ item['PackageVersion'],
51
+ // item['Mem'],
52
+ // item['CPU'],
53
+ beautifySubnetList(item['SubnetIds']),
54
+ item['PublicClbIp'],
55
+ item['InternalClbIp'],
56
+ beautifyServiceList(item['ServiceInfo'])
57
+ // item['GatewayDesc'],
58
+ ])
59
+ } else {
60
+ const {
61
+ Error: { Message }
62
+ } = res
63
+ throw new CloudBaseError(Message)
64
+ }
65
+ }
66
+
67
+ const beautifySubnetList = (list: Array<string>) => list.join('\n')
68
+
69
+ const beautifyServiceList = (list: Array<Record<string, string>>) =>
70
+ list
71
+ .map(
72
+ (item) => '服务 ' + item['ServiceName'] + (item['Status'] === 'on' ? ' 开启' : ' 未开启')
73
+ )
74
+ .join('\n')
@@ -1,24 +1,24 @@
1
- import { IListPackageStandaloneGateway } from '../../../types'
2
- import { CloudBaseError } from '../../../error'
3
- import { CloudApiService } from '../../../utils'
4
-
5
- const tcbService = CloudApiService.getInstance('tcb')
6
-
7
- export const listPackageStandalonegateway = async (options: IListPackageStandaloneGateway) => {
8
- const res = await tcbService.request('DescribeStandaloneGatewayPackage', {
9
- EnvId: options.envId,
10
- PackageVersion: options.packageVersion
11
- })
12
- const { StandaloneGatewayPackageList } = res
13
- if (StandaloneGatewayPackageList === undefined) {
14
- const {
15
- Error: { Message }
16
- } = res
17
- throw new CloudBaseError(Message)
18
- }
19
- return StandaloneGatewayPackageList.map((item) => [
20
- item['CPU'],
21
- item['Mem'],
22
- item['PackageVersion']
23
- ])
24
- }
1
+ import { IListPackageStandaloneGateway } from '../../../types'
2
+ import { CloudBaseError } from '../../../error'
3
+ import { CloudApiService } from '../../../utils'
4
+
5
+ const tcbService = CloudApiService.getInstance('tcb')
6
+
7
+ export const listPackageStandalonegateway = async (options: IListPackageStandaloneGateway) => {
8
+ const res = await tcbService.request('DescribeStandaloneGatewayPackage', {
9
+ EnvId: options.envId,
10
+ PackageVersion: options.packageVersion
11
+ })
12
+ const { StandaloneGatewayPackageList } = res
13
+ if (StandaloneGatewayPackageList === undefined) {
14
+ const {
15
+ Error: { Message }
16
+ } = res
17
+ throw new CloudBaseError(Message)
18
+ }
19
+ return StandaloneGatewayPackageList.map((item) => [
20
+ item['CPU'],
21
+ item['Mem'],
22
+ item['PackageVersion']
23
+ ])
24
+ }
@@ -1,2 +1,2 @@
1
- export * from './on'
1
+ export * from './on'
2
2
  export * from './off'
@@ -1,19 +1,19 @@
1
- import { ITurnOffStandaloneGateway } from '../../../types'
2
- import { CloudBaseError } from '../../../error'
3
- import { CloudApiService } from '../../../utils'
4
-
5
- const tcbService = CloudApiService.getInstance('tcb')
6
-
7
- export const turnOffStandalonegateway = async (options: ITurnOffStandaloneGateway) => {
8
- const res = await tcbService.request('TurnOffStandaloneGateway', {
9
- EnvId: options.envId,
10
- GatewayName: options.gatewayName,
11
- ServiceNameList: options.serviceList
12
- })
13
-
14
- const { Error: Message } = res
15
- if (Message !== undefined) {
16
- throw new CloudBaseError(JSON.stringify(Message))
17
- }
18
- return res
19
- }
1
+ import { ITurnOffStandaloneGateway } from '../../../types'
2
+ import { CloudBaseError } from '../../../error'
3
+ import { CloudApiService } from '../../../utils'
4
+
5
+ const tcbService = CloudApiService.getInstance('tcb')
6
+
7
+ export const turnOffStandalonegateway = async (options: ITurnOffStandaloneGateway) => {
8
+ const res = await tcbService.request('TurnOffStandaloneGateway', {
9
+ EnvId: options.envId,
10
+ GatewayName: options.gatewayName,
11
+ ServiceNameList: options.serviceList
12
+ })
13
+
14
+ const { Error: Message } = res
15
+ if (Message !== undefined) {
16
+ throw new CloudBaseError(JSON.stringify(Message))
17
+ }
18
+ return res
19
+ }
@@ -1,19 +1,19 @@
1
- import { ITurnOnStandaloneGateway } from '../../../types'
2
- import { CloudBaseError } from '../../../error'
3
- import { CloudApiService } from '../../../utils'
4
-
5
- const tcbService = CloudApiService.getInstance('tcb')
6
-
7
- export const turnOnStandalonegateway = async (options: ITurnOnStandaloneGateway) => {
8
- const res = await tcbService.request('TurnOnStandaloneGateway', {
9
- EnvId: options.envId,
10
- GatewayName: options.gatewayName,
11
- ServiceNameList: options.serviceList
12
- })
13
-
14
- const { Error: Message } = res
15
- if (Message !== undefined) {
16
- throw new CloudBaseError(JSON.stringify(Message))
17
- }
18
- return res
19
- }
1
+ import { ITurnOnStandaloneGateway } from '../../../types'
2
+ import { CloudBaseError } from '../../../error'
3
+ import { CloudApiService } from '../../../utils'
4
+
5
+ const tcbService = CloudApiService.getInstance('tcb')
6
+
7
+ export const turnOnStandalonegateway = async (options: ITurnOnStandaloneGateway) => {
8
+ const res = await tcbService.request('TurnOnStandaloneGateway', {
9
+ EnvId: options.envId,
10
+ GatewayName: options.gatewayName,
11
+ ServiceNameList: options.serviceList
12
+ })
13
+
14
+ const { Error: Message } = res
15
+ if (Message !== undefined) {
16
+ throw new CloudBaseError(JSON.stringify(Message))
17
+ }
18
+ return res
19
+ }