terraform import выдает ошибку «Требуется значение индекса» для значения ключа строки - PullRequest
0 голосов
/ 29 января 2020

Вот как это будет выглядеть в файле состояния, если он создается с нуля с помощью 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.

Как я могу это исправить? Я попытался

  1. заменить двойную кавычку одинарной кавычкой, а
  2. без кавычки

, но я все еще получаю ту же ошибку.

1 Ответ

0 голосов
/ 17 апреля 2020

Вам нужно избежать кавычек. Например,

terraform import module.rds.aws_cloudwatch_log_subscription_filter.rds_logs_delivery [\ "prod-service-reports.audit \"] rds-logs-delivery-prod-service-master

...