@serverless-devs/s 0.0.45 → 0.1.4-18cdd23b

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 (379) hide show
  1. package/LICENSE +201 -21
  2. package/OWNERS +33 -0
  3. package/_config.yml +1 -0
  4. package/bin/s +1 -1
  5. package/lib/daemon/lib.js +327 -0
  6. package/lib/daemon/report.js +50 -0
  7. package/lib/daemon/update-cli.js +20 -0
  8. package/lib/daemon/update-component.js +21 -0
  9. package/lib/daemon/update-templates.js +19 -0
  10. package/lib/index.js +1732 -0
  11. package/package.json +73 -61
  12. package/readme.md +127 -0
  13. package/.eslintrc +0 -75
  14. package/README.md +0 -65
  15. package/bin/s-config +0 -2
  16. package/bin/s-config-add +0 -2
  17. package/bin/s-config-delete +0 -2
  18. package/bin/s-config-get +0 -3
  19. package/bin/s-config-update +0 -3
  20. package/bin/s-deploy +0 -2
  21. package/bin/s-gui +0 -2
  22. package/bin/s-init +0 -2
  23. package/bin/s-platform +0 -2
  24. package/bin/s-platform-delete +0 -2
  25. package/bin/s-platform-init +0 -2
  26. package/bin/s-platform-login +0 -2
  27. package/bin/s-platform-publish +0 -2
  28. package/bin/s-remove +0 -2
  29. package/bin/s-search +0 -2
  30. package/bin/s-set +0 -2
  31. package/bin/s-set-analysis +0 -2
  32. package/bin/s-set-language +0 -2
  33. package/bin/s-set-output-color +0 -2
  34. package/compile.tsconfig.json +0 -12
  35. package/configs/base.tsconfig.json +0 -25
  36. package/lib/command/command-manager.d.ts +0 -12
  37. package/lib/command/command-manager.d.ts.map +0 -1
  38. package/lib/command/command-manager.js +0 -144
  39. package/lib/command/command-manager.js.map +0 -1
  40. package/lib/command/index.d.ts +0 -2
  41. package/lib/command/index.d.ts.map +0 -1
  42. package/lib/command/index.js +0 -41
  43. package/lib/command/index.js.map +0 -1
  44. package/lib/component/hook.d.ts +0 -17
  45. package/lib/component/hook.d.ts.map +0 -1
  46. package/lib/component/hook.js +0 -201
  47. package/lib/component/hook.js.map +0 -1
  48. package/lib/component/index.d.ts +0 -53
  49. package/lib/component/index.d.ts.map +0 -1
  50. package/lib/component/index.js +0 -577
  51. package/lib/component/index.js.map +0 -1
  52. package/lib/config/add/add-manager.d.ts +0 -23
  53. package/lib/config/add/add-manager.d.ts.map +0 -1
  54. package/lib/config/add/add-manager.js +0 -282
  55. package/lib/config/add/add-manager.js.map +0 -1
  56. package/lib/config/add/index.d.ts +0 -2
  57. package/lib/config/add/index.d.ts.map +0 -1
  58. package/lib/config/add/index.js +0 -77
  59. package/lib/config/add/index.js.map +0 -1
  60. package/lib/config/common/common.d.ts +0 -7
  61. package/lib/config/common/common.d.ts.map +0 -1
  62. package/lib/config/common/common.js +0 -175
  63. package/lib/config/common/common.js.map +0 -1
  64. package/lib/config/delete/delete-manager.d.ts +0 -11
  65. package/lib/config/delete/delete-manager.d.ts.map +0 -1
  66. package/lib/config/delete/delete-manager.js +0 -133
  67. package/lib/config/delete/delete-manager.js.map +0 -1
  68. package/lib/config/delete/index.d.ts +0 -2
  69. package/lib/config/delete/index.d.ts.map +0 -1
  70. package/lib/config/delete/index.js +0 -77
  71. package/lib/config/delete/index.js.map +0 -1
  72. package/lib/config/get/get-manager.d.ts +0 -14
  73. package/lib/config/get/get-manager.d.ts.map +0 -1
  74. package/lib/config/get/get-manager.js +0 -205
  75. package/lib/config/get/get-manager.js.map +0 -1
  76. package/lib/config/get/index.d.ts +0 -2
  77. package/lib/config/get/index.d.ts.map +0 -1
  78. package/lib/config/get/index.js +0 -86
  79. package/lib/config/get/index.js.map +0 -1
  80. package/lib/config/index.d.ts +0 -2
  81. package/lib/config/index.d.ts.map +0 -1
  82. package/lib/config/index.js +0 -15
  83. package/lib/config/index.js.map +0 -1
  84. package/lib/config/update/index.d.ts +0 -2
  85. package/lib/config/update/index.d.ts.map +0 -1
  86. package/lib/config/update/index.js +0 -83
  87. package/lib/config/update/index.js.map +0 -1
  88. package/lib/config/update/update-manager.d.ts +0 -23
  89. package/lib/config/update/update-manager.d.ts.map +0 -1
  90. package/lib/config/update/update-manager.js +0 -208
  91. package/lib/config/update/update-manager.js.map +0 -1
  92. package/lib/constants/static-variable.d.ts +0 -12
  93. package/lib/constants/static-variable.d.ts.map +0 -1
  94. package/lib/constants/static-variable.js +0 -15
  95. package/lib/constants/static-variable.js.map +0 -1
  96. package/lib/entity.d.ts +0 -11
  97. package/lib/entity.d.ts.map +0 -1
  98. package/lib/entity.js +0 -3
  99. package/lib/entity.js.map +0 -1
  100. package/lib/error/command-error.d.ts +0 -5
  101. package/lib/error/command-error.d.ts.map +0 -1
  102. package/lib/error/command-error.js +0 -26
  103. package/lib/error/command-error.js.map +0 -1
  104. package/lib/error/config-delete-error.d.ts +0 -5
  105. package/lib/error/config-delete-error.d.ts.map +0 -1
  106. package/lib/error/config-delete-error.js +0 -26
  107. package/lib/error/config-delete-error.js.map +0 -1
  108. package/lib/error/config-error.d.ts +0 -5
  109. package/lib/error/config-error.d.ts.map +0 -1
  110. package/lib/error/config-error.js +0 -26
  111. package/lib/error/config-error.js.map +0 -1
  112. package/lib/error/config-get-error.d.ts +0 -5
  113. package/lib/error/config-get-error.d.ts.map +0 -1
  114. package/lib/error/config-get-error.js +0 -26
  115. package/lib/error/config-get-error.js.map +0 -1
  116. package/lib/error/config-update-error.d.ts +0 -5
  117. package/lib/error/config-update-error.d.ts.map +0 -1
  118. package/lib/error/config-update-error.js +0 -26
  119. package/lib/error/config-update-error.js.map +0 -1
  120. package/lib/error/init-error.d.ts +0 -5
  121. package/lib/error/init-error.d.ts.map +0 -1
  122. package/lib/error/init-error.js +0 -26
  123. package/lib/error/init-error.js.map +0 -1
  124. package/lib/error/login-error.d.ts +0 -5
  125. package/lib/error/login-error.d.ts.map +0 -1
  126. package/lib/error/login-error.js +0 -26
  127. package/lib/error/login-error.js.map +0 -1
  128. package/lib/error/platform-delete-error.d.ts +0 -5
  129. package/lib/error/platform-delete-error.d.ts.map +0 -1
  130. package/lib/error/platform-delete-error.js +0 -26
  131. package/lib/error/platform-delete-error.js.map +0 -1
  132. package/lib/error/platform-init-error.d.ts +0 -5
  133. package/lib/error/platform-init-error.d.ts.map +0 -1
  134. package/lib/error/platform-init-error.js +0 -26
  135. package/lib/error/platform-init-error.js.map +0 -1
  136. package/lib/error/platform-publish-error.d.ts +0 -5
  137. package/lib/error/platform-publish-error.d.ts.map +0 -1
  138. package/lib/error/platform-publish-error.js +0 -26
  139. package/lib/error/platform-publish-error.js.map +0 -1
  140. package/lib/error/search-error.d.ts +0 -5
  141. package/lib/error/search-error.d.ts.map +0 -1
  142. package/lib/error/search-error.js +0 -26
  143. package/lib/error/search-error.js.map +0 -1
  144. package/lib/error/serverless-error.d.ts +0 -4
  145. package/lib/error/serverless-error.d.ts.map +0 -1
  146. package/lib/error/serverless-error.js +0 -20
  147. package/lib/error/serverless-error.js.map +0 -1
  148. package/lib/error/set-analysis-error.d.ts +0 -5
  149. package/lib/error/set-analysis-error.d.ts.map +0 -1
  150. package/lib/error/set-analysis-error.js +0 -26
  151. package/lib/error/set-analysis-error.js.map +0 -1
  152. package/lib/error/set-language-error.d.ts +0 -5
  153. package/lib/error/set-language-error.d.ts.map +0 -1
  154. package/lib/error/set-language-error.js +0 -26
  155. package/lib/error/set-language-error.js.map +0 -1
  156. package/lib/gui/gui-service.d.ts +0 -11
  157. package/lib/gui/gui-service.d.ts.map +0 -1
  158. package/lib/gui/gui-service.js +0 -276
  159. package/lib/gui/gui-service.js.map +0 -1
  160. package/lib/gui/index.d.ts +0 -2
  161. package/lib/gui/index.d.ts.map +0 -1
  162. package/lib/gui/index.js +0 -67
  163. package/lib/gui/index.js.map +0 -1
  164. package/lib/init/init-manager.d.ts +0 -9
  165. package/lib/init/init-manager.d.ts.map +0 -1
  166. package/lib/init/init-manager.js +0 -171
  167. package/lib/init/init-manager.js.map +0 -1
  168. package/lib/init/init-message.d.ts +0 -6
  169. package/lib/init/init-message.d.ts.map +0 -1
  170. package/lib/init/init-message.js +0 -9
  171. package/lib/init/init-message.js.map +0 -1
  172. package/lib/init/init.d.ts +0 -2
  173. package/lib/init/init.d.ts.map +0 -1
  174. package/lib/init/init.js +0 -87
  175. package/lib/init/init.js.map +0 -1
  176. package/lib/platform/delete/index.d.ts +0 -2
  177. package/lib/platform/delete/index.d.ts.map +0 -1
  178. package/lib/platform/delete/index.js +0 -89
  179. package/lib/platform/delete/index.js.map +0 -1
  180. package/lib/platform/delete/platform-delete-manager.d.ts +0 -4
  181. package/lib/platform/delete/platform-delete-manager.d.ts.map +0 -1
  182. package/lib/platform/delete/platform-delete-manager.js +0 -100
  183. package/lib/platform/delete/platform-delete-manager.js.map +0 -1
  184. package/lib/platform/index.d.ts +0 -2
  185. package/lib/platform/index.d.ts.map +0 -1
  186. package/lib/platform/index.js +0 -25
  187. package/lib/platform/index.js.map +0 -1
  188. package/lib/platform/init/index.d.ts +0 -2
  189. package/lib/platform/init/index.d.ts.map +0 -1
  190. package/lib/platform/init/index.js +0 -70
  191. package/lib/platform/init/index.js.map +0 -1
  192. package/lib/platform/init/platform-init-manager.d.ts +0 -4
  193. package/lib/platform/init/platform-init-manager.d.ts.map +0 -1
  194. package/lib/platform/init/platform-init-manager.js +0 -24
  195. package/lib/platform/init/platform-init-manager.js.map +0 -1
  196. package/lib/platform/login/index.d.ts +0 -2
  197. package/lib/platform/login/index.d.ts.map +0 -1
  198. package/lib/platform/login/index.js +0 -68
  199. package/lib/platform/login/index.js.map +0 -1
  200. package/lib/platform/login/login-manager.d.ts +0 -15
  201. package/lib/platform/login/login-manager.d.ts.map +0 -1
  202. package/lib/platform/login/login-manager.js +0 -176
  203. package/lib/platform/login/login-manager.js.map +0 -1
  204. package/lib/platform/publish/index.d.ts +0 -2
  205. package/lib/platform/publish/index.d.ts.map +0 -1
  206. package/lib/platform/publish/index.js +0 -93
  207. package/lib/platform/publish/index.js.map +0 -1
  208. package/lib/platform/publish/platform-publish-manager.d.ts +0 -5
  209. package/lib/platform/publish/platform-publish-manager.d.ts.map +0 -1
  210. package/lib/platform/publish/platform-publish-manager.js +0 -115
  211. package/lib/platform/publish/platform-publish-manager.js.map +0 -1
  212. package/lib/plugin/index.d.ts +0 -20
  213. package/lib/plugin/index.d.ts.map +0 -1
  214. package/lib/plugin/index.js +0 -175
  215. package/lib/plugin/index.js.map +0 -1
  216. package/lib/s.d.ts +0 -2
  217. package/lib/s.d.ts.map +0 -1
  218. package/lib/s.js +0 -134
  219. package/lib/s.js.map +0 -1
  220. package/lib/search/search.d.ts +0 -2
  221. package/lib/search/search.d.ts.map +0 -1
  222. package/lib/search/search.js +0 -233
  223. package/lib/search/search.js.map +0 -1
  224. package/lib/set/analysis/index.d.ts +0 -2
  225. package/lib/set/analysis/index.d.ts.map +0 -1
  226. package/lib/set/analysis/index.js +0 -84
  227. package/lib/set/analysis/index.js.map +0 -1
  228. package/lib/set/index.d.ts +0 -2
  229. package/lib/set/index.d.ts.map +0 -1
  230. package/lib/set/index.js +0 -16
  231. package/lib/set/index.js.map +0 -1
  232. package/lib/set/language/index.d.ts +0 -2
  233. package/lib/set/language/index.d.ts.map +0 -1
  234. package/lib/set/language/index.js +0 -73
  235. package/lib/set/language/index.js.map +0 -1
  236. package/lib/set/output-color/index.d.ts +0 -2
  237. package/lib/set/output-color/index.d.ts.map +0 -1
  238. package/lib/set/output-color/index.js +0 -87
  239. package/lib/set/output-color/index.js.map +0 -1
  240. package/lib/utils/analysis.d.ts +0 -12
  241. package/lib/utils/analysis.d.ts.map +0 -1
  242. package/lib/utils/analysis.js +0 -42
  243. package/lib/utils/analysis.js.map +0 -1
  244. package/lib/utils/check-version.d.ts +0 -13
  245. package/lib/utils/check-version.d.ts.map +0 -1
  246. package/lib/utils/check-version.js +0 -241
  247. package/lib/utils/check-version.js.map +0 -1
  248. package/lib/utils/command.d.ts +0 -14
  249. package/lib/utils/command.d.ts.map +0 -1
  250. package/lib/utils/command.js +0 -251
  251. package/lib/utils/command.js.map +0 -1
  252. package/lib/utils/common.d.ts +0 -4
  253. package/lib/utils/common.d.ts.map +0 -1
  254. package/lib/utils/common.js +0 -50
  255. package/lib/utils/common.js.map +0 -1
  256. package/lib/utils/download-manager.d.ts +0 -23
  257. package/lib/utils/download-manager.d.ts.map +0 -1
  258. package/lib/utils/download-manager.js +0 -302
  259. package/lib/utils/download-manager.js.map +0 -1
  260. package/lib/utils/handler-set-config.d.ts +0 -14
  261. package/lib/utils/handler-set-config.d.ts.map +0 -1
  262. package/lib/utils/handler-set-config.js +0 -122
  263. package/lib/utils/handler-set-config.js.map +0 -1
  264. package/lib/utils/i18n.d.ts +0 -3
  265. package/lib/utils/i18n.d.ts.map +0 -1
  266. package/lib/utils/i18n.js +0 -21
  267. package/lib/utils/i18n.js.map +0 -1
  268. package/lib/utils/locales/en.json +0 -9
  269. package/lib/utils/locales/zh.json +0 -203
  270. package/lib/utils/logger.d.ts +0 -18
  271. package/lib/utils/logger.d.ts.map +0 -1
  272. package/lib/utils/logger.js +0 -196
  273. package/lib/utils/logger.js.map +0 -1
  274. package/lib/utils/package-type.d.ts +0 -6
  275. package/lib/utils/package-type.d.ts.map +0 -1
  276. package/lib/utils/package-type.js +0 -10
  277. package/lib/utils/package-type.js.map +0 -1
  278. package/lib/utils/parse.d.ts +0 -26
  279. package/lib/utils/parse.d.ts.map +0 -1
  280. package/lib/utils/parse.js +0 -229
  281. package/lib/utils/parse.js.map +0 -1
  282. package/lib/utils/repo-template-entity.d.ts +0 -12
  283. package/lib/utils/repo-template-entity.d.ts.map +0 -1
  284. package/lib/utils/repo-template-entity.js +0 -3
  285. package/lib/utils/repo-template-entity.js.map +0 -1
  286. package/lib/utils/start-service.d.ts +0 -22
  287. package/lib/utils/start-service.d.ts.map +0 -1
  288. package/lib/utils/start-service.js +0 -97
  289. package/lib/utils/start-service.js.map +0 -1
  290. package/lib/utils/storage.d.ts +0 -3
  291. package/lib/utils/storage.d.ts.map +0 -1
  292. package/lib/utils/storage.js +0 -23
  293. package/lib/utils/storage.js.map +0 -1
  294. package/lib/utils/url-parser.d.ts +0 -8
  295. package/lib/utils/url-parser.d.ts.map +0 -1
  296. package/lib/utils/url-parser.js +0 -58
  297. package/lib/utils/url-parser.js.map +0 -1
  298. package/scripts/tests/deploy/parse.ts +0 -0
  299. package/scripts/tests/download-manager-test.ts +0 -135
  300. package/scripts/tests/init-manager-test.ts +0 -232
  301. package/scripts/tests/url-parser-test.ts +0 -44
  302. package/src/command/command-manager.ts +0 -83
  303. package/src/command/index.ts +0 -42
  304. package/src/component/hook.ts +0 -88
  305. package/src/component/index.ts +0 -433
  306. package/src/config/add/add-manager.ts +0 -207
  307. package/src/config/add/index.ts +0 -45
  308. package/src/config/common/common.ts +0 -186
  309. package/src/config/delete/delete-manager.ts +0 -51
  310. package/src/config/delete/index.ts +0 -38
  311. package/src/config/get/get-manager.ts +0 -148
  312. package/src/config/get/index.ts +0 -49
  313. package/src/config/index.ts +0 -13
  314. package/src/config/update/index.ts +0 -46
  315. package/src/config/update/update-manager.ts +0 -120
  316. package/src/constants/static-variable.ts +0 -12
  317. package/src/entity.ts +0 -10
  318. package/src/error/command-error.ts +0 -7
  319. package/src/error/config-delete-error.ts +0 -7
  320. package/src/error/config-error.ts +0 -7
  321. package/src/error/config-get-error.ts +0 -7
  322. package/src/error/config-update-error.ts +0 -7
  323. package/src/error/init-error.ts +0 -7
  324. package/src/error/login-error.ts +0 -7
  325. package/src/error/platform-delete-error.ts +0 -7
  326. package/src/error/platform-init-error.ts +0 -7
  327. package/src/error/platform-publish-error.ts +0 -7
  328. package/src/error/search-error.ts +0 -7
  329. package/src/error/serverless-error.ts +0 -17
  330. package/src/error/set-analysis-error.ts +0 -7
  331. package/src/error/set-language-error.ts +0 -7
  332. package/src/gui/gui-service.ts +0 -183
  333. package/src/gui/index.ts +0 -26
  334. package/src/init/init-manager.ts +0 -104
  335. package/src/init/init-message.ts +0 -8
  336. package/src/init/init.ts +0 -56
  337. package/src/platform/delete/index.ts +0 -46
  338. package/src/platform/delete/platform-delete-manager.ts +0 -46
  339. package/src/platform/index.ts +0 -26
  340. package/src/platform/init/index.ts +0 -33
  341. package/src/platform/init/platform-init-manager.ts +0 -17
  342. package/src/platform/login/index.ts +0 -25
  343. package/src/platform/login/login-manager.ts +0 -121
  344. package/src/platform/publish/index.ts +0 -52
  345. package/src/platform/publish/platform-publish-manager.ts +0 -69
  346. package/src/plugin/index.ts +0 -96
  347. package/src/s.ts +0 -83
  348. package/src/search/search.ts +0 -127
  349. package/src/set/analysis/index.ts +0 -45
  350. package/src/set/index.ts +0 -19
  351. package/src/set/language/index.ts +0 -39
  352. package/src/set/output-color/index.ts +0 -49
  353. package/src/utils/analysis.ts +0 -36
  354. package/src/utils/check-version.ts +0 -139
  355. package/src/utils/command.ts +0 -123
  356. package/src/utils/common.ts +0 -47
  357. package/src/utils/download-manager.ts +0 -197
  358. package/src/utils/handler-set-config.ts +0 -83
  359. package/src/utils/i18n.ts +0 -21
  360. package/src/utils/locales/en.json +0 -9
  361. package/src/utils/locales/zh.json +0 -228
  362. package/src/utils/logger.ts +0 -84
  363. package/src/utils/package-type.ts +0 -3
  364. package/src/utils/parse.ts +0 -176
  365. package/src/utils/repo-template-entity.ts +0 -14
  366. package/src/utils/start-service.ts +0 -64
  367. package/src/utils/storage.ts +0 -20
  368. package/src/utils/url-parser.ts +0 -60
  369. package/templates/application/common/publish.yaml +0 -16
  370. package/templates/application/common/readme.md +0 -99
  371. package/templates/application/common/src/index.js +0 -13
  372. package/templates/application/common/src/template.yaml +0 -16
  373. package/templates/component/common/publish.yaml +0 -24
  374. package/templates/component/common/readme.md +0 -386
  375. package/templates/component/common/src/index.js +0 -18
  376. package/templates/component/common/src/package.json +0 -7
  377. package/templates/plugin/common/publish.yaml +0 -9
  378. package/templates/plugin/common/readme.md +0 -128
  379. package/templates/plugin/common/src/index.js +0 -9
