null_data_source

The null_data_source data source implements the standard data source lifecycle but does not interact with any external APIs.

Historically, the null_data_source was typically used to construct intermediate values to re-use elsewhere in configuration. The same can now be achieved using locals or the terraform_data resource type in Terraform 1.4 and later.

Example Usage

# DO NOT EDIT. Code generated by 'cdktf convert' - Please report bugs at https://cdk.tf/bug
from constructs import Construct
from cdktf import Token, TerraformCount, Fn, TerraformOutput, TerraformStack
#
# Provider bindings are generated by running `cdktf get`.
# See https://cdk.tf/provider-generation for more details.
#
from imports.aws.elb import Elb
from imports.aws.instance import Instance
from imports.null.data_null_data_source import DataNullDataSource
class MyConvertedCode(TerraformStack):
    def __init__(self, scope, name):
        super().__init__(scope, name)
        # In most cases loops should be handled in the programming language context and
        #     not inside of the Terraform context. If you are looping over something external, e.g. a variable or a file input
        #     you should consider using a for loop. If you are looping over something only known to Terraform, e.g. a result of a data source
        #     you need to keep this like it is.
        blue_count = TerraformCount.of(Token.as_number("3"))
        blue = Instance(self, "blue",
            ami="ami-0dcc1e21636832c5d",
            instance_type="m5.large",
            count=blue_count
        )
        # In most cases loops should be handled in the programming language context and
        #     not inside of the Terraform context. If you are looping over something external, e.g. a variable or a file input
        #     you should consider using a for loop. If you are looping over something only known to Terraform, e.g. a result of a data source
        #     you need to keep this like it is.
        green_count = TerraformCount.of(Token.as_number("3"))
        green = Instance(self, "green",
            ami="ami-0dcc1e21636832c5d",
            instance_type="m5.large",
            count=green_count
        )
        values = DataNullDataSource(self, "values",
            inputs={
                "all_server_ids": Token.as_string(
                    Fn.concat([
                        Fn.lookup_nested(green, ["*", "id"]),
                        Fn.lookup_nested(blue, ["*", "id"])
                    ])),
                "all_server_ips": Token.as_string(
                    Fn.concat([
                        Fn.lookup_nested(green, ["*", "private_ip"]),
                        Fn.lookup_nested(blue, ["*", "private_ip"])
                    ]))
            }
        )
        TerraformOutput(self, "all_server_ids",
            value=Fn.lookup_nested(values.outputs, ["\"all_server_ids\""])
        )
        TerraformOutput(self, "all_server_ips",
            value=Fn.lookup_nested(values.outputs, ["\"all_server_ips\""])
        )
        Elb(self, "main",
            instances=Token.as_list(
                Fn.lookup_nested(values.outputs, ["\"all_server_ids\""])),
            listener=[ElbListener(
                instance_port=8000,
                instance_protocol="http",
                lb_port=80,
                lb_protocol="http"
            )
            ]
        )

Schema

Optional

Read-Only