はじめに
本記事はMDC Advent Calendar 2022の1日目の記事です。
初日なので軽めのネタで。
やりたかったこと
AWSのリソースをServerlessFrameworkで管理しながら複数メンバーで開発している時、同一ルートアカウントにデプロイしていたので、誰がデプロイしたのかわからなくなることがありました。
リソースのタグに自動でユーザーを識別できる情報が設定されたら便利だなと思って調べてみました。
やったこと
- 固定値でタグを設定
serverless.yamlにstackTagsで設定できます。
provider:
name: aws
runtime: python3.8
lambdaHashingVersion: 20201221
stackTags:
Application: hello
Owner: watanabe
2. IAMユーザー名をタグに設定
固定値の場合、デプロイする都度ソースを修正してからデプロイすることになってしまうので変数にしてみます。
provider:
name: aws
runtime: python3.8
lambdaHashingVersion: 20201221
stackTags:
Application: hello
Owner: ${aws:accountId}
3. ローカル環境のユーザー名をタグに設定
開発していた環境ではAWS SSOによってIAMユーザーを作成せずに運用していたため、2の方法ではアカウント情報が取れませんでした。
ローカル環境の環境変数を使うことで上手くいきました。
※$USERはMac/Linux系の環境のみで、Windowsでは(%username%になるため)使えないと思われます。
provider:
name: aws
runtime: python3.8
lambdaHashingVersion: 20201221
stackTags:
Application: hello
Owner: ${env:USER}
参考にしたサイト
今後やりたいこと
デプロイ環境としてローカル環境を使うとリポジトリと実行環境に乖離が発生したり環境差異でデプロイ失敗したりすること、自動CIも視野に、クラウドからデプロイするようにしたいです。
自動CIならGitのアカウントが証跡になるのでこのタグは不要ですね。