【发布时间】:2020-01-28 23:15:08
【问题描述】:
如果它是由 terraform 从头开始创建的,这就是它在状态文件中的样子:
{
"module": "module.rds",
"mode": "managed",
"type": "aws_cloudwatch_log_subscription_filter",
"name": "rds_logs_delivery",
"each": "map",
"provider": "provider.aws",
"instances": [
{
"index_key": "prod-service-master.audit",
"schema_version": 0,
"attributes": {
"destination_arn": "arn:aws:firehose:us-east-5:9999999999:deliverystream/prod-rds-logs",
"distribution": "ByLogStream",
"filter_pattern": "",
"id": "cwlsf-9999999999",
"log_group_name": "/aws/rds/instance/prod-service-master/audit",
"name": "rds-logs-delivery-prod-service-master",
"role_arn": "arn:aws:iam::9999999999:role/cloudwatch-logs-to-kinesis"
},
"private": "abcdefg",
"depends_on": [
"data.aws_caller_identity.current",
"data.aws_partition.current",
"data.terraform_remote_state.kinesis_delivery_stream"
]
},
由于某些原因,我需要将其导入另一个 tf 状态文件。所以我运行了这个命令:
terraform import module.rds.aws_cloudwatch_log_subscription_filter.rds_logs_delivery["prod-service-reports.audit"] rds-logs-delivery-prod-service-master
我收到了这个错误:
Error: Index value required
on <import-address> line 1:
1: module.rds.aws_cloudwatch_log_subscription_filter.rds_logs_delivery[prod-service-reports.audit]
Index brackets must contain either a literal number or a literal string.
我该如何解决?我试过了
- 将双引号替换为单引号,并且
- 没有报价
但我仍然遇到同样的错误。
【问题讨论】:
-
您使用的索引确实看起来像一个变量而不是文字。资源是什么样的,所以我们知道它是如何被迭代的?
-
你解决过这个问题吗?我有同样的问题,试图导入一个带有 for_each 的资源,所以我必须引用实例,但导入会不断剥离 " ,即使使用转义字符
标签: terraform