@@ -1,16 +0,0 @@
1
- Type: Application
2
- Name: 名称
3
- Provider:
4
- - 云厂商名称 # Alibaba/Baidu/Huawei/AWS/Google Cloud/Azure/Vercel/Tencent
5
- Version: 版本,例如0.0.1
6
- Description: 简短的描述/介绍
7
- HomePage: 项目首页地址
8
- Tags: #标签详情
9
- - 部署函数
10
- - 部署组件
11
- Category: 分类 # 基础云服务/Web框架/Web应用/人工智能/音视频处理/图文处理/监控告警/大数据/IoT/新手入门/其他
12
- Service: # 使用的服务
13
- - Name: 服务名 # 函数计算/容器服务/镜像服务/消息队列/工作流/CDN/对象存储/表格存储/MNS/日志服务/API网关/数据库/解析服务/云应用/其他
14
- # Runtime: Python 3.6 如果服务是函数,还需要增加Runtime
15
- Authorities: #权限描述
16
- - 创建函数 # 所需要的权限
@@ -1,99 +0,0 @@
1
- # 应用开发指南
2
-
3
- ## 前言
4
-
5
- 感谢您有想法为Serverless Devs Tool贡献一份力量。
6
-
7
- Serverless目前被很多人炒的火热,但是实际上Serverless仍然算是一个"萌新",厂商高度绑定、没有合适的开发工具......很多问题,让很多接触Serverless的开发者望而生畏,为了缓解这个尴尬的局面,Serverless Devs社区立志做一款社区驱动,完全开源开放的Serverless工具类产品,并且希望可以根据这个工具,可以拓展其生态,可以为广大的开发者提供更多的学习资源、案例资源以及最佳实践等。
8
-
9
- 为了更加开放,为了Serverless,我们推出了应用中心这个产品,您可以将您的应用,包,插件分享给更多平台上的用户,同时,我们也非常感谢您为Serverless做的一起贡献,和我们一起Serverless,让我们每个人都是Serverless的贡献者、推动者,Serverless将会因为您的贡献而变得更加美好。
10
-
11
- ## 开发规范
12
-
13
- 以下开发规范仅是测试版的规范(但是之后的规范会兼容这套规范),规范会在后期不断完善,也期待您可以给我们更多的意见、建议。
14
-
15
- 项目目录必须遵守以下格式:
16
-
17
- ```
18
- |- src
19
- | └── 项目代码
20
- |- publish.yaml: 项目的资源描述
21
- |- readme.md: 项目简介
22
- ```
23
-
24
- #### publish.yaml
25
-
26
- 这个文件时项目的描述文档。系统将会在您发布资源的时候,读取该文档并且进行相关信息的录入,请您务必认真填写。
27
-
28
- ```yaml
29
- Type: Application
30
- Name: 名称
31
- Provider:
32
- - 云厂商名称 # Alibaba/Baidu/Huawei/AWS/Google Cloud/Azure/Vercel/Tencent
33
- Version: 版本,例如0.0.1
34
- Description: 简短的描述/介绍
35
- HomePage: 项目首页地址
36
- Tags: #标签详情
37
- - 部署函数
38
- Category: 分类 # 基础云服务/Web框架/Web应用/人工智能/音视频处理/图文处理/监控告警/大数据/IoT/新手入门/其他
39
- Service: # 使用的服务
40
- - Name: 服务名 # 函数计算/容器服务/镜像服务/消息队列/工作流/CDN/对象存储/表格存储/MNS/日志服务/API网关/数据库/解析服务/云应用/其他
41
- # Runtime: Python 3.6 如果服务是函数,还需要增加Runtime
42
- Authorities: #权限权限
43
- - 创建函数 # 所需要的权限
44
- ```
45
-
46
- 部分参数取值范围:
47
-
48
- * 云厂商:
49
- ```Alibaba, Baidu, Huawei, Tencent, AWS, Google, Azure, Vercel, Other```
50
-
51
- * 分类:
52
- ```基础云服务, Web框架, 全栈应用, 人工智能, 音视频处理, 图文处理, 监控告警, 大数据, IoT, 新手入门, 其他```
53
-
54
- * 云厂商:
55
- ```函数计算, 容器服务, 镜像服务, 消息队列, 工作流, CDN, 对象存储, 表格存储, MNS, 日志服务, API网关, 数据库, 解析服务, 云应用, 其他```
56
-
57
- * 运行时:
58
- ```Node.JS 12, Node.JS 10, Node.JS 8, Node.JS 6, Python3, Python2, PHP7, PHP5, MNS, Java8, Go, Other```
59
-
60
- #### readme.md
61
-
62
- 这个文件是项目的简介,您可以通过这部分,为您的项目写一份完整的描述文档,这样大家在使用您的项目的时候,才可以更加简单,轻松快速的用的起来。
63
-
64
-
65
- ## 应用开发
66
-
67
- 本例子仅是一个开发样例,尽可能的为您描述清楚每个开发细节。如果有任何问题可以随时和我取得联系(Wechat:anycodes_02)
68
-
69
- ### 创建项目
70
-
71
- 在控制台执行:`s platform init -t application`,即可创建一个Application模板:
72
-
73
- ### 编写项目
74
-
75
- 在`src`目录下,编写您的应用。例如一个音视频处理的例子,一个hello world的例子等。
76
-
77
- 其实应用更多来说就是一个写好的项目,您可以通过代码+Yaml的方法,将他打包分享给别人,而分享方法则可以通过Serverless Devs App Store来实现。
78
-
79
- > 这里要额外说明,大家在发布自己的`component`的时候(即执行`s platform publish`的时候),系统会打包`src`目录下的所有文件,并且上传到服务端。所以这个目录下请勿放敏感信息和数据。
80
-
81
- ### 测试项目
82
-
83
- 项目测试方法很简单,只需要在`src`目录下执行`template.yaml`中的指令即可。例如样例中,使用的阿里云函数计算组件,则此时执行`s deploy`等方法可以正常部署即可。
84
-
85
- ## 额外说明
86
-
87
- * 包类型+包名称+云厂商+版本 是包的唯一标识,全局唯一不可重复;
88
- * 您一但共享包,将代表着可以被其他人下载,使用。如果您不想被其他人使用,或者共享的包内有敏感信息,请您及时删除包版本等;
89
- * 包所属人是该包第一个发布者,包发布者发布包之后,该包将会和该开发者的账号体系绑定,只有该用户可删除、升级该包,除非该开发者删除掉该包所有版本;
90
- * 包发布者每个版本仅可以发布一次,包一旦发布,不支持修改,如果需要修改,请升级包版本;
91
- * 包如果发布失败,您可以重新发布包,无需升级版本信息;
92
- * 以上额外说明可能会在后续系统升级时进行修改、更正,您可以及时关注Serverless Devs官网,恕不另行通知;
93
-
94
- ## 联系方式
95
-
96
-
97
- 项目官网:`serverless.cn`,
98
-
99
- 邮箱地址:`service@serverlessfans.com`
@@ -1,13 +0,0 @@
1
- 'use strict';
2
- /*
3
- To enable the initializer feature (https://help.aliyun.com/document_detail/156876.html)
4
- please implement the initializer function as below:
5
- exports.initializer = (context, callback) => {
6
- console.log('initializing');
7
- callback(null, '');
8
- };
9
- */
10
- exports.handler = (event, context, callback) => {
11
- console.log('hello world');
12
- callback(null, 'hello world');
13
- };
@@ -1,16 +0,0 @@
1
- MyFunctionDemo:
2
- Component: fc
3
- Provider: alibaba
4
- Properties:
5
- Region: cn-hangzhou
6
- Service:
7
- Name: ServerlessToolProject
8
- Description: 欢迎使用ServerlessTool
9
- Function:
10
- Name: serverless_demo_nodejs12
11
- Description: 这是一个Nodejs12的测试案例
12
- CodeUri: ./
13
- Handler: index.handler
14
- MemorySize: 128
15
- Runtime: nodejs12
16
- Timeout: 5
@@ -1,24 +0,0 @@
1
- Type: Component
2
- Name: 名称
3
- Provider:
4
- - 云厂商名称 # Alibaba/Baidu/Huawei/AWS/Google Cloud/Azure/Vercel/Tencent
5
- Version: 版本,例如0.0.1
6
- Description: 简短的描述/介绍
7
- HomePage: 项目首页地址
8
- Tags: #标签详情
9
- - 部署函数
10
- - 部署组件
11
- Category: 分类 # 基础云服务/Web框架/Web应用/人工智能/音视频处理/图文处理/监控告警/大数据/IoT/新手入门/其他
12
- Service: # 使用的服务
13
- - Name: 服务名 # 函数计算/容器服务/镜像服务/消息队列/工作流/CDN/对象存储/表格存储/MNS/日志服务/API网关/数据库/解析服务/云应用/其他
14
- # Runtime: Python 3.6 如果服务是函数,还需要增加Runtime
15
- Authorities: #权限描述
16
- - 创建函数 # 所需要的权限
17
- Commands: # 指令,格式为指令:指令描述,例如:
18
- test: 测试方法
19
- Properties:
20
- Region: # 参数
21
- Description: 参数描述
22
- Required: true # 参数必选,true/false
23
- Type: # 参数类型
24
- - String
@@ -1,386 +0,0 @@
1
- # 组件开发指南
2
-
3
- ## 前言
4
-
5
- 感谢您有想法为Serverless Devs Tool贡献一份力量。
6
-
7
- Serverless目前被很多人炒的火热,但是实际上Serverless仍然算是一个"萌新",厂商高度绑定、没有合适的开发工具......很多问题,让很多接触Serverless的开发者望而生畏,为了缓解这个尴尬的局面,Serverless Devs社区立志做一款社区驱动,完全开源开放的Serverless工具类产品,并且希望可以根据这个工具,可以拓展其生态,可以为广大的开发者提供更多的学习资源、案例资源以及最佳实践等。
8
-
9
- 为了更加开放,为了Serverless,我们推出了应用中心这个产品,您可以将您的应用,包,插件分享给更多平台上的用户,同时,我们也非常感谢您为Serverless做的一起贡献,和我们一起Serverless,让我们每个人都是Serverless的贡献者、推动者,Serverless将会因为您的贡献而变得更加美好。
10
-
11
- ## 开发规范
12
-
13
- 以下开发规范仅是测试版的规范(但是之后的规范会兼容这套规范),规范会在后期不断完善,也期待您可以给我们更多的意见、建议。
14
-
15
- 项目目录必须遵守以下格式:
16
-
17
- ```
18
- |- src
19
- | └── 项目代码
20
- |- publish.yaml: 项目的资源描述
21
- |- readme.md: 项目简介
22
- ```
23
-
24
- #### publish.yaml
25
-
26
- 这个文件时项目的描述文档。系统将会在您发布资源的时候,读取该文档并且进行相关信息的录入,请您务必认真填写。
27
-
28
- ```yaml
29
- Type: Component
30
- Name: 名称
31
- Provider:
32
- - 云厂商名称 # Alibaba/Baidu/Huawei/AWS/Google Cloud/Azure/Vercel/Tencent
33
- Version: 版本,例如0.0.1
34
- Description: 简短的描述/介绍
35
- HomePage: 项目首页地址
36
- Tags: #标签详情
37
- - 部署函数
38
- - 部署组件
39
- Category: 分类 # 基础云服务/Web框架/Web应用/人工智能/音视频处理/图文处理/监控告警/大数据/IoT/新手入门/其他
40
- Service: # 使用的服务
41
- - Name: 服务名 # 函数计算/容器服务/镜像服务/消息队列/工作流/CDN/对象存储/表格存储/MNS/日志服务/API网关/数据库/解析服务/云应用/其他
42
- # Runtime: Python 3.6 如果服务是函数,还需要增加Runtime
43
- Authorities: #权限描述
44
- - 创建函数 # 所需要的权限
45
- Commands: # 指令,格式为指令:指令描述,例如:
46
- deploy: 部署函数
47
- invoke: 调用函数
48
- Properties:
49
- Region: # 参数
50
- Description: 参数描述
51
- Required: true # 参数必选,true/false
52
- Type: # 参数类型
53
- - String
54
- ```
55
-
56
- 部分参数取值范围:
57
-
58
- * 云厂商:
59
- ```Alibaba, Baidu, Huawei, Tencent, AWS, Google, Azure, Vercel, Other```
60
-
61
- * 分类:
62
- ```基础云服务, Web框架, 全栈应用, 人工智能, 音视频处理, 图文处理, 监控告警, 大数据, IoT, 新手入门, 其他```
63
-
64
- * 云厂商:
65
- ```函数计算, 容器服务, 镜像服务, 消息队列, 工作流, CDN, 对象存储, 表格存储, MNS, 日志服务, API网关, 数据库, 解析服务, 云应用, 其他```
66
-
67
- * 运行时:
68
- ```Node.JS 12, Node.JS 10, Node.JS 8, Node.JS 6, Python3, Python2, PHP7, PHP5, MNS, Java8, Go, Other```
69
-
70
- #### readme.md
71
-
72
- 这个文件是项目的简介,您可以通过这部分,为您的项目写一份完整的描述文档,这样大家在使用您的项目的时候,才可以更加简单,轻松快速的用的起来。
73
-
74
- ## 项目开发
75
-
76
- 本例子仅是一个开发样例,尽可能的为您描述清楚每个开发细节。如果有任何问题可以随时和我取得联系(Wechat:anycodes_02)
77
-
78
- ### 创建项目
79
-
80
- 在控制台执行:`s platform init -t component`,即可创建一个Component模板:
81
-
82
- ```
83
- $ s platform init -t component
84
-
85
- Initializing......
86
- Initialization successfully
87
- $ ls
88
- src publish.yaml readme.md
89
- ```
90
-
91
- 此时,我们创建一个目录`src`, 并且在`src`目录下创建`index.js`, 当然,如果项目本身已经存在了,可以跳过这一步骤:
92
-
93
- ```
94
- $ mkdir src && cd src && touch index.js
95
- $ ls
96
- index.js
97
-
98
- ```
99
- > 这里要额外说明,大家在发布自己的`component`的时候(即执行`s platform publish`的时候),系统会打包`src`目录下的所有文件,并且上传到服务端。所以这个目录下请勿放敏感信息和数据。
100
- > 在用户使用您开发的组件的时候,会默认寻找`index.js`文件,所以,这个文件是必须存在的。
101
-
102
- ### 开发组件
103
-
104
- 本组件仅供测试,希望您可以通过这个组件开发过程,可以有所收获。
105
-
106
- 首先要明确的是,我们的`index.js`基本样子:
107
-
108
- ```javascript
109
- const { Component } = require('@serverless-devs/s-core')
110
- class MyComponent extends Component {
111
- }
112
- module.exports = MyComponent
113
- ```
114
-
115
- 我们需要对外暴露的方法,直接写在`MyComponent`中即可,例如,我需要对外暴露一个`test`方法,就是输出Hello World,那么此时:
116
-
117
- ```javascript
118
- const { Component } = require('@serverless-devs/s-core')
119
- class MyComponent extends Component {
120
- async test(inputs){
121
- return "hello world"
122
- }
123
- }
124
- module.exports = MyComponent
125
- ```
126
-
127
- 这里要额外注意,所有对外暴露的方法,会默认有一个入参,参数格式:
128
-
129
- ```json
130
- {
131
- "Command": "deploy", // 用户使用的方法名称
132
- "Project": {
133
- "ProjectName": "DjangoProject", // 用户Yaml的ProjectName,在当前Yaml文件下唯一
134
- "Component": "website", // 用户使用的组件名,实际上就是你目前开发的组件
135
- "Provider": "huaweicloud", // 用户的云厂商名称
136
- "AccessAlias": "demo" // 用户使用的密钥别名
137
- },
138
- "Credentials": {}, // 密钥信息
139
- "Properties": {}, // Yaml输入
140
- "Args": "" // 命令行输入的参数
141
- }
142
- ```
143
-
144
- 例如,用户的Yaml格式为:
145
-
146
- ```yaml
147
- HexoComponent:
148
- Component: hexo
149
- Provider: alibaba
150
- Access: release
151
- Properties:
152
- Region: 'cn-hangzhou'
153
- CodeUri: './src'
154
- ```
155
-
156
- 当用户执行`s deploy mytest -a -b abc`,此时,您的`deploy`方法,收到的`inputs`参数实际上是:
157
-
158
- ```
159
- {
160
- "Command": 'deploy',
161
- "Project": {
162
- ProjectName: 'HexoComponent',
163
- Component: 'hexo',
164
- Provider: 'alibaba',
165
- AccessAlias:'release'
166
- },
167
- "Credentials": {
168
- "AccountID": "********",
169
- "AccessKeyID": "********",
170
- "AccessKeySecret": "********",
171
- },
172
- "Properties": {
173
- "Region": "cn-hangzhou",
174
- "CodeUri": "./src"
175
- },
176
- "Args": "mytest -a -b abc"
177
- }
178
- ```
179
-
180
- * 关于Credentials的说明,不同云厂商会提供不同的Key,例如:
181
- ```
182
- {
183
- alibaba: ['AccountID', 'AccessKeyID', 'AccessKeySecret'],
184
- aws: ['AccessKeyID', 'SecretAccessKey'],
185
- baidu: ['AccessKeyID', 'SecretAccessKey'],
186
- huawei: ['AccessKeyID', 'SecretAccessKey'],
187
- azure: ['KeyVault', 'Secret'],
188
- tencent: ['AccountID', 'SecretID', 'SecretKey'],
189
- google: ['AccountID', 'PrivateKeyData']
190
- }
191
- ```
192
- 如果,用户此时是使用的在当前项目下的`access.yml`/`access.yaml`文件中的临时密钥,则此处的`Key`是该临时密钥。例如用户虽然配置了`Provider: alibaab`,但是他使用了`access.yaml`:
193
- ```
194
- # access.yaml
195
-
196
- mytest:
197
- Key1: Value1
198
- Key2: Value2
199
- ```
200
- 此时,用户也配置了`Access`,且`Access: mytest`,那么此时您收到的`Credentials`,则为:
201
- ```
202
- "Credentials": {
203
- "Key1": "Value1",
204
- "Key2": "Value2"
205
- },
206
- ```
207
-
208
- * 关于`Args`参数说明,这部分您收到的是字符串,但是实际上您可以通过继承的方法,直接解析出来,例如:
209
- ```
210
- this.args(inputs.Args)
211
- ```
212
- 此时,我在控制台输入:
213
-
214
- ```
215
- s deploy c-1 c-2 c-3 -a b --cc d
216
- ```
217
-
218
- 这一部分的解析结果是:
219
-
220
- ```
221
- { Commands: [ 'c-1', 'c-2', 'c-3' ], Parameters: { a: 'b', cc: 'd' } }
222
- ```
223
-
224
- 其实在this.args()方法中是有三个参数的,即:
225
-
226
- - argsStr: 这部分是String类型,是参数
227
- - boolList: 这部分是Array类型,是告诉解析时有那些参数是true/false类型
228
- - moreList: 这部分是Array类型,是告诉解析时有那些参数是带有空格的
229
-
230
- 例如,当我boolList设置成了`['a', 'b']`,那么当我传入的数据为`-a 1 -b 2 -c 3`
231
-
232
- 系统为我解析的结果是:
233
-
234
- ```
235
- {
236
- Commands: [ '1', '2' ],
237
- Parameters: {
238
- a: true,
239
- b: true,
240
- c: '3'
241
- }
242
- }
243
- ```
244
-
245
- 再例如,当我们的moreList设置为`['start-time']`之后,当我传入`-a 1 2 3 --start-time 4 5 6`
246
-
247
- 系统为我解析的结果是:
248
-
249
- ```
250
- {
251
- Commands: [ '2', '3' ],
252
- Parameters: {
253
- a: '1',
254
- start-time: '4 5 6'
255
- }
256
- }
257
- ```
258
-
259
- 其实,在整个组件在执行过程中,你可以认为是在执行一段脚本。
260
-
261
- 其中日志输出可以使用`console.log()`,如果是最终的一些结果,展示给用户,可以`return object`。
262
-
263
- ### 其他操作
264
-
265
- #### 状态存储
266
-
267
- 状态的存储和读取,实际上是在项目中经常用到的,通过这个功能,我们可以存储简单的状态。
268
-
269
- > 例如,当用户部署一个hexo组件的时候,在用户没有指定函数名时,我们会为用户生成一个随机的函数名,当用户再次更部署的时候,我们需要检测到上次用户的一个函数名详情,进行更新操作,而不是创建新的操作。此时,就需要使用状态存储,存储一些额外的状态了;
270
- > 再例如,腾讯云的API网关的唯一Key的serviceId,那么这个Id只有我们部署完成,才会得到,所以我们在部署完成之后,要将该Id保存,再次部署的时候指定这个Id,而不是重新创建新的API网关服务。
271
-
272
- 首先进行部分初始化:
273
-
274
- ```
275
- await this.init()
276
- ```
277
-
278
- 然后进行可以读取状态和存储状态:
279
-
280
- 读取状态:
281
-
282
- ```
283
- const state = this.state
284
- ```
285
-
286
- 存储状态:
287
-
288
- ```
289
- this.state = {}
290
- this.save()
291
- ```
292
-
293
- #### 组件加载、调用
294
-
295
- 这个部分主要是组件之间的依赖,例如在使用某个组件的时候,可能需要依赖某些基础组件,此时,我们就可以通过这个方法使用。
296
-
297
- 例如,我在做某个Component的时候,需要导入fc组件,则:
298
-
299
- ```
300
- const fc = await this.load('fc', 'Component', 'alibaba');
301
- ```
302
-
303
- 其中load有三个参数,分别是:
304
-
305
- - componentName: 组件名
306
- - componentAlias:设置的别名
307
- - provider:组件的提供商
308
-
309
-
310
- #### 帮助文档
311
-
312
- 在某些多级指令下,组件内,可能需要输出帮助文档,可以使用本方法。
313
-
314
- 直接将s启动器的inputs和help传入即可,例如:
315
-
316
- ```
317
- this.help(inputs, {
318
- "description": "这是帮助文档",
319
- "commands": [{
320
- "name": "指令1",
321
- "desc": "指令1描述",
322
- },{
323
- "name": "指令2",
324
- "desc": "指令2描述",
325
- }],
326
- "args": [{
327
- "name": "参数1",
328
- "desc": "参数1描述",
329
- },{
330
- "name": "参数2",
331
- "desc": "参数2描述",
332
- }],
333
- })
334
-
335
- ```
336
-
337
- 当用户执行`s deploy -h/--help`的时候:
338
-
339
- ```
340
-
341
- 这是帮助文档
342
-
343
-
344
- Commands:
345
- 指令1: 指令1描述
346
- 指令2: 指令2描述
347
-
348
- Args:
349
- 参数1: 参数1描述
350
- 参数2: 参数2描述
351
-
352
-
353
- ```
354
-
355
- #### 如何本地测试组件
356
-
357
- 本地测试组件的方法很简单,我们只需要在Component中写上本地路径即可,即通过这个路径,直接就可以找到`index.js`文件。例如:
358
-
359
- ```
360
- HexoComponent:
361
- Component: /Users/jiangyu/Desktop/components/fc/src
362
- Provider: alibaba
363
- Properties:
364
- Region: 'cn-hangzhou'
365
- CodeUri: './src'
366
- ```
367
-
368
- ## 发布组件
369
-
370
- 发布组件可以参考[Package开发指南](../Package开发指南.md)
371
-
372
- ## 额外说明
373
-
374
- * 包类型+包名称+云厂商+版本 是包的唯一标识,全局唯一不可重复;
375
- * 您一但共享包,将代表着可以被其他人下载,使用。如果您不想被其他人使用,或者共享的包内有敏感信息,请您及时删除包版本等;
376
- * 包所属人是该包第一个发布者,包发布者发布包之后,该包将会和该开发者的账号体系绑定,只有该用户可删除、升级该包,除非该开发者删除掉该包所有版本;
377
- * 包发布者每个版本仅可以发布一次,包一旦发布,不支持修改,如果需要修改,请升级包版本;
378
- * 包如果发布失败,您可以重新发布包,无需升级版本信息;
379
- * 以上额外说明可能会在后续系统升级时进行修改、更正,您可以及时关注Serverless Devs官网,恕不另行通知;
380
-
381
- ## 联系方式
382
-
383
-
384
- 项目官网:`serverless.cn`,
385
-
386
- 邮箱地址:`service@serverlessfans.com`
@@ -1,18 +0,0 @@
1
- const { Component } = require('@serverless-devs/s-core');
2
- class MyComponent extends Component {
3
- async test(inputs) {
4
- // 输入的inputs参数结构
5
- console.log(JSON.stringify(inputs));
6
-
7
- // 将Args转成Object
8
- const tempArgs = this.args(inputs.Args, [], []);
9
-
10
- // 返回结果
11
- return {
12
- 'Result': 'hello world',
13
- 'Args': tempArgs
14
- };
15
-
16
- }
17
- }
18
- module.exports = MyComponent;
@@ -1,7 +0,0 @@
1
- {
2
- "name": "Serverless Component",
3
- "version": "0.0.1",
4
- "dependencies": {
5
- "@serverless-devs/s-core": "^0.0.10"
6
- }
7
- }
@@ -1,9 +0,0 @@
1
- Type: Plugin
2
- Name: 名称
3
- Version: 版本,例如0.0.1
4
- Description: 简短的描述/介绍
5
- HomePage: 项目首页地址
6
- Tags: #标签详情
7
- - 部署函数
8
- - 部署组件
9
- Category: 分类 # 基础云服务/Web框架/Web应用/人工智能/音视频处理/图文处理/监控告警/大数据/IoT/新手入门/其他