Terraform で構築した AWS リソースにタグを一括付与する方法 (default_tags)
terraform-aws-provider で default_tags
が利用可能になりました。
その名の通り、デフォルトで各リソースにタグを付与できる機能です。
AWS のリソースには環境名や請求管理用のタグを付けることが多いと思いますが、これで一括付与できるようになりました。最高ですね。
事前準備
terraform-aws-provider v3.38 以降で利用可能です。
provider が固定されている場合は terraform init -upgrade
などで更新しておきましょう。
default_tags でタグをつける
使い方は非常に簡単です。aws provider の定義場所に default_tags
を追加するだけ。
既存の resource レベルのタグも併用できます。
provider "aws" {
region = "ap-northeast-1"
default_tags {
tags = {
Env = "dev"
Service = "hoge"
}
}
}
resource "aws_s3_bucket" "this" {
bucket = "yuu26-test"
acl = "private"
tags = {
Name = "yuu26-test"
}
}
provider レベルで設定したタグは tags_all
で確認することができます。
% terraform plan
Terraform used the selected providers to generate the following execution plan. Resource actions are
indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_s3_bucket.this will be created
+ resource "aws_s3_bucket" "this" {
+ acceleration_status = (known after apply)
+ acl = "private"
+ arn = (known after apply)
+ bucket = "yuu26-test"
+ bucket_domain_name = (known after apply)
+ bucket_regional_domain_name = (known after apply)
+ force_destroy = false
+ hosted_zone_id = (known after apply)
+ id = (known after apply)
+ region = (known after apply)
+ request_payer = (known after apply)
+ tags = {
+ "Name" = "yuu26-test"
}
+ tags_all = {
+ "Env" = "dev"
+ "Name" = "yuu26-test"
+ "Service" = "hoge"
}
+ website_domain = (known after apply)
+ website_endpoint = (known after apply)
+ versioning {
+ enabled = (known after apply)
+ mfa_delete = (known after apply)
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
付与されたタグを確認
作成したリソースを AWS コンソールから見てみると、通常通りタグとして付与されています。
補足
詳しい説明は公式ドキュメントを参照しましょう。
https://github.com/hashicorp/terraform-provider-aws/blob/main/website/docs/guides/resource-tagging.html.md#propagating-tags-to-all-resources
tags
を付けられるリソースには基本的に対応していますが、2021/05/01時点では aws_autoscaling_group
のみ非対応です。
まとめ
- terraform-aws-provider に
default_tags
が追加された tags
をサポートするリソースに一括付与できる- 付与したタグは
tags_all
で確認可能
VPC のサブネットやルーティングテーブルなど、細かなリソースにも一括付与できるので便利。
ディスカッション
コメント一覧
まだ、コメントがありません
フォローする
カテゴリー
最近の投稿
ブログについて