Terraformのresource
from Terraform
code:tf
resource "<プロバイダ>_<タイプ>" "<名前>" {
設定 ...
}
code:tf
resource "aws_instance" "example" {
ami = "ami-0fb653ca2d3203ac1"
instance_type = "t2.micro"
}
inline block (Terraform)
dynamic Blocks (Terraform)
default_tags
/mrsekut-book-4814400527/337
Terraformのlifecycle
作成時にスクリプト実行
Provisioners
https://developer.hashicorp.com/terraform/language/resources/provisioners/syntax
/mrsekut-book-4814400527/635 (8.3.5.1 プロビジョナ)
Terraformのresourceの作成時にスクリプトを実行する
削除時に実行することもできる
ブート処理、設定管理、後始末などのユースケース
ローカルで実行したり、sshでリモートに接続して実行したり
code:tf
resource "aws_instance" "example" {
ami = data.aws_ami.ubuntu.id
instance_type = "t2.micro"
provisioner "local-exec" {
command = "echo \"Hello, World from $(uname -smp)\""
}
}
https://future-architect.github.io/articles/20200805/
EC2のUserDataを使ったほうがいい
/mrsekut-book-4814400527/643
resource "null_resource"
/mrsekut-book-4814400527/644 (8.3.5.2 null resource とプロビジョナ)
外部データソース
/mrsekut-book-4814400527/646 (8.3.5.3 外部データソース)
data "external"
外部にあるJSONを読める