Terraform 由于缺乏 terraform.tfstate 对比,所以认为是要添加一个 bucket, 但是实际执行 terraform apply 时,连接到远端 AWS, 发现该 bucket 已存在就只是进行更新。terraform apply 总能给出正确的操作结果。同理如果状态文件中说有那个 bucket, terraform plan 会说是更新,但 AWS 没有那个 bucket,实际执行 terraform apply 也会进行添加的。
资源更名如果把 main.tf 中的
bucket = "yanbin-test-bucket"
改成
bucket = "yanbin-test-bucket-rename"
即欲为 bucket 更名,用 terraform plan 看下计划
实际上 terraform apply 也是先删除旧的,再创建新的。Terraform 像 git 一样用不同颜色和 +/- 号来显示变动操作
最后是 terraform destroy 命令,把 *.tf 文件中配置的所有资源从 AWS 上清理掉。
关于 Terraform 工作目录中文件命名Terraform 运行时会读取工作目录中所有的 *.tf, *.tfvars 文件,所以我们不必把所有的东西都写在单个文件中去,应按职责分列在不同的文件中,例如:
provider.tf -- provider 配置
terraform.tfvars -- 配置 provider 要用到的变量
varable.tf -- 通用变量
resource.tf -- 资源定义
data.tf -- 包文件定义
output.tf -- 输出
以此篇最简单的入门出发,以后可以深入了解 Lambda, Lambda 触发器,及 API Gateway, EC2 实例怎么用 Terraform 来管理,也知晓了资源的可用属性应该到哪里去查。
一个小提示:在执行像 terraform plan 或 terraform apply 等命令的时候,可以按下 ctrl + c 让控制台输出详细的日志信息。