Terraformのコードを書いていて「このリソースの◯◯の値は何ていうプロパティ名だっけ」というときに、 適用済みのリソースから確認したい場合。
terraform show
terraform show
で適用済みの全リソースの情報を確認できる。
$ terraform show
# aws_iam_instance_profile.instance_profile:
resource "aws_iam_instance_profile" "instance_profile" {
arn = "arn:aws:iam::XXXXXXXXXXXXXX:instance-profile/test"
create_date = "2023-10-20T13:33:06Z"
id = "test"
name = "test"
path = "/"
role = "test"
tags_all = {
"Project" = "test"
}
unique_id = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
}
# aws_iam_policy_attachment.instance_profile_policy_attachment:
resource "aws_iam_policy_attachment" "instance_profile_policy_attachment" {
id = "test"
name = "test"
policy_arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
roles = [
"test",
]
}
・
・
・
例えば特定のEC2インスタンスのインスタンスIDの値はどうやって取ればいいのかを確認したければ、リソースaws_instance
を探し、
その中からインスタンスIDらしい値を持っているプロパティを探せばよい。
$ terraform show
・
・
・
# aws_instance.host:
resource "aws_instance" "host" {
ami = "ami-0000000000000"
arn = "arn:aws:ec2:ap-northeast-1:XXXXXXXXXXXXXX:instance/i-000000000000000000"
associate_public_ip_address = true
availability_zone = "ap-northeast-1c"
cpu_core_count = 1
cpu_threads_per_core = 2
disable_api_stop = false
disable_api_termination = false
ebs_optimized = false
get_password_data = false
hibernation = false
iam_instance_profile = "test"
id = "i-0000000000000" # ← ここがインスタンスID
instance_initiated_shutdown_behavior = "stop"
instance_state = "running"
instance_type = "t3.large"
・
・
・
上記を確認すればインスタンスIDのプロパティ名はid
であることが確認できる。
参照する場合はaws_instance.リソース名.id
とすればよい。
terraform state show
terraform state show
コマンドを使用すれば、指定したリソースだけの情報を確認できる。
$ terraform state show aws_instance.host
# aws_instance.host:
resource "aws_instance" "host" {
ami = "ami-0000000000000"
arn = "arn:aws:ec2:ap-northeast-1:XXXXXXXXXXXXXX:instance/i-000000000000000000"
associate_public_ip_address = true
availability_zone = "ap-northeast-1c"
cpu_core_count = 1
cpu_threads_per_core = 2
disable_api_stop = false
disable_api_termination = false
ebs_optimized = false
get_password_data = false
hibernation = false
iam_instance_profile = "test"
id = "i-0000000000000"
instance_initiated_shutdown_behavior = "stop"
instance_state = "running"
instance_type = "t3.large"
terraform show
コマンドとは異なり、指定したリソースだけの情報だけを取得している。
リソース名をうろ覚えの場合はterraform state list
コマンドで確認できる。
$ terraform state list | grep aws_instance
aws_instance.host
こうして探したリソース名でterraform state show
コマンドを実行すればよい。
\手を動かしながらTerraformを学びたい人にオススメ!/