只需要一个选项:用母语中文改述以下内容:对于Terraform 0.12.x,对特定模块(资源)应用/计划操作(官方文档与命令是否有差异)
如果您在Terraform中想要修改文件,但不希望进行其他资源的更新,可以使用[-target]选项非常方便。
下面是Terraform的版本。
由于此次想要使用AWS服务,我们选择使用AWS作为提供者。
Terraform> terraform -v
Terraform v0.12.18
+ provider.aws v2.51.0
文件的结构如下所示。
Terraform
├─main.tf
├─output.tf
├─provider.tf
├─terraform.tf
├─variables.tf
└─modules/
└─CodeBuild/
├─main.tf
└─variables.tf
在Terraform/main.tf文件中,定义了所有必要的模块作为Terraform的入口点,并处理用于读取CodeBuild设置的操作。
# CodeBuildのモジュール定義
module "CodeBuild" {
source = "./modules/CodeBuild"
account_id_number = data.aws_caller_identity.current.account_id
}
我們這次更改了與CodeBuild相關的設定,所以我只想更新這個模塊。
当您查看目标资源(公式文件)时
terraform plan -targert=resource
只需指定特定的模块即可。
只需要一种选项:
资源路径的指定方法是,按照module.A.module.B.module.C…的方式指定。
“模块路径 = 模块.代码构建”
没有问题。我这样想着,就试着执行了一下命令。。。
$ terraform plan -target=module.CodeBuild
Usage: terraform plan [options] [DIR]
Generates an execution plan for Terraform.
This execution plan can be reviewed prior to running apply to get a
sense for what Terraform will do. Optionally, the plan can be saved to
a Terraform plan file, and apply can take this plan file to execute
this plan exactly.
Options:
****
-target=resource Resource to target. Operation will be limited to this
resource and its dependencies. This flag can be used
multiple times.
****
选项未被识别!!!!!!经过尝试,我发现以下命令可以成功执行。
结论和公式文档的命令是不同的。
$ terraform plan -target module.CodeBuild
在选项和资源路径之间加入空格,忽略等号”=”。
希望尽快修正公式文件和命令帮助中不同的指引,等待修复。