首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以访问所有未声明为输出的terraform远程状态的资源?

是否可以访问所有未声明为输出的terraform远程状态的资源?
EN

Stack Overflow用户
提问于 2022-01-20 21:15:35
回答 1查看 944关注 0票数 1

我正在尝试从terraform远程状态获取一些引用,并注意到了terraform state资源/数据与使用terraform_remote_state数据对象之间的一些差异。

例如,我有一个terraform模块,它创建了一个AWS托管目录,没有输出。在该模块中,我可以看到状态中的所有资源-例如,terraform state show aws_directory_service_directory.ad给出了目录的详细信息-目录ID、DNS服务器地址等等。

代码语言:javascript
复制
$ terraform state list
aws_directory_service_directory.ad
$ terraform state show aws_directory_service_directory.ad
# aws_directory_service_directory.ad:
resource "aws_directory_service_directory" "ad" {
    access_url        = "REDACTED"
    alias             = "REDACTED"
    dns_ip_addresses  = []
    .... etc ....
}

如果然后创建一个新模块并添加一个terraform_remote_state数据对象,则无法访问目录的任何属性-- data.terraform_remote_state.ad.outputs为空。在这个新模块中,如果我只有远程状态数据对象,并应用(没有资源),然后使用terraform console并显示data.terraform_remote_state.ad,则如下所示:

代码语言:javascript
复制
$ terraform console
> data.terraform_remote_state.ad
{
  "backend" = ".."
  "config" = { remote_state config shown here }
  "outputs" = {}
}

因此,资源处于状态,但不能直接访问。这是预期的行为吗?是否有任何方式访问处于远程状态的资源,或者是否需要将属性添加到输出中并使用data.terraform_remote_state.ad.outputs.whatever_attributes

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-20 21:37:56

您只能访问outputs。来自文档

terraform_remote_state仅公开输出值

您必须修改其他设置的父模块并添加所需的输出。

另一种方法是开发您自己的、完全的自定义数据源,以提供您需要的信息。

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

https://stackoverflow.com/questions/70793487

复制
相关文章

相似问题

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