我对Terraform相当陌生,并一直遵循下面的示例创建EKS集群- https://github.com/terraform-providers/terraform-provider-aws/tree/master/examples/eks-getting-started
唯一的区别是,我已经将结构分解为模块:
-main.tf
-vpc
vpc.tf
vars.tf
-eks
eks-cluster.tf
eks-worker-nodes.tf
vars.tf
outputs.tf在“main.tf”中,我有以下内容
provider "aws" {
region = "us-east-1"
}
# Using these data sources allows the configuration to be
# generic for any region.
data "aws_region" "current" {}
data "aws_availability_zones" "available" {}当我运行一个'terraform计划‘时,我会得到以下错误,这个错误来自ek-work-nodes.tf:
* module.eks.local.demo-node-userdata: local.demo-node-userdata:
Resource 'data.aws_region.current' not found for variable
'data.aws_region.current.name' 有什么理由不能访问数据源吗?我对Terraform相当陌生,但我做了一些googling,却找不到明确的答案:/
发布于 2018-06-14 13:42:18
您需要将该信息传递给您的模块,或者再次在模块中声明它。例如,对于区域,将其作为变量传递给模块:
module "foo" {
...
current_region = "${data.aws_region.current.name}"
...
}或者将它内联地添加到您的模块中,就像您在main.tf中所做的那样
https://devops.stackexchange.com/questions/4299
复制相似问题