只需要一个选项:用母语中文改述以下内容:对于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

在选项和资源路径之间加入空格,忽略等号”=”。

希望尽快修正公式文件和命令帮助中不同的指引,等待修复。

广告
将在 10 秒后关闭
bannerAds