こんにちは!
Serverless Framework v3 がリリースされました。
すでに多くのお客様へアップグレード対応・新規導入を行いましたが、従来の課題が改善されており素晴らしいと感じます。
今回は Serverless Framework v3 のメリットとアップグレード方法を紹介します。
Serverless Framework v3 は、よりクリーンで再設計された CLI のインターフェースと、新機能ステージパラメーターを持っています。
さらに依存関係のクリーンアップに取り組んで、サーバーレスパッケージを40%軽量化し、NPM セキュリティ警告を取り除いています。より洗練された作りに進化しているように感じますので、皆さんも是非取り組んでみてください。
新機能について説明する前に、v2 から v3 へのアップグレードについて解説しましょう。
v3 ベータ版の発表で述べられたように、v3 へのアップグレードを容易にするために、多くの非推奨と重大な変更が再検討されました。
つまり、Serverless v2 の時代で非推奨実装を行なってしまっている場合は、まず v2 の状態で Warning を排除する修正対応が必要になります。
以下はアップグレード手順です。
npm -g install serverless@2
)$ npm -g install serverless
...
# Check the version
$ serverless --version
Framework Core: 3.0.0
Serverless Framework v3 では、新機能「ステージパラメーター」が導入されています。これは現在のステージに基づいて動的に変数を展開することができます。
ステージパラメーターは、ルートに params キーを定義し、「${param:xxx}
」変数を介して参照できます。
# serverless.yml
service: myapp
provider:
name: aws
environment:
APP_DOMAIN: ${param:domain}
params:
prod:
domain: myapp.com
dev:
domain: preview.myapp.com
上記の例では、「${param:domain}
」変数は次のように解決されます。
デフォルトのキーを使用してデフォルトのパラメータ値を定義することもできます。これらの値は、他のすべてのステージに適用されます。
params:
default:
domain: ${sls:stage}.preview.myapp.com
prod:
domain: myapp.com
dev:
domain: preview.myapp.com
この新機能は、ネストされた変数で「custom」セクションを使用するという一般的なパターンに影響を受けて生まれています。例えば、従来で以下のように実装された方は多いのでは無いのかと思います。
provider:
environment:
APP_DOMAIN: ${self:custom.stages.${sls:stage}.domain}
すでに上記のパターンを実装している場合は、ステージパラメーター機能を利用するに修正しましょう。新しいステージパラメータが YAML を簡素化し、保守しやすくするのに役立つと思います。
また、サーバーレスダッシュボードとのオプションの統合により、シークレット値を安全に保存し、「${param:my-secret}
」変数を介して取得することもできますので、あわせて抑えておいてください。
公式の声明では、「Serverless Framework v3 は、皆に好まれているフレームワークです。当初『ユーザーとして、求めるものは何か』をコンセプトとして、以下の点に留意し新しくデザインしました」と語られています。
具体的には、私たちは以下の指標で修正がされたものだと解釈しています。
次は、最も一般的なコマンドを使用した新しいデザインのプレビューです。
「serverless deploy」コマンドは、クリーンで最小限の出力を備えています。 v2(左)とv3(右)の比較は次のとおりです。
Serverless Framework v3 は、詳細を出力するための標準の「–verbose」フラグをサポートするようになりました。
このオプションは、CI / CD で特に役立ちます。たとえば、CloudFormation デプロイメントの詳細な履歴を取得する場合などです。
エラー画面が改善されました。障害が発生した場合は明確に通知され、二次情報がトーンダウンされ、エラーメッセージが最後に出力され、コマンドプロンプトのすぐ上に表示されます。
さらに、CloudFormation エラーには、リソースとそのステータスに関する詳細が含まれるようになりました。
「サーバーレスログ」コマンドは、よりクリーンで軽量な出力を備え、ログの内容により焦点を当てるようになりました。
Serverless Framework は、新しいプロジェクトをインタラクティブにセットアップできるようになりました。空のディレクトリで「サーバーレス」を実行し、プロンプトに従います。
インタラクティブなセットアップでは、サーバーレスダッシュボードをいくつかの手順でセットアップすることもできます。既存のプロジェクトで「サーバーレス」を実行すると、プレミアムモニタリング、AWS アカウント管理、パラメーターなどにアクセスできます。
多くのプラグインが Serverless Framework v3 に対応できるように改善されました。
環境のサイズを考慮し、プラグインは3つのカテゴリに分けられています。
幸い、ほとんどのプラグインはカテゴリ1または2にあります。一部のプラグインはまだ新しいデザインと完全に統合されていない可能性がありますが、正常に動作するはずです。
開発者がプラグインを次のレベルに引き上げるのを支援したいという思いで、以下の機能が追加されました。
ステージパラメーターと、CLI のデザイン刷新が大きなところでは無いでしょうか。
CI.CD の時には –verbose オプションを使用することで、従来のログを出すことも可能なため、より様々なユースケースで力を発揮するようになったと感じます。
気になるのはプラグインの対応状況では無いでしょうか。お使いのプラグインが非対応の場合は慎重に導入されることを推奨します。
サーバーレスに関する開発は、お気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