この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
好物はインフラとフロントエンドのかじわらゆたかです。 最近案件でServerless Frameworkを使うことになって色々と試しております。 何個かServerless Frameworkを用いたアプリを作成するとCloudFormationのManagement Consoleがこのようになってしまいます。
全く異なるアプリケーションを実装していても同じ説明文(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に追記すればよいと考えた時代もありました。 ですが、そのような項目が見当たりません。
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の項目で説明文を指定することで更新が可能です。
serverless.yml
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
まとめ
Serverless Frameworkは複数のLambdaの配置を管理すると言ったときにも、非常に強みのある仕組みだと思っています。 また、そういった際にも説明文をきちんとつけることで、より便利に利用することができるのではないでしょうか。 Descriptionの変更方法は意外と見つからなかったので、これがServerless Frameworkを用いている人の助けになれば幸いです。
参考
Override the Stack Description? - Serverless Framework - Serverless Forums