4章 Terraformの基本文法
resource: インフラを構成する各種リソースを定義する
リソース種別とリソース名を指定する
この組み合わせは、ステート内において一意に定まっている必要がある
メタ引数: リソースそのものの設定ではなく、振る舞いを定める引数
depends_on: リソース間の依存関係を明示する
lifecycle: リソースが作成・削除・変更する際の挙動に影響を与える
以下の 4 つを指定できる
prevent_destroy: リソースの削除を禁止する
create_before_destroy: リソースを削除する前に新しいリソースを作成する
ignore_changes: 変更を無視するリソースの属性名(複数指定可)
replace_triggered_by: リソースの再作成をトリガーするリソースのパス(複数指定可)
provider: クラウドプロバイダや SaaS プロバイダ、その他が提供する API を介してリソースを操作するプラグイン
data: Terraform 外(または別のステート)で定義された情報を参照する
code:.tf
data "aws_vpc" "vpc" {
tags = {
ServiceName = "web"
Env = "prod"
}
}
variable: resource や data に外から値を与える変数を定義する
変数を実際に渡すには、-var-file=ファイルパス または -var=変数名=値 のように指定する
-var-file で指定するファイルでは、変数名=値 の形式で複数の値を記述できる
指定できる型
number, string, bool
object(オブジェクト型)
map(マップ型)
list(リスト型)
tuple(タプル型)
local