如果它是由 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"
]
},
Run Code Online (Sandbox Code Playgroud)
由于某些原因,我需要将其导入另一个 tf 状态文件。所以我运行了这个命令:
terraform import module.rds.aws_cloudwatch_log_subscription_filter.rds_logs_delivery["prod-service-reports.audit"] rds-logs-delivery-prod-service-master
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
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.
Run Code Online (Sandbox Code Playgroud)
我该如何解决?我试过了
但我仍然遇到同样的错误。
sik*_*kiv 47
正如@JamesK在上面这个答案中所建议的,只有当您在 Windows 下使用 Linux 或者更具体地说 bash 或 Git Bash 时,才是解决方案。
PowerShell的解决方案如下:
terraform import resource[\`"prod-service-reports.audit\`"] ...
Run Code Online (Sandbox Code Playgroud)
感谢这里的回答:)
Chr*_*our 18
我发现你需要做这样的事情是 powershell core 7
terraform state rm 'resource[\"thing\"]'
Run Code Online (Sandbox Code Playgroud)
更新 2023-01,不知道发生了什么变化,但在 PS7 最新版和 TF 最新版中我不再需要 \ 了,这似乎现在可以使用
terraform state rm 'resource["thing"]'
Run Code Online (Sandbox Code Playgroud)
小智 7
您需要转义引号。就像在,
terraform import module.rds.aws_cloudwatch_log_subscription_filter.rds_logs_delivery[\"prod-service-reports.audit\"] rds-logs-delivery-prod-service-master
Run Code Online (Sandbox Code Playgroud)
小智 5
导入到配置有“ count ”的资源中
terraform import 'aws_instance.example[0]' aws-resource-id
导入到配置有“ for_each ”的资源中
Linux、Mac 操作系统和 UNIX
terraform import 'aws_instance.example["ample"]' aws-resource-id
VSCode 和 Powershell
terraform import 'aws_instance.example[\"ample\"]' aws-resource-id
指令
terraform import aws_instance.exapmle["ample"] aws-resource-id
以下是 terraform 导入的更多示例,请点击此处
| 归档时间: |
|
| 查看次数: |
1408 次 |
| 最近记录: |