2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ServerlessFrameworkで、デプロイしたユーザー名が自動的にタグ付されるようにしてみた

Last updated at Posted at 2022-11-30

はじめに

本記事はMDC Advent Calendar 2022の1日目の記事です。
初日なので軽めのネタで。

やりたかったこと

AWSのリソースをServerlessFrameworkで管理しながら複数メンバーで開発している時、同一ルートアカウントにデプロイしていたので、誰がデプロイしたのかわからなくなることがありました。
リソースのタグに自動でユーザーを識別できる情報が設定されたら便利だなと思って調べてみました。

やったこと

  1. 固定値でタグを設定
    serverless.yamlにstackTagsで設定できます。
serverless.yaml
provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221
  stackTags:
    Application: hello
    Owner: watanabe

2. IAMユーザー名をタグに設定
固定値の場合、デプロイする都度ソースを修正してからデプロイすることになってしまうので変数にしてみます。

serverless.yaml
provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221
  stackTags:
    Application: hello
    Owner: ${aws:accountId}

3. ローカル環境のユーザー名をタグに設定
開発していた環境ではAWS SSOによってIAMユーザーを作成せずに運用していたため、2の方法ではアカウント情報が取れませんでした。
ローカル環境の環境変数を使うことで上手くいきました。
※$USERはMac/Linux系の環境のみで、Windowsでは(%username%になるため)使えないと思われます。

serverless.yaml
provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221
  stackTags:
    Application: hello
    Owner: ${env:USER}

参考にしたサイト

今後やりたいこと

デプロイ環境としてローカル環境を使うとリポジトリと実行環境に乖離が発生したり環境差異でデプロイ失敗したりすること、自動CIも視野に、クラウドからデプロイするようにしたいです。
自動CIならGitのアカウントが証跡になるのでこのタグは不要ですね。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?