【Terraform】Terraform ~ 基本編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/12/09/222057
https://dk521123.hatenablog.com/entry/2023/04/05/000224

の続き。

今回は、Terraform コードの基本的な文法について扱う。

目次

【1】環境リソース
 1)リソース - resource
 2)データリソース - data
 3)モジュール - module
【2】変数
【3】分岐
 1)三項演算子

【1】環境リソース

* Terraform の Data Sources / Resource について。

https://qiita.com/masato930/items/f287ef1d088c160a514b

1)リソース - resource

# resource <固有リソース名> <識別子>
resource "resource_name" "local_name" {

}

resource "local_file" "helloworld" {
  content  = "hello world!!!?"
  filename = "hello.txt"
}

2)データリソース - data

* 読み取り専用のリソースで
 Data Sources を定義すると、Terraform で定義されたリソース情報を参照可能
 => 既に作成済みのリソースなどの情報を取得できる
 => 詳細は、以下の関連記事を参照のこと

Terraform ~ 基本編 / Data Sources ~
https://dk521123.hatenablog.com/entry/2024/01/16/191006

3)モジュール - module

* Terraformのソースコードをテンプレート化し
 再利用可能にする仕組み(関数的な)
 => 詳細は、以下の関連記事を参照のこと

Terraform ~ 基本編 / Module ~
https://dk521123.hatenablog.com/entry/2023/05/19/113544

【2】変数

* 以下の関連記事を参照のこと

Terraform ~ 基本編 / 変数 ~
https://dk521123.hatenablog.com/entry/2023/12/24/173633

【3】分岐

https://qiita.com/arie0703/items/254e2adcade3bbac1156

1)三項演算子

max_retries = local.env == "dev" ? 0 : 3

参考文献

https://blog.symdon.info/posts/1652772791/
https://zenn.dev/sasakiki/articles/3c903edaea1817
https://papix.hatenablog.com/entry/2021/05/13/181826
https://shinbaichi.com/upload-multi-files-for-s3-using-terraform/

関連記事

Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/09/222057
Terraform ~ 基本編 / Data Sources ~
https://dk521123.hatenablog.com/entry/2024/01/16/191006
Terraform ~ 基本編 / Module ~
https://dk521123.hatenablog.com/entry/2023/05/19/113544
Terraform ~ 基本編 / tfstateファイル ~
https://dk521123.hatenablog.com/entry/2023/05/05/004939
Terraform ~ 基本編 / 変数 ~
https://dk521123.hatenablog.com/entry/2023/12/24/173633
Terraform ~ テンプレート ~
https://dk521123.hatenablog.com/entry/2023/05/22/101325
Terraform ~ Terraformあれこれ ~
https://dk521123.hatenablog.com/entry/2023/05/15/205352
Terraform ~ AWS S3 ~
https://dk521123.hatenablog.com/entry/2023/04/09/104204
Terraform ~ AWS IAM ~
https://dk521123.hatenablog.com/entry/2023/04/12/214311
Terraform ~ AWS Glue ~
https://dk521123.hatenablog.com/entry/2023/04/08/220411
Terraform ~ AWS KMS ~
https://dk521123.hatenablog.com/entry/2023/05/26/000000
Terraform ~ AWS Secrets Manager ~
https://dk521123.hatenablog.com/entry/2023/04/11/152801
Terraform ~ AWS CloudWatch ~
https://dk521123.hatenablog.com/entry/2023/05/17/123335
Terraform ~ AWS EC2 ~
https://dk521123.hatenablog.com/entry/2023/05/21/003048
Terraform ~ AWS MWAA ~
https://dk521123.hatenablog.com/entry/2023/12/25/000152
Terraform ~ AWS ECR ~
https://dk521123.hatenablog.com/entry/2023/05/23/002314
Terraform ~ AWS CodeArtifact ~
https://dk521123.hatenablog.com/entry/2024/01/26/232109
Terraform ~ AWS MSK ~
https://dk521123.hatenablog.com/entry/2023/05/14/122215
Terraform ~ AWS MSK Connect ~
https://dk521123.hatenablog.com/entry/2023/05/25/000000
AWS MSK Connect 内の 接続情報を設定を考える
https://dk521123.hatenablog.com/entry/2023/06/04/230737
Terraform ~ tag あれこれ ~
https://dk521123.hatenablog.com/entry/2023/06/05/224944
Terraform ~ Docker ~
https://dk521123.hatenablog.com/entry/2023/04/10/193239
Terraform ~ Datadog ~
https://dk521123.hatenablog.com/entry/2023/05/12/000000
Terraform ~ 特定リソースのみデプロイする ~
https://dk521123.hatenablog.com/entry/2023/04/20/172823
Terraform ~ 複数環境へデプロイすることを考える ~
https://dk521123.hatenablog.com/entry/2023/05/06/003645
Terraform ~ 機密情報の扱いを考える ~
https://dk521123.hatenablog.com/entry/2023/05/18/005103
Terraform ~ tfenv / バージョン管理 ~
https://dk521123.hatenablog.com/entry/2023/01/14/000000
Terraform ~ direnv / プロジェクト隔離 ~
https://dk521123.hatenablog.com/entry/2023/01/15/000000