我有 CI CD 管道,我试图将 2 个版本导入到
aws_secretsmanager_secret_version.example
资源中,如下所示,
import {
to = aws_secretsmanager_secret_version.example
id = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456|xxxxx-xxxxxxx-xxxxxxx-xxxxx"
}
import {
to = aws_secretsmanager_secret_version.example
id = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456|yyyyy-yyyyyyy-yyyyyyy-yyyyy"
}
错误:
│错误:“aws_secretsmanager_secret_version.example”的导入配置重复 │ │ main.tf 第 6 行: │ 6:导入{ │ │ 资源的导入块 │ “aws_secretsmanager_secret_version.example” │ 已在 main.tf:1,1-7 处声明。一个资源只能有一次导入 │ 封锁。
两个版本可以导入到两个不同的资源中。例如,第一个可以称为
version_x
,第二个可以称为 version_y
:
import {
to = aws_secretsmanager_secret_version.version_x
id = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456|xxxxx-xxxxxxx-xxxxxxx-xxxxx"
}
import {
to = aws_secretsmanager_secret_version.version_y
id = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456|yyyyy-yyyyyyy-yyyyyyy-yyyyy"
}
导入块还允许使用
for_each
,因此您也可以尝试使用它,而不是使用两个资源块。一个例子:
locals {
secret_versions = {
"version_x" = "xxxxx-xxxxxxx-xxxxxxx-xxxxx"
"version_y" = "yyyyy-yyyyyyy-yyyyyyy-yyyyy"
}
}
import {
for_each = local.secret_versions
to = aws_secretsmanager_secret_version.example[each.key]
id = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456|${each.value}"
}
resource "aws_secretsmanager_secret_version" "example" {
for_each = local.secret_versions
.
.
.
}
它应该适用于 >=1.7.x 的 terraform 版本。