Serverless FrameworkのDescriptionの変更方法

serverless-framework

はじめに

好物はインフラとフロントエンドのかじわらゆたかです。 最近案件でServerless Frameworkを使うことになって色々と試しております。 何個かServerless Frameworkを用いたアプリを作成するとCloudFormationのManagement Consoleがこのようになってしまいます。

20170707_1

全く異なるアプリケーションを実装していても同じ説明文(The AWS CloudFormation template for this Serverless application)が並んでおり、自分デプロイを本当にしたのか判断がつきにくい状態になります。 この説明文を変更する方法を解説します。

検証環境

  • OS X El Capitan 10.11.6
  • Node.js v7.2.0
  • Serverless 1.17.0

説明文を変えてみた

Serverless Framewokの設定ファイルであるserverless.ymlに追記すればよいと考えた時代もありました。 ですが、そのような項目が見当たりません。

service: sampleserverless 
provider:
  name: aws
  runtime: python3.6
functions:
  hello:
    handler: handler.hello

Serverless Frameworkはデプロイする際に、このファイルを元にCloudFormationのテンプレートを作成し、 作成したテンプレートを用いてCloudFormationにデプロイを実施しております。

なお、作成されたCloudFormationのテンプレートは以下のコマンドで確認することができます。

$ serverless package --package ./package
Serverless: Packaging service...
$ cat ./package/cloudformation-template-create-stack.json
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "The AWS CloudFormation template for this Serverless application",
  (以下省略)
}
$ cat package/cloudformation-template-update-stack.json
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "The AWS CloudFormation template for this Serverless application",
  (以下省略)
}

変更するためには、serverless.ymlのresourceの項目で説明文を指定することで更新が可能です。

service: sampleserverless 
provider:
  name: aws
  runtime: python3.6
resources:
  Description: Sample Serverless Application
functions:
  hello:
    handler: handler.hello

上記のyamlを元に、作成されたjsonファイルを確認すると反映されていることがわかります。

$ serverless package --package ./package
Serverless: Packaging service...
$ cat package/cloudformation-template-update-stack.json
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "Sample Serverless Application",
  (以下省略)
}

もちろん、デプロイするとCloud FormationのManagement Consoleでも説明文が反映されていることがわかります。

$ serverless deploy

20170707_2

まとめ

Serverless Frameworkは複数のLambdaの配置を管理すると言ったときにも、非常に強みのある仕組みだと思っています。 また、そういった際にも説明文をきちんとつけることで、より便利に利用することができるのではないでしょうか。 Descriptionの変更方法は意外と見つからなかったので、これがServerless Frameworkを用いている人の助けになれば幸いです。

参考

Override the Stack Description? - Serverless Framework - Serverless Forums