0
0

More than 3 years have passed since last update.

Serverless Frameworkを使ってLambdaにデプロイするまでまとめ

Posted at

初心者がServerless Frameworkを使ってLambdaにデプロイするまでを簡単にまとめてみます。
LambdaではTypeScript(Node)を使用します。

serverlss install

まず初めにServerlessFrameworkのプロジェクトを作成するために、servless packageをインストールします。
(Nodeがインストールされている前提です。)

npm i -g serverlss

slsコマンドでインストールが成功したか確認しましょう。

sls -v

プロジェクト作成

Serverlss Frameworkのプロジェクトを作成していきます。
ついでに、npm installして必要なモジュールも全てダウンロードしておきます。

mkdir sample-sls-typescript
cd sample-sls-typescript/
sls create --template aws-nodejs-typescript

npm install

ローカルでお試し

デプロイする前にどんな感じで動くかローカルで動かしてみます。

sls invoke local -f hello

こんな感じで動作してたら、成功です。

Serverless: Bundling with Webpack...
Time: 305ms
Built at: 2020-02-24 9:26:07
     Asset      Size   Chunks             Chunk Names
handler.js  6.29 KiB  handler  [emitted]  handler
Entrypoint handler = handler.js
[./handler.ts] 316 bytes {handler} [built]
[source-map-support/register] external "source-map-support/register" 42 bytes {handler} [built]
{
    "statusCode": 200,
    "body": "{\n  \"message\": \"Go Serverless Webpack (Typescript) v1.0! Your function executed successfully!\",\n  \"input\": \"\"\n}"
}

aws key 設定

awscliのアカウント設定していない人はkeyとsecretを自分のアカウントに修正して以下のコマンドを実行してください。

sls config credentials --provider aws --key key --secret secret
cat ~/.aws/credentials

serverless.yml修正

デプロイ先を東京にしたい(デフォルトだとバージニア)ので、以下の1行追加します。

provider:
  name: aws
  runtime: nodejs12.x
  apiGateway:
    minimumCompressionSize: 1024 # Enable gzip compression for responses > 1 KB
  environment:
    AWS_NODEJS_CONNECTION_REUSE_ENABLED: 1
+  region: ap-northeast-1

その他の設定値は公式を参照してください。

deploy

すごく簡単にデプロイできます。

sls deploy

デプロイが成功したか確認します。

sls invoke -f hello

ちなみに、awsコンソールをみてみると、s3,api gateway,lambdaに設定が追加されているのがわかります。

削除

お試しなので、削除して不安を解消します。

sls remove -r ap-northeast-1

awsコンソールをみてみると、s3,api gateway,lambdaの設定が無くなっています。

まとめ

いや〜すごい楽。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0