Terraform -- 访问在同一个 main.tf 文件中创建的资源
Terraform -- access resource which is created in the same main.tf file
我创建了一个 Secret Manager AWS 资源并想在同一个 main.tf
文件中访问它的 ARN。
这是我的地形 main.tf
variable "ENV" {}
variable "TAGS" {}
// SECRET MANAGER
resource "aws_secretsmanager_secret" "service_name_sm" {
name = "service-name-sm-test"
tags = var.TAGS
}
// POLICY
resource "aws_iam_policy" "service_name_policy" {
name = "${var.service_name_policy_name}-${var.ENV}"
path = "/"
policy = templatefile(
"${path.module}/templates/${var.service_name_policy_name}.tmpl", {
secrets_manager_arn = resource.aws_secretsmanager_secret.service_name_sm.arn
})
}
在我创建的策略中,我想使用我创建的 aws_secretsmanager_secret 资源的 ARN。
当我 运行, terraform validate
我得到一个错误:
A managed resource "resource" "aws_secretsmanager_secret" has not been
declared in service_name.
我该怎么做?
你不需要用 resource.
作为前缀。你必须像这样引用它 aws_secretsmanager_secret.service_name_sm
.
policy = templatefile(
"${path.module}/templates/${var.service_name_policy_name}.tmpl", {
secrets_manager_arn = aws_secretsmanager_secret.service_name_sm.arn
})
我创建了一个 Secret Manager AWS 资源并想在同一个 main.tf
文件中访问它的 ARN。
这是我的地形 main.tf
variable "ENV" {}
variable "TAGS" {}
// SECRET MANAGER
resource "aws_secretsmanager_secret" "service_name_sm" {
name = "service-name-sm-test"
tags = var.TAGS
}
// POLICY
resource "aws_iam_policy" "service_name_policy" {
name = "${var.service_name_policy_name}-${var.ENV}"
path = "/"
policy = templatefile(
"${path.module}/templates/${var.service_name_policy_name}.tmpl", {
secrets_manager_arn = resource.aws_secretsmanager_secret.service_name_sm.arn
})
}
在我创建的策略中,我想使用我创建的 aws_secretsmanager_secret 资源的 ARN。
当我 运行, terraform validate
我得到一个错误:
A managed resource "resource" "aws_secretsmanager_secret" has not been
declared in service_name.
我该怎么做?
你不需要用 resource.
作为前缀。你必须像这样引用它 aws_secretsmanager_secret.service_name_sm
.
policy = templatefile(
"${path.module}/templates/${var.service_name_policy_name}.tmpl", {
secrets_manager_arn = aws_secretsmanager_secret.service_name_sm.arn
})