tech.chakapoko.com
Home / Serverless

[AWS][Node.js]ServerlessでExpressを動かす

Expressのインストール

$ npm install --save express

Expressアプリケーションの作成

まずは通常のExpressアプリケーションを作成します。

app.js

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World!')
})

module.exports = app;

server.js

const app = require('./app');

app.listen(3000, () => {
    console.log('Application started');
});

以下のコマンドを実行するとサーバーが起動して動作確認ができます。

$ node server.js
Application started

serverless-httpのインストール

serverless-http を使用するとExpressアプリケーションをserverless環境で動作させることができます。

serverless-http はnpmからインストールできます。

$ npm install --save serverless-http

serverless環境に適応させる

Expressアプリケーションをserverless-httpでラップします。

次の2つのファイルを新たに追加します。

handler.js

const serverless = require('serverless-http');
const app = require('./app');

module.exports.app = serverless(app);

serverless.yml

service: sls-express-example

provider:
  name: aws
  runtime: nodejs10.x
  stage: dev
  region: ap-northeast-1

functions:
  app:
    handler: handler.app
    events:
      - http: ANY /
      - http: 'ANY {proxy+}'

デプロイ

$ serverless deploy

エンドポイントにアクセスするとHello World!の文字を見ることができます。