Table: terraform_data_source - Query Terraform Data Sources using SQL
Terraform Data Sources are a type of resource in Terraform that allow users to fetch data from a specific source or service. This data can then be used within other resources or outputs within your Terraform configuration. It is a powerful tool that allows for the dynamic configuration of resources based on data retrieved from external sources.
Table Usage Guide
The terraform_data_source
table provides insights into data sources within Terraform. As a DevOps engineer, explore data source-specific details through this table, including the configuration and state of each data source. Utilize it to understand how data is being fetched and used within your Terraform configuration, and to ensure that data sources are being used effectively and securely.
Examples
Basic info
Explore various data sources in your Terraform configuration to identify their names, types, and paths to understand the structure and organization of your infrastructure. This can be useful when you want to review or modify your configuration.This query can help you explore the different data sources in your Terraform setup. It's useful for understanding the types of data your infrastructure is relying on and where that data is coming from.
select name, type, arguments, pathfrom terraform_data_source;
select name, type, arguments, pathfrom terraform_data_source;
List AWS EC2 AMIs
Determine the areas in which specific AWS EC2 AMIs are used, by analyzing the data source. This can help in understanding the distribution and application of different AMIs within your infrastructure.Explore which Amazon Machine Images (AMIs) are available in your AWS EC2 environment using this query. It helps in assessing the elements within your infrastructure and aids in making informed decisions for resource allocation and management.
select name, type, arguments, pathfrom terraform_data_sourcewhere type = 'aws_ami';
select name, type, arguments, pathfrom terraform_data_sourcewhere type = 'aws_ami';
Get filters for each AWS EC2 AMI
Discover the segments that help to identify the specific filters applied to each AWS EC2 AMI. This is beneficial for understanding the configuration and management of your EC2 AMIs, aiding in resource optimization and security.Explore which AWS EC2 AMIs have specific filters applied to them. This is useful for understanding your AMI configurations and ensuring they align with your security and operational requirements.
with filters as ( select name, type, jsonb_array_elements(arguments -> 'filter') as filter, path from terraform_data_source where type = 'aws_ami')select name, type, filter -> 'name' as name, filter -> 'values' asvalues, pathfrom filters;
with filters as ( select name, type, json_each(arguments, '$.filter') as filter, path from terraform_data_source where type = 'aws_ami')select name, type, json_extract(filter.value, '$.name') as name, json_extract(filter.value, '$.values') asvalues, pathfrom filters;
Schema for terraform_data_source
Name | Type | Operators | Description |
---|---|---|---|
_ctx | jsonb | Steampipe context in JSON form. | |
arguments | jsonb | Data source arguments. | |
count | bigint | The integer value for the count meta-argument if it's set as a number in a literal expression. | |
count_src | jsonb | The count meta-argument accepts a whole number, and creates that many instances of the resource or module. | |
depends_on | jsonb | Use the depends_on meta-argument to handle hidden data source or module dependencies that Terraform can't automatically infer. | |
end_line | bigint | Ending line number. | |
for_each | jsonb | The for_each meta-argument accepts a map or a set of strings, and creates an instance for each item in that map or set. | |
name | text | Data source name. | |
path | text | = | Path to the file. |
provider | text | The provider meta-argument specifies which provider configuration to use for a data source, overriding Terraform's default behavior of selecting one based on the data source type name. | |
source | text | The block source code. | |
sp_connection_name | text | =, !=, ~~, ~~*, !~~, !~~* | Steampipe connection name. |
sp_ctx | jsonb | Steampipe context in JSON form. | |
start_line | bigint | Starting line number. | |
type | text | Data source type. |
Export
This table is available as a standalone Exporter CLI. Steampipe exporters are stand-alone binaries that allow you to extract data using Steampipe plugins without a database.
You can download the tarball for your platform from the Releases page, but it is simplest to install them with the steampipe_export_installer.sh
script:
/bin/sh -c "$(curl -fsSL https://steampipe.io/install/export.sh)" -- terraform
You can pass the configuration to the command with the --config
argument:
steampipe_export_terraform --config '<your_config>' terraform_data_source