github.com/pdecat/terraform@v0.11.9-beta1/website/docs/providers/terraform/d/remote_state.html.md (about)

     1  ---
     2  layout: "terraform"
     3  page_title: "Terraform: terraform_remote_state"
     4  sidebar_current: "docs-terraform-datasource-remote-state"
     5  description: |-
     6    Accesses state meta data from a remote backend.
     7  ---
     8  
     9  # remote_state
    10  
    11  Retrieves state meta data from a remote backend
    12  
    13  ## Example Usage
    14  
    15  ```hcl
    16  data "terraform_remote_state" "vpc" {
    17    backend = "atlas"
    18    config {
    19      name = "hashicorp/vpc-prod"
    20    }
    21  }
    22  
    23  resource "aws_instance" "foo" {
    24    # ...
    25    subnet_id = "${data.terraform_remote_state.vpc.subnet_id}"
    26  }
    27  ```
    28  
    29  ## Argument Reference
    30  
    31  The following arguments are supported:
    32  
    33  * `backend` - (Required) The remote backend to use.
    34  * `workspace` - (Optional) The Terraform workspace to use.
    35  * `config` - (Optional) The configuration of the remote backend.
    36  * `defaults` - (Optional) default value for outputs in case state file is empty or it does not have the output.
    37   * Remote state config docs can be found [here](/docs/backends/types/terraform-enterprise.html)
    38  
    39  ## Attributes Reference
    40  
    41  The following attributes are exported:
    42  
    43  * `backend` - See Argument Reference above.
    44  * `config` - See Argument Reference above.
    45  
    46  In addition, each output in the remote state appears as a top level attribute
    47  on the `terraform_remote_state` resource.
    48  
    49  ## Root Outputs Only
    50  
    51  Only the root level outputs from the remote state are accessible. Outputs from
    52  modules within the state cannot be accessed. If you want a module output to be
    53  accessible via a remote state, you must thread the output through to a root
    54  output.
    55  
    56  An example is shown below:
    57  
    58  ```hcl
    59  module "app" {
    60    source = "..."
    61  }
    62  
    63  output "app_value" {
    64    value = "${module.app.value}"
    65  }
    66  ```
    67  
    68  In this example, the output `value` from the "app" module is available as
    69  "app_value". If this root level output hadn't been created, then a remote state
    70  resource wouldn't be able to access the `value` output on the module.