首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform问题-无法在子模块中找到数据源?

Terraform问题-无法在子模块中找到数据源?
EN

DevOps用户
提问于 2018-06-14 13:38:40
回答 1查看 1.7K关注 0票数 2

我对Terraform相当陌生,并一直遵循下面的示例创建EKS集群- https://github.com/terraform-providers/terraform-provider-aws/tree/master/examples/eks-getting-started

唯一的区别是,我已经将结构分解为模块:

代码语言:javascript
复制
-main.tf
-vpc
   vpc.tf
   vars.tf
-eks
   eks-cluster.tf
   eks-worker-nodes.tf
   vars.tf
   outputs.tf

在“main.tf”中,我有以下内容

代码语言:javascript
复制
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:

代码语言:javascript
复制
 * 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,却找不到明确的答案:/

EN

回答 1

DevOps用户

回答已采纳

发布于 2018-06-14 13:42:18

您需要将该信息传递给您的模块,或者再次在模块中声明它。例如,对于区域,将其作为变量传递给模块:

代码语言:javascript
复制
module "foo" {
  ...
  current_region = "${data.aws_region.current.name}"
  ...
}

或者将它内联地添加到您的模块中,就像您在main.tf中所做的那样

票数 1
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/4299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档