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
                
                