Terraform

Terraformでリソースを参照するのに困ったとき


TerraformのTips

Terraform書いていてリソースを参照するとき具体的に追加すればよいか困るときがあります。そんなときの対処法です。

例えばPeering作成してRouitingにそのPeeringを追加するということをしましょう。

とはいえ、ルーティングを追加したいのでまずaws_routeでググります。

見つけたaws_routeでvpc_peering_connection_idというところにpeeringのidが必要とわかります。

ここでpeeringのリソースをググってもそのドキュメントが出てきてそのIDを取得する方法がわかりません。そういうとき私の場合は下記をBookmarkしていてこちらに来てソースをみます。。

https://github.com/terraform-providers/terraform-provider-aws/tree/master/aws

この中でファイル名からそれらしきものを探します。

それらしきソースを見つけます。

スキーマを探します。詳しくはソースをたどって行く必要がありますが、辿らなくてもこれかな?と思うものを使用してterraform planしていけば問題がある場合はエラーになりますので大丈夫です。今回の場合idというものがあるのでそれかなと試します。

今回の場合は具体的には下記のようになるでしょう。

resource "aws_route" "someroute" {

route_table_id = "[ルートテーブルのID]"
destination_cidr_block = "x.x.x.x/24"
vpc_peering_connection_id = "${aws_vpc_peering_connection.hogehoge.id}"
## ↑ここのidを知る方法知りたかったということです
depends_on = [どこかのリソース名]
}