terraform:modules2
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
terraform:modules2 [10/02/2025 15:31] – removed andrew | terraform:modules2 [10/02/2025 15:32] (current) – created andrew | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Terraform Modules ====== | ||
+ | |||
+ | ===== Structure ===== | ||
+ | |||
+ | |||
+ | < | ||
+ | tree | ||
+ | . | ||
+ | +--- input.tf | ||
+ | +--- main.tf | ||
+ | +--- modules | ||
+ | | +--- dynamo_module | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | +--- parameter_module | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | +--- outputs.tf | ||
+ | +--- README | ||
+ | +--- setup.tf | ||
+ | </ | ||
+ | |||
+ | ===== Root module ===== | ||
+ | |||
+ | |||
+ | setup.tf | ||
+ | <code hcl> | ||
+ | # Export key and secret credentials first. | ||
+ | # run as -> $ terraform apply | ||
+ | |||
+ | |||
+ | terraform { | ||
+ | required_providers { | ||
+ | aws = { | ||
+ | source | ||
+ | version = " | ||
+ | } | ||
+ | } | ||
+ | |||
+ | backend " | ||
+ | region | ||
+ | bucket | ||
+ | key = " | ||
+ | dynamodb_table = " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | main.tf | ||
+ | <code hcl> | ||
+ | provider " | ||
+ | region = " | ||
+ | |||
+ | default_tags { | ||
+ | tags = { | ||
+ | name = " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | module " | ||
+ | source | ||
+ | table_name = " | ||
+ | # | ||
+ | } | ||
+ | |||
+ | module " | ||
+ | source = " | ||
+ | parameter_key = " | ||
+ | parameter_value = " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code hcl> | ||
+ | output " | ||
+ | value = " | ||
+ | } | ||
+ | |||
+ | output " | ||
+ | value = module.dynamo.arn | ||
+ | } | ||
+ | |||
+ | output " | ||
+ | value = module.parameters.parameter_arn | ||
+ | } | ||
+ | |||
+ | output " | ||
+ | value = module.parameters.parameter_value | ||
+ | sensitive = true | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Modules -> dynamo_module ===== | ||
+ | |||
+ | main.tf | ||
+ | <code hcl> | ||
+ | resource " | ||
+ | name = var.table_name | ||
+ | billing_mode = " | ||
+ | hash_key | ||
+ | attribute { | ||
+ | name = " | ||
+ | type = " | ||
+ | } | ||
+ | tags = { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | outputs.tf | ||
+ | < | ||
+ | # Output variable definitions | ||
+ | |||
+ | output " | ||
+ | description = "ARN of the VPC" | ||
+ | value | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | variables.tf | ||
+ | <code hcl> | ||
+ | # Input variable definitions | ||
+ | |||
+ | variable " | ||
+ | description = "Name of the table." | ||
+ | type = string | ||
+ | } | ||
+ | |||
+ | variable " | ||
+ | description = " | ||
+ | default = " | ||
+ | type = string | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Modules -> parameter_module ===== | ||
+ | |||
+ | main.tf | ||
+ | <code hcl> | ||
+ | resource " | ||
+ | name = var.parameter_key | ||
+ | type = " | ||
+ | value = var.parameter_value | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | outputs.tf | ||
+ | <code hcl> | ||
+ | # Output variable definitions | ||
+ | |||
+ | output " | ||
+ | description = "Value of Parameter" | ||
+ | value = aws_ssm_parameter.nonsense_parameter.value | ||
+ | } | ||
+ | |||
+ | output " | ||
+ | description = "ARN of parameter" | ||
+ | value = aws_ssm_parameter.nonsense_parameter.arn | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | variables.tf | ||
+ | <code hcl> | ||
+ | # Input variable definitions | ||
+ | |||
+ | variable " | ||
+ | description = " | ||
+ | default | ||
+ | type = string | ||
+ | } | ||
+ | |||
+ | variable " | ||
+ | description = "Key name" | ||
+ | type = string | ||
+ | } | ||
+ | |||
+ | variable " | ||
+ | description = " | ||
+ | type = string | ||
+ | } | ||
+ | </ | ||
+ | |||
terraform/modules2.1739201497.txt.gz · Last modified: by andrew