首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么GCS说在GCS后端中没有输出?

为什么GCS说在GCS后端中没有输出?
EN

Stack Overflow用户
提问于 2022-03-29 02:36:12
回答 1查看 237关注 0票数 2

我试图理解为什么我的data来自我的gcs backend说它没有任何输出。

我有一个名为DB的模块,它创建一个postgres数据库。

我有一个名为outputs.tf的文件

代码语言:javascript
复制
terraform {
  backend "gcs" {
    bucket  = "projectgun-terraform-state"
    prefix  = "db-workspaces"
  }
}

我正在使用一个名为a1的工作区

我运行terraform应用程序和中提琴,它成功了,我创建了一个DB。

此外,当我进入GCS时,我可以找到我的桶,找到我的钥匙。我的工作区名为a1,前缀为“db- workspace”,因此我的远程状态保存在#{ MY }/db-workspace/a1.tfstate中。

当我走到桶里的那把钥匙时,我看到一堆JSON,看起来像这样

如果我进入我的db模块,并执行terraform state pull,它看起来也是这样。一切都查清楚了。

但是当我进入我的另一个模块时,我试图访问来自GCS的输出,但我不能。

我正在使用模块a1。

代码语言:javascript
复制
data "terraform_remote_state" "db" {
  backend = "gcs"

  config = {
    bucket = "projectgun-terraform-state"
    prefix    = "db-workspaces"
  }
}

当我试图通过输出访问这些数据时,我看到

代码语言:javascript
复制
 79:   db_user                     = data.terraform_remote_state.db.outputs.user
│     ├────────────────
│     │ data.terraform_remote_state.db.outputs is object with no attributes
│ 
│ This object does not have an attribute named "user".

我做错了什么?是否有更好的方法来调试我的问题?当它试图提取数据时,我怎么能确定关键地形在看什么呢?

特指data.terraform_remote_state.db.outputs is object with no attributes

我可以调试data.terraform_remote_state吗?我怎么才能检查这里发生的事?当我查看远程状态时,有非常清楚的输出,所以我觉得它拿错了键,但不知道该在哪里查找。

EN

回答 1

Stack Overflow用户

发布于 2022-03-29 03:35:36

我发现了一个github问题,总结了我的问题和解决方案。

https://github.com/hashicorp/terraform/issues/24935

代码语言:javascript
复制
data "terraform_remote_state" "network" {
  backend   = "gcs"
  workspace = terraform.workspace
  config  = {
    bucket  = "tf-state"
    prefix  = "base-layer/network/"
  }
}

这似乎不是一个记录在案的修复方法。谢谢你@HebertCL的回答!

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

https://stackoverflow.com/questions/71655832

复制
相关文章

相似问题

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