我正在尝试从terraform远程状态获取一些引用,并注意到了terraform state资源/数据与使用terraform_remote_state数据对象之间的一些差异。
例如,我有一个terraform模块,它创建了一个AWS托管目录,没有输出。在该模块中,我可以看到状态中的所有资源-例如,terraform state show aws_directory_service_directory.ad给出了目录的详细信息-目录ID、DNS服务器地址等等。
$ 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,则如下所示:
$ terraform console
> data.terraform_remote_state.ad
{
"backend" = ".."
"config" = { remote_state config shown here }
"outputs" = {}
}因此,资源处于状态,但不能直接访问。这是预期的行为吗?是否有任何方式访问处于远程状态的资源,或者是否需要将属性添加到输出中并使用data.terraform_remote_state.ad.outputs.whatever_attributes?
https://stackoverflow.com/questions/70793487
复制相似问题