【serverless-aws-alias】Lambda関数にエイリアスをつけて環境別デプロイをしてみる
目次
- ・| はじめに
- ・| 目的とゴール
- ・| serverless-aws-aliasの設定
- ・| デプロイ
- ・| Serverless Frameworkダウングレード
- ・| 再度デプロイ
- ・| AWSコンソールから確認
- ・| さいごに
はじめに
以前の記事でServerless Frameworkを使ってLambda関数のデプロイを行いましたが今回は開発環境、本番環境といった環境ごとにデプロイ仕分ける方法を解説します。
今回使うライブラリはこちらになります。
- serverless-aws-alias
目的とゴール
今回の目的は開発環境(dev)、本番環境(master)ごとにデプロイを仕分けられる状態を目指します。
下記が具体的な流れです。
- serverless-aws-aliasの設定
- デプロイ
- Lambdaテスト
serverless-aws-aliasの設定
まずは本命のライブラリをインストールします。
$ yarn add --dev serverless-aws-alias
plugins:
- serverless-aws-alias
これだけです。めちゃめちゃ簡単ですね。笑
デプロイ
設定が完了したら実際にデプロイをしてみます。
# 初回はエイリアスに master を指定
$ sls deploy --alias {エイリアス名}
ここで謎のエラーが発生
Serverless Warning --------------------------------------
CLI options definitions were upgraded with "type" property (which could be one of "string", "boolean", "multiple").
Below listed plugins do not predefine type for introduced options:
- AwsAlias for "alias", "verbose"
Please report this issue in plugin issue tracker.
Serverless: Configuration warning at 'provider': unrecognized property 'alias'
Serverless:
Serverless: Learn more about configuration validation here: http://slss.io/configuration-validation
Serverless:
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Installing dependencies for custom CloudFormation resources...
Type Error ----------------------------------------------
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: darwin
Node Version: 14.4.0
Framework Version: 2.69.1
Plugin Version: 5.5.1
SDK Version: 4.3.0
Components Version: 3.18.1
Serverless: Deprecation warnings:
ふむふむふむ。なるほど。全くわからん。笑
調べてみるとServerless Framewordのバージョンが1.61.3以降だとダメっぽい。
とりあえずServerless Framewordのバージョンを下げてみる。
Serverless Frameworkダウングレード
# グローバルアンインストール
$ npm uninstall -g serverless
# バージョン指定してグローバルインストール
$ npm install -g serverless@1.61.2 --save
# バージョン確認
$ sls --version
バージョンが1.61.2に下がったので再度チャレンジ!
再度デプロイ
$ sls deploy --alias master
これでデプロイが成功しました!
Serverless Frameworkのバージョンを下げないと同様の事象が発生するようですね。
ついでに開発環境のデプロイも実施します。
$ sls deploy --alias dev
こちらも成功!
AWSコンソールから確認
デプロイが完了したら実際に環境が作られているか確認します。AWSコンソール → Lambda → 関数 → エイリアス
それぞれのエイリアスでテストを実行して問題なければ完了となります!
簡単ですね!
さいごに
今回はserverless-aws-aliasを使って同じ関数を複数環境でデプロイしてみました。
設定も簡単でとても使いやすいですね!
Serverless Frameworkを使いこなせればサーバーを立てなくても簡単に関数の実行環境が作れるので引き続きガンガン使っていこうと思います!