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命令。有一些剪切和粘貼