github.com/kcburge/terraform@v0.11.12-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.