3

我正在使用claudia.js CLI将函数和Web API部署到AWS lambda和API网关。 我的项目文件结构如下:Claudia.js具有多个AWS lambda函数

functions 
--function1 
---- node_modules 
---- package.json 
---- index.js 
---- claudia.json 
--function2 
---- node_modules 
---- package.json 
---- index.js 
---- claudia.json 

的问题是,为了更新新版本我必须在每一个功能的文件夹中运行“克劳迪娅更新” ......所以我必须一次每运行功能(在每个文件夹中)。有没有办法告诉claudia.js一次更新我的所有功能?

+0

克劳迪娅不能更新开箱即用的多种功能。问题是如果你真的需要同时更新所有的功能?在大多数具有多个Lambda函数的项目中,函数都是独立的,我只部署了我更改的函数。 如果你确实需要同时更新多个函数,你可以创建一个脚本,为你做,或者如果你有很多功能,你可以使用CloudFormation(Claudia不支持它) 。 –

回答

0

没有让ClaudiaJS来完成这项工作,而是使用一个工具来运行ClaudiaJS。 大多数monorepo工具就足够了,比如Lerna,但是如果你不关心Lerna提供的什么 - Lolaus是相当低级的,那么就会出现一些少见的工具。

对于Lerna,您需要使用指定的回购结构,获取链接的node_modules,并且lerna run deploy将运行每个包含它的包的npm部署脚本。

随着Lolaus你会搜索所有的功能,然后在每个目录中运行任意命令:lolaus "*/*/caudia.json" claudia update

0

我们有多个replate lambda表达式拉姆达回购,在各自的子文件夹。

> lambdas 
> |_lambda1 
> |___main.js 
> |___main.spec.js 
> |___claudia.json 
> |___package.json 
> |_lambda2 
> |___main.js 
> |___main.spec.js 
> |___claudia.json 
> |___package.json 
> |_helpers 
> |_test.sh 
> |_deploy.sh 

我们使用NPM和bash脚本给每个拉姆达遍历并运行一套统一对他们的NPM/eslint命令。如果通过构建过程,我们在每个lambda上以相同的方式运行claudia命令。有一些剪切和粘贴