【serverless-aws-alias】Lambda関数にエイリアスをつけて環境別デプロイをしてみる

Lambda
  • URLをコピーしました!
目次

はじめに

以前の記事でServerless Frameworkを使ってLambda関数のデプロイを行いましたが今回は開発環境、本番環境といった環境ごとにデプロイ仕分ける方法を解説します。

今回使うライブラリはこちらになります。

使用するライブラリ

以前のServerless Frameworkを使ったデプロイ方法の記事は下記になるので合わせてご覧くださいませ。

あわせて読みたい
【Golang+Lambda+Serverless】サクッとサーバーレス環境を作成してみた こんにちは!RYOTAです! 当記事をご覧いただきありがとうございます! Go言語でサーバーレス環境を構築してみたので構築方法をまとめてみようと思います! サーバーを...

目的とゴール

今回の目的は開発環境(dev)、本番環境(master)ごとにデプロイを仕分けられる状態を目指します。

下記が具体的な流れです。

作業手順

  1. serverless-aws-aliasの設定
  2. デプロイ
  3. 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:

Detected unrecognized CLI options: "--alias".
Starting with the next major, Serverless Framework will report them with a thrown error
More Info: https://www.serverless.com/framework/docs/deprecations/#UNSUPPORTED_CLI_OPTIONS

Resolution of lambda version hashes was improved with better algorithm, which will be used in next major release.
Switch to it now by setting "provider.lambdaHashingVersion" to "20201221".
While it is highly encouraged to upgrade to new algorithm, you can still use the old approach by setting "provider.lambdaHashingVersion" to "20200924".
More Info: https://www.serverless.com/framework/docs/deprecations/#LAMBDA_HASHING_VERSION_V2

Starting with "v3.0.0", AWS EventBridge resources will be created using native CloudFormation resources by default. It is possible to use that functionality now by setting "eventBridge.useCloudFormation: true" as provider property in your configuration. If you want to keep using the old creation method, set that property to "false" to hide this deprecation message.
More Info: https://www.serverless.com/framework/docs/deprecations/#AWS_EVENT_BRIDGE_CUSTOM_RESOURCE

ふむふむふむ。なるほど。全くわからん。笑

調べてみると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を使いこなせればサーバーを立てなくても簡単に関数の実行環境が作れるので引き続きガンガン使っていこうと思います!

前回の内容が気になる方は下記の記事もあわせてご覧くださいませ!

あわせて読みたい
【Golang+Lambda+Serverless】サクッとサーバーレス環境を作成してみた こんにちは!RYOTAです! 当記事をご覧いただきありがとうございます! Go言語でサーバーレス環境を構築してみたので構築方法をまとめてみようと思います! サーバーを...
Lambda

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次