初心者が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の設定が無くなっています。
まとめ
いや〜すごい楽。