In this example, the instance_tags
variable is defined with a type of map(string)
, and it is given a default value of { Name = "my-instance" }
. The AWS provider is then configured to use the us-west-2
region.
The aws_instance
resource is used to launch Amazon EC2 instances. The tags
argument is used to assign tags to the instance, and it is set to the value of the instance_tags
variable.
You can change the value of instance_tags
by modifying the default value in the variable definition, or you can specify a different value when you run Terraform by using the -var
flag. For example, if you want to launch an instance with tags { Name = "my-instance", Environment = "prod" }
, you can run the following command:
$ terraform apply -var ‘instance_tags={ Name = “my-instance”, Environment = “prod” }’
Maps are a collection of string keys and string values. These can be useful for selecting values based on predefined parameters such as the server configuration by the monthly price.
We’ve replaced our sensitive strings with variables, but we still are hard-coding AMIs. Unfortunately, AMIs are specific to the region that is in use. One option is to just ask the user to input the proper AMI for the region, but Terraform can do better than that with maps.
dynamic lookup – The square-bracket index notation used here is an example of how the map type expression is accessed as a variable, with [var.region] referencing the var.amis declaration for dynamic lookup.
static value lookup – the map type expression can also use a static value lookup directly with var.amis[“us-east-1”].
Maps are a way to create variables that are lookup tables. An example will show this best. Let’s extract our AMIs into a map and add support for the us-west-2 region as well:
- Gradle versions, their supported Java versions, and unsupported Java versions - December 23, 2024
- An Introduction of GitLab Duo - December 22, 2024
- Best Hospitals for affordable surgery for medical tourism - December 20, 2024