Terraform:导入模块时传递变量



阅读本文后https://developer.hashicorp.com/terraform/language/values/variables#assigning-值到根模块变量,我确信有3种方法可以设置变量值。

最近,我在我们的一个项目中遇到了在导入模块时传递变量的代码。

module "robot_shell" {
source = "./modules/xx_shell"
xx_resource_name_prefix             = local.resource_name_prefix
cloudwatch_log_group_retention_days = 30
s3_expiration_days                  = 30
}

模块./modules/xx_shell中的文件

resource "aws_s3_bucket_lifecycle_configuration" "dest" {
bucket = aws_s3_bucket.dest.bucket
rule {
id     = "expire"
status = "Enabled"
expiration {
days = var.s3_expiration_days
}
}
}

变量定义变量.tf

variable "s3_expiration_days" {
type        = number
description = "S3 bucket objects expiration days https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_lifecycle_configuration#days"
}

为什么terraform文档没有讨论它?还是这是一种不再使用的旧方法?

如您所述,将变量传递给模块是一种正常方式。这在中的TF文档中有描述

  • 添加模块配置

您在问题中提供的链接是关于在运行plan/apply时将变量传递给根/父模块的。但是,当您想将变量传递给使用module块定义的子模块时,您可以通过module参数传递它们。

相关内容

  • 没有找到相关文章

最新更新