{"id":8102,"date":"2023-04-03T07:11:43","date_gmt":"2023-04-03T07:11:43","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=8102"},"modified":"2023-10-10T04:31:02","modified_gmt":"2023-10-10T04:31:02","slug":"terraform-variables-complete-reference-guide","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/terraform-variables-complete-reference-guide\/","title":{"rendered":"Terraform Tutorials: Variables Complete Reference"},"content":{"rendered":"\n<p><strong>In Terraform, there are several types of variables that you can define, including:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>String<\/strong>: A sequence of characters. Example: &#8220;hello&#8221;.<\/li>\n\n\n\n<li><strong>Number<\/strong>: A numeric value. Example: 42.<\/li>\n\n\n\n<li><strong>Boolean<\/strong>: A logical value that is either true or false.<\/li>\n\n\n\n<li><strong>List<\/strong>: A sequence of values of the same type. Example: [ &#8220;apples&#8221;, &#8220;oranges&#8221;, &#8220;bananas&#8221; ].<\/li>\n\n\n\n<li><strong>Map<\/strong>: A collection of key-value pairs, where the keys and values can be of any type. Example: { &#8220;name&#8221; = &#8220;John&#8221;, &#8220;age&#8221; = 30 }.<\/li>\n\n\n\n<li><strong>Object<\/strong>: A complex data type that can contain multiple attributes. Example: { name = &#8220;John&#8221;, age = 30, address = { street = &#8220;123 Main St&#8221;, city = &#8220;Anytown&#8221;, state = &#8220;CA&#8221; } }.<\/li>\n\n\n\n<li><strong>Tuple<\/strong>: A sequence of values of different types. Example: [ &#8220;John&#8221;, 30, true ].<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-types-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"355\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-types-1-1024x355.png\" alt=\"\" class=\"wp-image-33182\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-types-1-1024x355.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-types-1-300x104.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-types-1-768x267.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-types-1.png 1400w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Quick Tutorials on Terraform Variable<\/h2>\n\n\n\n<p><a aria-label=\"Terraform Variables and Configuration explained \u2013 5 mins reading! (opens in a new tab)\" href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variables-and-configuration-explained-5-mins-reading\/\" target=\"_blank\" rel=\"noreferrer noopener\">Terraform Variables and Configuration explained \u2013 5 mins reading!<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Terraform Variable Naming convention<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-devopsschool-com wp-block-embed-devopsschool-com\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"9NdvoSQfly\"><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-naming-convention\/\">Terraform Variable Naming convention<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Terraform Variable Naming convention&#8221; &#8212; \" src=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-naming-convention\/embed\/#?secret=n8YkDZpaag#?secret=9NdvoSQfly\" data-secret=\"9NdvoSQfly\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Types of Terraform variable<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" aria-label=\"Types of Terraform variable - Number (opens in a new tab)\" href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-number-type-explained\/\" target=\"_blank\">Types of Terraform variable &#8211; Number<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-string-type-explained-2\/\">Types of Terraform variable &#8211; String<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" aria-label=\"Types of Terraform variable - List (opens in a new tab)\" href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-list-type-explained\/\" target=\"_blank\">Types of Terraform variable &#8211; List<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-map-type-explained\/\">Types of Terraform variable &#8211; Map<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-boolean-type-explained\/\">Types of Terraform variable &#8211; Boolean<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Location of Declaring Terraform Variable<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-location-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"827\" height=\"578\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-location-1.png\" alt=\"\" class=\"wp-image-33185\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-location-1.png 827w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-location-1-300x210.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2023\/04\/terraform-variable-location-1-768x537.png 768w\" sizes=\"auto, (max-width: 827px) 100vw, 827px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-using-tf_var-environment-variables-example\/\">Environment Variables<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/local-values-is-defined-in-terraform\/\">Local Values<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-using-command-line-example\/\">Command Line<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-using-terraform-tfvars-example\/\">terraform.tfvars<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-variable-using-anyotherfile-tfvars-example\/\">anyotherfile.tfvars<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-output-variable-example\/\">Terrform Outout Variable<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/example-of-terraform-terraform-tfvars\/\">Example of terraform terraform.tfvars<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.devopsschool.com\/blog\/terraform-environment-variables-exaplained\/\">Terraform Environment Variables Exaplained!<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">One Example Code<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">variable <span class=\"hljs-string\">\"instance_count\"<\/span> {\n  type = number\n  <span class=\"hljs-keyword\">default<\/span> = <span class=\"hljs-number\">1<\/span>\n}\n\nvariable <span class=\"hljs-string\">\"instance_name\"<\/span> {\n  type = string\n  <span class=\"hljs-keyword\">default<\/span> = <span class=\"hljs-string\">\"Rajesh\"<\/span>\n}\n\nresource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example-number\"<\/span> {\n  count = <span class=\"hljs-keyword\">var<\/span>.instance_count\n  ami           = <span class=\"hljs-string\">\"ami-053b0d53c279acc90\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n  \n  tags = {\n    Name = <span class=\"hljs-keyword\">var<\/span>.instance_name\n  }\n}\n\n\nvariable <span class=\"hljs-string\">\"security_groups\"<\/span> {\n  type = <span class=\"hljs-keyword\">list<\/span>(string)\n  <span class=\"hljs-keyword\">default<\/span> = &#91;<span class=\"hljs-string\">\"sg-0541801a7a059ba17\"<\/span>]\n}\n\n\nresource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example-list\"<\/span> {\n  ami           = <span class=\"hljs-string\">\"ami-053b0d53c279acc90\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n  vpc_security_group_ids = <span class=\"hljs-keyword\">var<\/span>.security_groups\n}\n\nvariable <span class=\"hljs-string\">\"instance_tags\"<\/span> {\n  type = map(string)\n  <span class=\"hljs-keyword\">default<\/span> = {\n    Name = <span class=\"hljs-string\">\"my-instance4mMap-Rajesh\"<\/span>\n  }\n}\n\nresource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example-map\"<\/span> {\n  ami           = <span class=\"hljs-string\">\"ami-053b0d53c279acc90\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n  tags = <span class=\"hljs-keyword\">var<\/span>.instance_tags\n}\n\nvariable <span class=\"hljs-string\">\"create_vm\"<\/span> {\n  description = <span class=\"hljs-string\">\"If set to true, it will create vm\"<\/span>\n   type   = bool\n}\n\nresource <span class=\"hljs-string\">\"aws_instance\"<\/span> <span class=\"hljs-string\">\"example-bool\"<\/span> {\n  count   = <span class=\"hljs-keyword\">var<\/span>.create_vm ? <span class=\"hljs-number\">1<\/span> : <span class=\"hljs-number\">0<\/span>\n  ami           = <span class=\"hljs-string\">\"ami-053b0d53c279acc90\"<\/span>\n  instance_type = <span class=\"hljs-string\">\"t2.micro\"<\/span>\n  tags = <span class=\"hljs-keyword\">var<\/span>.instance_tags\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_26192\"><figure class=\"wp-block-embed wp-block-embed-youtube is-type-video is-provider-youtube epyt-figure\"><div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\"  id=\"_ytid_83106\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_26192\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><\/div><\/figure><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>In Terraform, there are several types of variables that you can define, including: Quick Tutorials on Terraform Variable Terraform Variables and Configuration explained \u2013 5 mins reading! Terraform Variable Naming convention Types of Terraform variable Location of Declaring Terraform Variable One Example Code<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[5129],"tags":[],"class_list":["post-8102","post","type-post","status-publish","format-standard","hentry","category-terraform"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/8102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=8102"}],"version-history":[{"count":22,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/8102\/revisions"}],"predecessor-version":[{"id":40870,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/8102\/revisions\/40870"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=8102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=8102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=8102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}