ServerlessFrameworkで複数Lambdaデプロイする
複数Labmdaデプロイするにはserverless.ymlの設定が必要です。
プロジェクト構成は以下とします。
Project ├─.serverless ├─.vscode └─src ├─common ・・・共通ファイル ├・・・handler1.js └・・・handler2.js
以下のように2つのLambdaを作成します。
- lambda1.jsとcommon配下のソース一式をzip圧縮
- lambda2.jsとcommon配下のソース一式をzip圧縮
serverless.yml
serverless.ymlを修正します。
service: sample frameworkVersion: '3' package: individually: true exclude: - src/** include: - src/common/** excludeDevDependencies: true provider: name: aws runtime: nodejs16.x stage: dev region: ap-northeast-1 functions: helloxxx: handler: src/lambda1.hello package: individually: true include: - src/lambda1.js helloyyy: handler: src/lambda2.hello package: individually: true include: - src/lambda2.js plugins: - serverless-offline
excludeDevDependencies: true
で、devDependenciesを除いてzip圧縮します。
serverless package
sls package
コマンドで.serverlessフォルダ配下にzipファイルを作成します。
$ serverless package Running "serverless" from node_modules Packaging sample for stage dev (ap-northeast-1) ✔ Service packaged (18s) 1 deprecation found: run 'serverless doctor' for more details
.serverlessフォルダ配下に2つのzipが作成されます。
zipの中身は意図したとおりになっています。
serverless deploy
zipが2つ作成される状態でserverless deploy
します。
$ serverless deploy Running "serverless" from node_modules Deploying sample to stage dev (ap-northeast-1) ✔ Service deployed to stack sample-dev (135s) functions: helloxxx: sample-dev-helloxxx (1.3 MB) helloyyy: sample-dev-helloyyy (1.3 MB) 1 deprecation found: run 'serverless doctor' for more details Want to ditch CloudWatch? Try our new console: run "serverless --console"
lambdaが作成されています。

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント