我正试图在aws中为dyanamo db表创建一个名为name和arn的ssm参数,以便其他应用程序可以引用它。我尝试了一些不同的事情,但不明白我在这里做错了什么。有人能告诉我这里出了什么问题吗?
谢谢
这是我的模块主文件。
主.tf
locals {
prefix = "/this/is/a/test"
}
module "test_table" {
source = "git@github.com:test/terraform-modules.git//dynamodb"
name = "dynamo-${local.environment}"
ssm_parameter_prefix = local.prefix
tags = {
Environment = local.environment
}
}
resource "aws_ssm_parameter" "table_name" {
provider = aws.east
name = "${local.prefix}/new/table-name"
type = "String"
value = module.test_table.name
}
resource "aws_ssm_parameter" "table_arn" {
provider = aws.east
name = "${local.prefix}/new/table-arn"
type = "String"
value = module.test_table.arn
}
这是输出
输出.tf
output "test_table" {
value = module.test_table
}
output "table_arn" {
value = module.test_table.arn
}
output "table_name" {
value = module.test_table.name
}
Terraform错误
│ Error: Unsupported attribute
│
│ on dynamo.tf line, in resource "aws_ssm_parameter" "table_name":
│ 118: value = module.test_table.name
│ ├────────────────
│ │ module.test_table is a object, known only after apply
│
│ This object does not have an attribute named "name".
╵
╷
│ Error: Unsupported attribute
│
│ on dynamo.tf line, in resource "aws_ssm_parameter" "table_arn":
│ 125: value = module.test_table.arn
│ ├────────────────
│ │ module.test_table is a object, known only after apply
│
│ This object does not have an attribute named "arn".
╵
您显示的output
块声明名为table_arn
和table_name
的输出值,但您的引用是module.test_table.name
和module_test.table.arn
。
您需要更改输出值名称以匹配引用,或者更改引用以匹配输出值名称。具体来说,您需要从每个输出值名称中删除table_
前缀,或者将table_
添加到module.test_table.table_name
和module.test_table.table_arn
等引用的前面。