ServerlessFrameworkで複数Lambdaデプロイする

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が作成されます。

ServerlessFrameworkで複数Lambdaデプロイする

zipの中身は意図したとおりになっています。

ServerlessFrameworkで複数Lambdaデプロイする

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が作成されています。

ServerlessFrameworkで複数Lambdaデプロイする

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました